From ae4edf1e79c809459451cee2534a4bec1eba24e0 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sat, 25 Feb 2017 17:48:11 +0100 Subject: [PATCH 01/19] track activities --- Yavsc/Controllers/ActivityController.cs | 7 ++++--- Yavsc/Models/ApplicationDbContext.cs | 27 ++++++++++--------------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/Yavsc/Controllers/ActivityController.cs b/Yavsc/Controllers/ActivityController.cs index 3aa109e7..9f9ce013 100644 --- a/Yavsc/Controllers/ActivityController.cs +++ b/Yavsc/Controllers/ActivityController.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Logging; namespace Yavsc.Controllers { + using System.Security.Claims; using Models; using Models.Workflow; @@ -137,7 +138,7 @@ namespace Yavsc.Controllers if (ModelState.IsValid) { _context.Activities.Add(activity); - _context.SaveChanges(); + _context.SaveChanges(User.GetUserId()); return RedirectToAction("Index"); } SetSettingClasseInfo(); @@ -174,7 +175,7 @@ namespace Yavsc.Controllers if (ModelState.IsValid) { _context.Update(activity); - _context.SaveChanges(); + _context.SaveChanges(User.GetUserId()); return RedirectToAction("Index"); } return View(activity); @@ -205,7 +206,7 @@ namespace Yavsc.Controllers { Activity activity = _context.Activities.Single(m => m.Code == id); _context.Activities.Remove(activity); - _context.SaveChanges(); + _context.SaveChanges(User.GetUserId()); return RedirectToAction("Index"); } } diff --git a/Yavsc/Models/ApplicationDbContext.cs b/Yavsc/Models/ApplicationDbContext.cs index e641de65..59fc70d2 100644 --- a/Yavsc/Models/ApplicationDbContext.cs +++ b/Yavsc/Models/ApplicationDbContext.cs @@ -5,10 +5,8 @@ using System.Threading.Tasks; using Microsoft.AspNet.Authentication.OAuth; using Microsoft.AspNet.Identity.EntityFramework; using Microsoft.Data.Entity; -using System.Web; using System.Threading; using Yavsc.Models.Haircut; -using Yavsc.Models.Messaging; namespace Yavsc.Models { @@ -28,6 +26,7 @@ namespace Yavsc.Models using Musical.Profiles; using Workflow.Profiles; using Drawing; + public class ApplicationDbContext : IdentityDbContext { protected override void OnModelCreating(ModelBuilder builder) @@ -123,7 +122,7 @@ namespace Yavsc.Models public Task ClearTokensAsync() { Tokens.RemoveRange(this.Tokens); - SaveChanges(); + SaveChanges(null); return Task.FromResult(0); } @@ -138,7 +137,7 @@ namespace Yavsc.Models if (item != null) { Tokens.Remove(item); - SaveChanges(); + SaveChanges(email); } return Task.FromResult(0); } @@ -184,7 +183,7 @@ namespace Yavsc.Models item.RefreshToken = value.RefreshToken; Tokens.Update(item); } - SaveChanges(); + SaveChanges(googleUserId); return Task.FromResult(0); } @@ -225,13 +224,11 @@ namespace Yavsc.Models public DbSet GeneralSettings { get; set; } public DbSet WorkflowProviders { get; set; } - private void AddTimestamps() + private void AddTimestamps(string currentUsername) { var entities = ChangeTracker.Entries().Where(x => x.Entity.GetType().GetInterface("IBaseTrackedEntity")!=null && (x.State == EntityState.Added || x.State == EntityState.Modified)); - var currentUsername = !string.IsNullOrEmpty(System.Web.HttpContext.Current?.User?.Identity?.Name) - ? HttpContext.Current.User.Identity.Name - : "Anonymous"; + // Microsoft.AspNet.Identity; foreach (var entity in entities) { @@ -245,15 +242,13 @@ namespace Yavsc.Models ((IBaseTrackedEntity)entity.Entity).UserModified = currentUsername; } } - - - override public int SaveChanges() { - AddTimestamps(); + public int SaveChanges(string userId) { + AddTimestamps(userId); return base.SaveChanges(); } - - public override async Task SaveChangesAsync(CancellationToken ctoken = default(CancellationToken)) { - AddTimestamps(); + + public async Task SaveChangesAsync(string userId, CancellationToken ctoken = default(CancellationToken)) { + AddTimestamps(userId); return await base.SaveChangesAsync(); } From 3ec5e6e82f6f6410d9a4576069430ea33f9b0149 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sat, 25 Feb 2017 17:48:46 +0100 Subject: [PATCH 02/19] act wr admin only --- Yavsc/ApiControllers/ActivityApiController.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Yavsc/ApiControllers/ActivityApiController.cs b/Yavsc/ApiControllers/ActivityApiController.cs index a2e310a1..cb828c5d 100644 --- a/Yavsc/ApiControllers/ActivityApiController.cs +++ b/Yavsc/ApiControllers/ActivityApiController.cs @@ -1,6 +1,8 @@ using System.Collections.Generic; using System.Linq; +using System.Security.Claims; using System.Threading.Tasks; +using Microsoft.AspNet.Authorization; using Microsoft.AspNet.Http; using Microsoft.AspNet.Mvc; using Microsoft.Data.Entity; @@ -47,7 +49,7 @@ namespace Yavsc.Controllers } // PUT: api/ActivityApi/5 - [HttpPut("{id}")] + [HttpPut("{id}"),Authorize("AdministratorOnly")] public async Task PutActivity([FromRoute] string id, [FromBody] Activity activity) { if (!ModelState.IsValid) @@ -64,7 +66,7 @@ namespace Yavsc.Controllers try { - await _context.SaveChangesAsync(); + await _context.SaveChangesAsync(User.GetUserId()); } catch (DbUpdateConcurrencyException) { @@ -82,7 +84,7 @@ namespace Yavsc.Controllers } // POST: api/ActivityApi - [HttpPost] + [HttpPost,Authorize("AdministratorOnly")] public async Task PostActivity([FromBody] Activity activity) { if (!ModelState.IsValid) @@ -93,7 +95,7 @@ namespace Yavsc.Controllers _context.Activities.Add(activity); try { - await _context.SaveChangesAsync(); + await _context.SaveChangesAsync(User.GetUserId()); } catch (DbUpdateException) { @@ -111,7 +113,7 @@ namespace Yavsc.Controllers } // DELETE: api/ActivityApi/5 - [HttpDelete("{id}")] + [HttpDelete("{id}"),Authorize("AdministratorOnly")] public async Task DeleteActivity([FromRoute] string id) { if (!ModelState.IsValid) @@ -126,7 +128,7 @@ namespace Yavsc.Controllers } _context.Activities.Remove(activity); - await _context.SaveChangesAsync(); + await _context.SaveChangesAsync(User.GetUserId()); return Ok(activity); } From 9973f0dcc7fb7eb0d00a9103f24cf34e2856a09e Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Mon, 27 Feb 2017 19:28:32 +0100 Subject: [PATCH 03/19] refactoring --- .../ApiControllers/BookQueryApiController.cs | 12 +- Yavsc/ApiControllers/EstimateApiController.cs | 2 +- .../ApiControllers/PerformersApiController.cs | 2 +- Yavsc/ApiControllers/ProfileApiController.cs | 4 + Yavsc/Controllers/CommandController.cs | 38 +- Yavsc/Controllers/EstimateController.cs | 6 +- Yavsc/Controllers/FrontOfficeController.cs | 56 +- Yavsc/Controllers/HairCutCommandController.cs | 189 +++ .../Controllers/HairPrestationsController.cs | 122 ++ Yavsc/Controllers/ManageController.cs | 2 +- Yavsc/Helpers/EventHelpers.cs | 65 +- ...20170227151759_hairPrestations.Designer.cs | 1329 +++++++++++++++++ .../20170227151759_hairPrestations.cs | 745 +++++++++ .../ApplicationDbContextModelSnapshot.cs | 313 ++-- Yavsc/Models/ApplicationDbContext.cs | 8 +- Yavsc/Models/Billing/CommandLine.cs | 3 +- Yavsc/Models/Billing/Estimate.cs | 2 +- .../Billing/NominativeServiceCommand.cs | 13 +- Yavsc/Models/Calendar/ICalendarManager.cs | 2 +- Yavsc/Models/Haircut/HairCutQuery.cs | 12 +- Yavsc/Models/Haircut/HairCutQueryEvent.cs | 2 +- Yavsc/Models/Haircut/HairDressings.cs | 7 + Yavsc/Models/Haircut/HairMultiCutQuery.cs | 23 + Yavsc/Models/Haircut/HairPrestation.cs | 27 +- Yavsc/Models/Haircut/HairTechnos.cs | 11 +- Yavsc/Models/Market/BaseProduct.cs | 12 +- Yavsc/Models/Market/Product.cs | 8 +- Yavsc/Models/Market/Service.cs | 10 +- .../{BookQueryEvent.cs => RdvQueryEvent.cs} | 4 +- ...roviderInfo.cs => RdvQueryProviderInfo.cs} | 2 +- .../Workflow/{BookQuery.cs => RdvQuery.cs} | 11 +- .../Yavsc.Resources.YavscLocalisation.en.resx | 2 +- .../Yavsc.Resources.YavscLocalisation.resx | 1 + Yavsc/Services/IGoogleCloudMessageSender.cs | 11 +- Yavsc/Services/MessageServices.cs | 15 +- Yavsc/Startup/Startup.Workflow.cs | 11 +- .../Auth/Handlers/CommandEditHandler.cs | 4 +- .../Auth/Handlers/CommandViewHandler.cs | 4 +- Yavsc/ViewModels/Haircut/HairCutView.cs | 13 + .../Views/Command/CommandConfirmation.cshtml | 2 +- Yavsc/Views/Command/Create.cshtml | 21 +- Yavsc/Views/Command/CreateHairCutQuery.cshtml | 0 Yavsc/Views/Command/Delete.cshtml | 2 +- Yavsc/Views/Command/Details.cshtml | 2 +- Yavsc/Views/Command/Edit.cshtml | 2 +- Yavsc/Views/Command/Index.cshtml | 2 +- Yavsc/Views/FrontOffice/HArts.chtml | 16 - Yavsc/Views/FrontOffice/HairCut.cshtml | 73 + Yavsc/Views/HairPrestations/Create.cshtml | 77 + Yavsc/Views/HairPrestations/Delete.cshtml | 64 + Yavsc/Views/HairPrestations/Details.cshtml | 60 + Yavsc/Views/HairPrestations/Edit.cshtml | 78 + Yavsc/Views/HairPrestations/Index.cshtml | 68 + Yavsc/Views/Home/About.cshtml | 33 +- Yavsc/Views/Home/Index.cshtml | 8 +- .../Shared/DisplayTemplates/BookQuery.cshtml | 2 +- Yavsc/Views/_ViewImports.cshtml | 3 +- 57 files changed, 3368 insertions(+), 248 deletions(-) create mode 100644 Yavsc/Controllers/HairCutCommandController.cs create mode 100644 Yavsc/Controllers/HairPrestationsController.cs create mode 100644 Yavsc/Migrations/20170227151759_hairPrestations.Designer.cs create mode 100644 Yavsc/Migrations/20170227151759_hairPrestations.cs create mode 100644 Yavsc/Models/Haircut/HairMultiCutQuery.cs rename Yavsc/Models/Messaging/{BookQueryEvent.cs => RdvQueryEvent.cs} (92%) rename Yavsc/Models/Messaging/{BookQueryProviderInfo.cs => RdvQueryProviderInfo.cs} (92%) rename Yavsc/Models/Workflow/{BookQuery.cs => RdvQuery.cs} (73%) create mode 100644 Yavsc/ViewModels/Haircut/HairCutView.cs create mode 100644 Yavsc/Views/Command/CreateHairCutQuery.cshtml delete mode 100644 Yavsc/Views/FrontOffice/HArts.chtml create mode 100644 Yavsc/Views/FrontOffice/HairCut.cshtml create mode 100644 Yavsc/Views/HairPrestations/Create.cshtml create mode 100644 Yavsc/Views/HairPrestations/Delete.cshtml create mode 100644 Yavsc/Views/HairPrestations/Details.cshtml create mode 100644 Yavsc/Views/HairPrestations/Edit.cshtml create mode 100644 Yavsc/Views/HairPrestations/Index.cshtml diff --git a/Yavsc/ApiControllers/BookQueryApiController.cs b/Yavsc/ApiControllers/BookQueryApiController.cs index 74d7f54e..96c67b86 100644 --- a/Yavsc/ApiControllers/BookQueryApiController.cs +++ b/Yavsc/ApiControllers/BookQueryApiController.cs @@ -34,7 +34,7 @@ namespace Yavsc.Controllers /// returned Ids must be lower than this value /// book queries [HttpGet] - public IEnumerable GetCommands(long maxId=long.MaxValue) + public IEnumerable GetCommands(long maxId=long.MaxValue) { var uid = User.GetUserId(); var now = DateTime.Now; @@ -42,7 +42,7 @@ namespace Yavsc.Controllers var result = _context.Commands.Include(c => c.Location). Include(c => c.Client).Where(c => c.PerformerId == uid && c.Id < maxId && c.EventDate > now && c.ValidationDate == null). - Select(c => new BookQueryProviderInfo + Select(c => new RdvQueryProviderInfo { Client = new ClientProviderInfo { UserName = c.Client.UserName, @@ -71,7 +71,7 @@ namespace Yavsc.Controllers } var uid = User.GetUserId(); - BookQuery bookQuery = _context.Commands.Where(c => c.ClientId == uid || c.PerformerId == uid).Single(m => m.Id == id); + RdvQuery bookQuery = _context.Commands.Where(c => c.ClientId == uid || c.PerformerId == uid).Single(m => m.Id == id); if (bookQuery == null) { @@ -83,7 +83,7 @@ namespace Yavsc.Controllers // PUT: api/BookQueryApi/5 [HttpPut("{id}")] - public IActionResult PutBookQuery(long id, [FromBody] BookQuery bookQuery) + public IActionResult PutBookQuery(long id, [FromBody] RdvQuery bookQuery) { if (!ModelState.IsValid) { @@ -121,7 +121,7 @@ namespace Yavsc.Controllers // POST: api/BookQueryApi [HttpPost] - public IActionResult PostBookQuery([FromBody] BookQuery bookQuery) + public IActionResult PostBookQuery([FromBody] RdvQuery bookQuery) { if (!ModelState.IsValid) { @@ -162,7 +162,7 @@ namespace Yavsc.Controllers return HttpBadRequest(ModelState); } var uid = User.GetUserId(); - BookQuery bookQuery = _context.Commands.Single(m => m.Id == id); + RdvQuery bookQuery = _context.Commands.Single(m => m.Id == id); if (bookQuery == null) { diff --git a/Yavsc/ApiControllers/EstimateApiController.cs b/Yavsc/ApiControllers/EstimateApiController.cs index 6ae3ce8c..f2d8b26b 100644 --- a/Yavsc/ApiControllers/EstimateApiController.cs +++ b/Yavsc/ApiControllers/EstimateApiController.cs @@ -126,7 +126,7 @@ namespace Yavsc.Controllers } } if (estimate.CommandId!=null) { - var query = _context.BookQueries.FirstOrDefault(q => q.Id == estimate.CommandId); + var query = _context.RdvQueries.FirstOrDefault(q => q.Id == estimate.CommandId); if (query == null || query.PerformerId!= uid) throw new InvalidOperationException(); query.ValidationDate = DateTime.Now; diff --git a/Yavsc/ApiControllers/PerformersApiController.cs b/Yavsc/ApiControllers/PerformersApiController.cs index 509cf97e..c08e3a50 100644 --- a/Yavsc/ApiControllers/PerformersApiController.cs +++ b/Yavsc/ApiControllers/PerformersApiController.cs @@ -51,4 +51,4 @@ namespace Yavsc.Controllers return new BadRequestObjectResult(ModelState); } } -} \ No newline at end of file +} diff --git a/Yavsc/ApiControllers/ProfileApiController.cs b/Yavsc/ApiControllers/ProfileApiController.cs index 77426afa..e7d21f9e 100644 --- a/Yavsc/ApiControllers/ProfileApiController.cs +++ b/Yavsc/ApiControllers/ProfileApiController.cs @@ -3,6 +3,10 @@ using Microsoft.AspNet.Mvc; namespace Yavsc.ApiControllers { using Models; + + /// + /// Base class for managing performers profiles + /// [Produces("application/json"),Route("api/profile")] public abstract class ProfileApiController : Controller { diff --git a/Yavsc/Controllers/CommandController.cs b/Yavsc/Controllers/CommandController.cs index a1d58653..0f494123 100644 --- a/Yavsc/Controllers/CommandController.cs +++ b/Yavsc/Controllers/CommandController.cs @@ -22,16 +22,16 @@ namespace Yavsc.Controllers [ServiceFilter(typeof(LanguageActionFilter))] public class CommandController : Controller { - private UserManager _userManager; - private ApplicationDbContext _context; - private GoogleAuthSettings _googleSettings; - private IGoogleCloudMessageSender _GCMSender; - private IEmailSender _emailSender; - private IStringLocalizer _localizer; - SiteSettings _siteSettings; - SmtpSettings _smtpSettings; + protected UserManager _userManager; + protected ApplicationDbContext _context; + protected GoogleAuthSettings _googleSettings; + protected IGoogleCloudMessageSender _GCMSender; + protected IEmailSender _emailSender; + protected IStringLocalizer _localizer; + protected SiteSettings _siteSettings; + protected SmtpSettings _smtpSettings; - private readonly ILogger _logger; + protected readonly ILogger _logger; public CommandController(ApplicationDbContext context, IOptions googleSettings, IGoogleCloudMessageSender GCMSender, UserManager userManager, @@ -57,7 +57,7 @@ namespace Yavsc.Controllers public IActionResult Index() { var uid = User.GetUserId(); - return View(_context.BookQueries + return View(_context.RdvQueries .Include(x => x.Client) .Include(x => x.PerformerProfile) .Include(x => x.PerformerProfile.Performer) @@ -74,7 +74,7 @@ namespace Yavsc.Controllers return HttpNotFound(); } - BookQuery command = _context.BookQueries + RdvQuery command = _context.RdvQueries .Include(x => x.Location) .Include(x => x.PerformerProfile) .Single(m => m.Id == id); @@ -113,7 +113,7 @@ namespace Yavsc.Controllers ViewBag.GoogleSettings = _googleSettings; var userid = User.GetUserId(); var user = _userManager.FindByIdAsync(userid).Result; - return View(new BookQuery(activityCode,new Location(),DateTime.Now.AddHours(4)) + return View(new RdvQuery(activityCode,new Location(),DateTime.Now.AddHours(4)) { PerformerProfile = pro, PerformerId = pro.PerformerId, @@ -126,7 +126,7 @@ namespace Yavsc.Controllers // POST: Command/Create [HttpPost, Authorize] [ValidateAntiForgeryToken] - public async Task Create(BookQuery command) + public async Task Create(RdvQuery command) { var uid = User.GetUserId(); @@ -161,7 +161,7 @@ namespace Yavsc.Controllers command.Location=existingLocation; } else _context.Attach(command.Location); - _context.BookQueries.Add(command, GraphBehavior.IncludeDependents); + _context.RdvQueries.Add(command, GraphBehavior.IncludeDependents); _context.SaveChanges(User.GetUserId()); var yaev = command.CreateEvent(_localizer); @@ -206,7 +206,7 @@ namespace Yavsc.Controllers return HttpNotFound(); } - BookQuery command = _context.BookQueries.Single(m => m.Id == id); + RdvQuery command = _context.RdvQueries.Single(m => m.Id == id); if (command == null) { return HttpNotFound(); @@ -217,7 +217,7 @@ namespace Yavsc.Controllers // POST: Command/Edit/5 [HttpPost] [ValidateAntiForgeryToken] - public IActionResult Edit(BookQuery command) + public IActionResult Edit(RdvQuery command) { if (ModelState.IsValid) { @@ -237,7 +237,7 @@ namespace Yavsc.Controllers return HttpNotFound(); } - BookQuery command = _context.BookQueries.Single(m => m.Id == id); + RdvQuery command = _context.RdvQueries.Single(m => m.Id == id); if (command == null) { return HttpNotFound(); @@ -251,8 +251,8 @@ namespace Yavsc.Controllers [ValidateAntiForgeryToken] public IActionResult DeleteConfirmed(long id) { - BookQuery command = _context.BookQueries.Single(m => m.Id == id); - _context.BookQueries.Remove(command); + RdvQuery command = _context.RdvQueries.Single(m => m.Id == id); + _context.RdvQueries.Remove(command); _context.SaveChanges(User.GetUserId()); return RedirectToAction("Index"); } diff --git a/Yavsc/Controllers/EstimateController.cs b/Yavsc/Controllers/EstimateController.cs index 288d914c..01184d20 100644 --- a/Yavsc/Controllers/EstimateController.cs +++ b/Yavsc/Controllers/EstimateController.cs @@ -81,7 +81,7 @@ namespace Yavsc.Controllers public IActionResult Create() { var uid = User.GetUserId(); - IQueryable queries = _context.BookQueries.Include(q=>q.Location).Where(bq=>bq.PerformerId == uid); + IQueryable queries = _context.RdvQueries.Include(q=>q.Location).Where(bq=>bq.PerformerId == uid); //.Select(bq=>new SelectListItem{ Text = bq.Client.UserName, Value = bq.Client.Id }); ViewBag.Clients = queries.Select(q=>q.Client).Distinct(); ViewBag.Queries = queries; @@ -103,7 +103,7 @@ namespace Yavsc.Controllers _context.Estimates .Add(estimate); _context.SaveChanges(User.GetUserId()); - var query = _context.BookQueries.FirstOrDefault( + var query = _context.RdvQueries.FirstOrDefault( q=>q.Id == estimate.CommandId ); var perfomerProfile = _context.Performers @@ -111,7 +111,7 @@ namespace Yavsc.Controllers perpr => perpr.Performer).FirstOrDefault( x=>x.PerformerId == query.PerformerId ); - var command = _context.BookQueries.FirstOrDefault( + var command = _context.RdvQueries.FirstOrDefault( cmd => cmd.Id == estimate.CommandId ); diff --git a/Yavsc/Controllers/FrontOfficeController.cs b/Yavsc/Controllers/FrontOfficeController.cs index 31635d73..c5cee49b 100644 --- a/Yavsc/Controllers/FrontOfficeController.cs +++ b/Yavsc/Controllers/FrontOfficeController.cs @@ -10,9 +10,13 @@ using System.Security.Claims; namespace Yavsc.Controllers { using Helpers; + using Microsoft.AspNet.Http; using Models; - using Models.Workflow; + using Newtonsoft.Json; using ViewModels.FrontOffice; + using Yavsc.Models.Haircut; + using Yavsc.ViewModels.Haircut; + public class FrontOfficeController : Controller { ApplicationDbContext _context; @@ -46,7 +50,7 @@ namespace Yavsc.Controllers return View(model); } - [Route("Profiles/{id?}"), HttpGet, AllowAnonymous] + [AllowAnonymous] public ActionResult Profiles(string id) { if (id == null) @@ -57,40 +61,28 @@ namespace Yavsc.Controllers var result = _context.ListPerformers(id); return View(result); } - - [Route("Profiles/{id}"), HttpPost, AllowAnonymous] - public ActionResult Profiles(BookQuery bookQuery) + + [AllowAnonymous] + public ActionResult HairCut(string id) { - if (ModelState.IsValid) - { - var pro = _context.Performers.Include( - pr => pr.Performer - ).FirstOrDefault( - x => x.PerformerId == bookQuery.PerformerId - ); - if (pro == null) - return HttpNotFound(); - // Let's create a command - if (bookQuery.Id == 0) - { - _context.BookQueries.Add(bookQuery); - } - else - { - _context.BookQueries.Update(bookQuery); - } - _context.SaveChanges(User.GetUserId()); - // TODO Send sys notifications & - // notify the user (make him a basket badge) - return View("Index"); + HairPrestation pPrestation=null; + var prestaJson = HttpContext.Session.GetString("HairCutPresta") ; + if (prestaJson!=null) { + pPrestation = JsonConvert.DeserializeObject(prestaJson); } - ViewBag.Activities = _context.ActivityItems(null); - return View("Profiles", _context.Performers.Include(p => p.Performer).Where - (p => p.Active).OrderBy( - x => x.MinDailyCost - )); + else pPrestation = new HairPrestation { + + }; + + ViewBag.Activity = _context.Activities.First(a => a.Code == id); + var result = new HairCutView { + HairBrushers = _context.ListPerformers(id), + Topic = pPrestation + } ; + return View(result); } + [Produces("text/x-tex"), Authorize, Route("estimate-{id}.tex")] public ViewResult EstimateTex(long id) { diff --git a/Yavsc/Controllers/HairCutCommandController.cs b/Yavsc/Controllers/HairCutCommandController.cs new file mode 100644 index 00000000..0de5571d --- /dev/null +++ b/Yavsc/Controllers/HairCutCommandController.cs @@ -0,0 +1,189 @@ +using System; +using System.Linq; +using System.Security.Claims; +using System.Threading.Tasks; +using Microsoft.AspNet.Authorization; +using Microsoft.AspNet.Identity; +using Microsoft.AspNet.Mvc; +using Microsoft.Data.Entity; +using Microsoft.Extensions.Localization; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.OptionsModel; +using Yavsc.Helpers; +using Yavsc.Models; +using Yavsc.Models.Google.Messaging; +using Yavsc.Models.Haircut; +using Yavsc.Models.Relationship; +using Yavsc.Services; + +namespace Yavsc.Controllers +{ + public class HairCutCommandController : CommandController + { + public HairCutCommandController(ApplicationDbContext context, + IOptions googleSettings, + IGoogleCloudMessageSender GCMSender, + UserManager userManager, + IStringLocalizer localizer, + IEmailSender emailSender, + IOptions smtpSettings, + IOptions siteSettings, + ILoggerFactory loggerFactory) : base(context,googleSettings,GCMSender,userManager, + localizer,emailSender,smtpSettings,siteSettings,loggerFactory) + { + + } + + [HttpPost, Authorize] + [ValidateAntiForgeryToken] + public async Task CreateHairCutQuery(HairCutQuery command) + { + + + var uid = User.GetUserId(); + var prid = command.PerformerId; + if (string.IsNullOrWhiteSpace(uid) + || string.IsNullOrWhiteSpace(prid)) + throw new InvalidOperationException( + "This method needs a PerformerId" + ); + var pro = _context.Performers.Include( + u => u.Performer + ).Include(u => u.Performer.Devices) + .FirstOrDefault( + x => x.PerformerId == command.PerformerId + ); + var user = await _userManager.FindByIdAsync(uid); + command.Client = user; + command.ClientId = uid; + command.PerformerProfile = pro; + // FIXME Why!! + // ModelState.ClearValidationState("PerformerProfile.Avatar"); + // ModelState.ClearValidationState("Client.Avatar"); + // ModelState.ClearValidationState("ClientId"); + ModelState.MarkFieldSkipped("ClientId"); + + if (ModelState.IsValid) + { + var existingLocation = _context.Locations.FirstOrDefault( x=>x.Address == command.Location.Address + && x.Longitude == command.Location.Longitude && x.Latitude == command.Location.Latitude ); + + if (existingLocation!=null) { + command.Location=existingLocation; + } + else _context.Attach(command.Location); + + _context.HairCutQueries.Add(command, GraphBehavior.IncludeDependents); + _context.SaveChanges(User.GetUserId()); + + var yaev = command.CreateEvent(_localizer); + MessageWithPayloadResponse grep = null; + + if (pro.AcceptNotifications + && pro.AcceptPublicContact) + { + if (pro.Performer.Devices.Count > 0) { + var regids = command.PerformerProfile.Performer + .Devices.Select(d => d.GCMRegistrationId); + grep = await _GCMSender.NotifyHairCutQueryAsync(_googleSettings,regids,yaev); + } + // TODO setup a profile choice to allow notifications + // both on mailbox and mobile + // if (grep==null || grep.success<=0 || grep.failure>0) + ViewBag.GooglePayload=grep; + if (grep!=null) + _logger.LogWarning($"Performer: {command.PerformerProfile.Performer.UserName} success: {grep.success} failure: {grep.failure}"); + + await _emailSender.SendEmailAsync( + _siteSettings, _smtpSettings, + command.PerformerProfile.Performer.Email, + yaev.Topic+" "+yaev.Sender, + $"{yaev.Message}\r\n-- \r\n{yaev.Previsional}\r\n{yaev.EventDate}\r\n" + ); + } + ViewBag.Activity = _context.Activities.FirstOrDefault(a=>a.Code == command.ActivityCode); + ViewBag.GoogleSettings = _googleSettings; + return View("CommandConfirmation",command); + } + ViewBag.Activity = _context.Activities.FirstOrDefault(a=>a.Code == command.ActivityCode); + ViewBag.GoogleSettings = _googleSettings; + return View(command); + + } + + [HttpPost, Authorize] + [ValidateAntiForgeryToken] + public async Task CreateHairMultiCutQuery(HairMultiCutQuery command) + { + + var uid = User.GetUserId(); + var prid = command.PerformerId; + if (string.IsNullOrWhiteSpace(uid) + || string.IsNullOrWhiteSpace(prid)) + throw new InvalidOperationException( + "This method needs a PerformerId" + ); + var pro = _context.Performers.Include( + u => u.Performer + ).Include(u => u.Performer.Devices) + .FirstOrDefault( + x => x.PerformerId == command.PerformerId + ); + var user = await _userManager.FindByIdAsync(uid); + command.Client = user; + command.ClientId = uid; + command.PerformerProfile = pro; + // FIXME Why!! + // ModelState.ClearValidationState("PerformerProfile.Avatar"); + // ModelState.ClearValidationState("Client.Avatar"); + // ModelState.ClearValidationState("ClientId"); + ModelState.MarkFieldSkipped("ClientId"); + + if (ModelState.IsValid) + { + var existingLocation = _context.Locations.FirstOrDefault( x=>x.Address == command.Location.Address + && x.Longitude == command.Location.Longitude && x.Latitude == command.Location.Latitude ); + + if (existingLocation!=null) { + command.Location=existingLocation; + } + else _context.Attach(command.Location); + + _context.HairMultiCutQueries.Add(command, GraphBehavior.IncludeDependents); + _context.SaveChanges(User.GetUserId()); + + var yaev = command.CreateEvent(_localizer); + MessageWithPayloadResponse grep = null; + + if (pro.AcceptNotifications + && pro.AcceptPublicContact) + { + if (pro.Performer.Devices.Count > 0) { + var regids = command.PerformerProfile.Performer + .Devices.Select(d => d.GCMRegistrationId); + grep = await _GCMSender.NotifyHairCutQueryAsync(_googleSettings,regids,yaev); + } + // TODO setup a profile choice to allow notifications + // both on mailbox and mobile + // if (grep==null || grep.success<=0 || grep.failure>0) + ViewBag.GooglePayload=grep; + if (grep!=null) + _logger.LogWarning($"Performer: {command.PerformerProfile.Performer.UserName} success: {grep.success} failure: {grep.failure}"); + + await _emailSender.SendEmailAsync( + _siteSettings, _smtpSettings, + command.PerformerProfile.Performer.Email, + yaev.Topic+" "+yaev.Sender, + $"{yaev.Message}\r\n-- \r\n{yaev.Previsional}\r\n{yaev.EventDate}\r\n" + ); + } + ViewBag.Activity = _context.Activities.FirstOrDefault(a=>a.Code == command.ActivityCode); + ViewBag.GoogleSettings = _googleSettings; + return View("CommandConfirmation",command); + } + ViewBag.Activity = _context.Activities.FirstOrDefault(a=>a.Code == command.ActivityCode); + ViewBag.GoogleSettings = _googleSettings; + return View(command); + } + } +} \ No newline at end of file diff --git a/Yavsc/Controllers/HairPrestationsController.cs b/Yavsc/Controllers/HairPrestationsController.cs new file mode 100644 index 00000000..93e081bc --- /dev/null +++ b/Yavsc/Controllers/HairPrestationsController.cs @@ -0,0 +1,122 @@ +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNet.Mvc; +using Microsoft.AspNet.Mvc.Rendering; +using Microsoft.Data.Entity; +using Yavsc.Models; +using Yavsc.Models.Haircut; + +namespace Yavsc.Controllers +{ + public class HairPrestationsController : Controller + { + private ApplicationDbContext _context; + + public HairPrestationsController(ApplicationDbContext context) + { + _context = context; + } + + // GET: HairPrestations + public async Task Index() + { + return View(await _context.HairPrestation.ToListAsync()); + } + + // GET: HairPrestations/Details/5 + public async Task Details(long? id) + { + if (id == null) + { + return HttpNotFound(); + } + + HairPrestation hairPrestation = await _context.HairPrestation.SingleAsync(m => m.Id == id); + if (hairPrestation == null) + { + return HttpNotFound(); + } + + return View(hairPrestation); + } + + // GET: HairPrestations/Create + public IActionResult Create() + { + return View(); + } + + // POST: HairPrestations/Create + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Create(HairPrestation hairPrestation) + { + if (ModelState.IsValid) + { + _context.HairPrestation.Add(hairPrestation); + await _context.SaveChangesAsync(); + return RedirectToAction("Index"); + } + return View(hairPrestation); + } + + // GET: HairPrestations/Edit/5 + public async Task Edit(long? id) + { + if (id == null) + { + return HttpNotFound(); + } + + HairPrestation hairPrestation = await _context.HairPrestation.SingleAsync(m => m.Id == id); + if (hairPrestation == null) + { + return HttpNotFound(); + } + return View(hairPrestation); + } + + // POST: HairPrestations/Edit/5 + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Edit(HairPrestation hairPrestation) + { + if (ModelState.IsValid) + { + _context.Update(hairPrestation); + await _context.SaveChangesAsync(); + return RedirectToAction("Index"); + } + return View(hairPrestation); + } + + // GET: HairPrestations/Delete/5 + [ActionName("Delete")] + public async Task Delete(long? id) + { + if (id == null) + { + return HttpNotFound(); + } + + HairPrestation hairPrestation = await _context.HairPrestation.SingleAsync(m => m.Id == id); + if (hairPrestation == null) + { + return HttpNotFound(); + } + + return View(hairPrestation); + } + + // POST: HairPrestations/Delete/5 + [HttpPost, ActionName("Delete")] + [ValidateAntiForgeryToken] + public async Task DeleteConfirmed(long id) + { + HairPrestation hairPrestation = await _context.HairPrestation.SingleAsync(m => m.Id == id); + _context.HairPrestation.Remove(hairPrestation); + await _context.SaveChangesAsync(); + return RedirectToAction("Index"); + } + } +} diff --git a/Yavsc/Controllers/ManageController.cs b/Yavsc/Controllers/ManageController.cs index 34649b19..dd472b08 100644 --- a/Yavsc/Controllers/ManageController.cs +++ b/Yavsc/Controllers/ManageController.cs @@ -103,7 +103,7 @@ namespace Yavsc.Controllers UserName = user.UserName, PostsCounter = pc, Balance = user.AccountBalance, - ActiveCommandCount = _dbContext.BookQueries.Count(x => (x.ClientId == user.Id) && (x.EventDate > DateTime.Now)), + ActiveCommandCount = _dbContext.RdvQueries.Count(x => (x.ClientId == user.Id) && (x.EventDate > DateTime.Now)), HasDedicatedCalendar = !string.IsNullOrEmpty(user.DedicatedGoogleCalendar), Roles = await _userManager.GetRolesAsync(user), PostalAddress = user.PostalAddress?.Address, diff --git a/Yavsc/Helpers/EventHelpers.cs b/Yavsc/Helpers/EventHelpers.cs index 67c180e7..943c238c 100644 --- a/Yavsc/Helpers/EventHelpers.cs +++ b/Yavsc/Helpers/EventHelpers.cs @@ -4,13 +4,22 @@ namespace Yavsc.Helpers { using Models.Workflow; using Models.Messaging; + using Yavsc.Models.Haircut; + public static class EventHelpers { - public static BookQueryEvent CreateEvent(this BookQuery query, + public static RdvQueryEvent CreateEvent(this RdvQuery query, IStringLocalizer SR) { - var yaev = new BookQueryEvent - { + var yaev = new RdvQueryEvent + { + Sender = query.ClientId, + Message = string.Format(SR["RdvToPerf"], + query.Client.UserName, + query.EventDate.ToString("dddd dd/MM/yyyy à HH:mm"), + query.Location.Address, + query.ActivityCode)+ + "\n"+query.Reason, Client = new ClientProviderInfo {  UserName = query.Client.UserName , UserId = query.ClientId, @@ -24,6 +33,54 @@ namespace Yavsc.Helpers }; return yaev; } - + public static HairCutQueryEvent CreateEvent(this HairCutQuery query, + IStringLocalizer SR) + { + var yaev = new HairCutQueryEvent + { + Sender = query.ClientId, + Message = string.Format(SR["RdvToPerf"], + query.Client.UserName, + query.EventDate.ToString("dddd dd/MM/yyyy à HH:mm"), + query.Location.Address, + query.ActivityCode), + Client = new ClientProviderInfo {  + UserName = query.Client.UserName , + UserId = query.ClientId, + Avatar = query.Client.Avatar } , + Previsional = query.Previsional, + EventDate = query.EventDate, + Location = query.Location, + Id = query.Id, + Reason = "Coupe particulier", + ActivityCode = query.ActivityCode + }; + return yaev; + } + + public static HairCutQueryEvent CreateEvent(this HairMultiCutQuery query, + IStringLocalizer SR) + { + var yaev = new HairCutQueryEvent + { + Sender = query.ClientId, + Message = string.Format(SR["RdvToPerf"], + query.Client.UserName, + query.EventDate.ToString("dddd dd/MM/yyyy à HH:mm"), + query.Location.Address, + query.ActivityCode), + Client = new ClientProviderInfo {  + UserName = query.Client.UserName , + UserId = query.ClientId, + Avatar = query.Client.Avatar } , + Previsional = query.Previsional, + EventDate = query.EventDate, + Location = query.Location, + Id = query.Id, + Reason = "Commande groupée!", + ActivityCode = query.ActivityCode + }; + return yaev; + } } } diff --git a/Yavsc/Migrations/20170227151759_hairPrestations.Designer.cs b/Yavsc/Migrations/20170227151759_hairPrestations.Designer.cs new file mode 100644 index 00000000..b0287338 --- /dev/null +++ b/Yavsc/Migrations/20170227151759_hairPrestations.Designer.cs @@ -0,0 +1,1329 @@ +using System; +using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; +using Yavsc.Models; + +namespace Yavsc.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20170227151759_hairPrestations")] + partial class hairPrestations + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "7.0.0-rc1-16348"); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b => + { + b.Property("Id"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .HasAnnotation("Relational:Name", "RoleNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasAnnotation("Relational:TableName", "AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasAnnotation("Relational:TableName", "AspNetUserRoles"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.Property("CircleId"); + + b.Property("BlogPostId"); + + b.HasKey("CircleId", "BlogPostId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.Property("UserId"); + + b.Property("ContactCredits"); + + b.Property("Credits"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("Avatar") + .IsRequired() + .HasAnnotation("MaxLength", 512) + .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("BankInfoId"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("DedicatedGoogleCalendar"); + + b.Property("DiskQuota") + .HasAnnotation("Relational:DefaultValue", "524288000") + .HasAnnotation("Relational:DefaultValueType", "System.Int64"); + + b.Property("DiskUsage"); + + b.Property("Email") + .HasAnnotation("MaxLength", 256); + + b.Property("EmailConfirmed"); + + b.Property("FullName") + .HasAnnotation("MaxLength", 512); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedUserName") + .HasAnnotation("MaxLength", 256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("PostalAddressId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasAnnotation("Relational:Name", "EmailIndex"); + + b.HasIndex("NormalizedUserName") + .HasAnnotation("Relational:Name", "UserNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetUsers"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.Client", b => + { + b.Property("Id"); + + b.Property("Active"); + + b.Property("DisplayName"); + + b.Property("LogoutRedirectUri") + .HasAnnotation("MaxLength", 100); + + b.Property("RedirectUri"); + + b.Property("RefreshTokenLifeTime"); + + b.Property("Secret"); + + b.Property("Type"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b => + { + b.Property("Id"); + + b.Property("ClientId") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.Property("ExpiresUtc"); + + b.Property("IssuedUtc"); + + b.Property("ProtectedTicket") + .IsRequired(); + + b.Property("Subject") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BalanceId") + .IsRequired(); + + b.Property("ExecDate"); + + b.Property("Impact"); + + b.Property("Reason") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccountNumber") + .HasAnnotation("MaxLength", 15); + + b.Property("BIC") + .HasAnnotation("MaxLength", 15); + + b.Property("BankCode") + .HasAnnotation("MaxLength", 5); + + b.Property("BankedKey"); + + b.Property("IBAN") + .HasAnnotation("MaxLength", 33); + + b.Property("WicketCode") + .HasAnnotation("MaxLength", 5); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Count"); + + b.Property("Description") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("EstimateId"); + + b.Property("EstimateTemplateId"); + + b.Property("UnitaryCost"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AttachedFilesString"); + + b.Property("AttachedGraphicsString"); + + b.Property("ClientId") + .IsRequired(); + + b.Property("ClientValidationDate"); + + b.Property("CommandId"); + + b.Property("CommandType"); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("ProviderValidationDate"); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b => + { + b.Property("SIREN"); + + b.HasKey("SIREN"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId"); + + b.Property("Content"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("Title"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.Property("ConnectionId"); + + b.Property("ApplicationUserId"); + + b.Property("Connected"); + + b.Property("UserAgent"); + + b.HasKey("ConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Drawing.Color", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Blue"); + + b.Property("Green"); + + b.Property("Name"); + + b.Property("Red"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Forms.Form", b => + { + b.Property("Id"); + + b.Property("Summary"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("HairMultiCutQueryId"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Brand"); + + b.Property("ColorId"); + + b.Property("HairPrestationId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.Property("DeviceId"); + + b.Property("DeclarationDate") + .ValueGeneratedOnAdd() + .HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP"); + + b.Property("DeviceOwnerId"); + + b.Property("GCMRegistrationId") + .IsRequired(); + + b.Property("Model"); + + b.Property("Platform"); + + b.Property("Version"); + + b.HasKey("DeviceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Depth"); + + b.Property("Description"); + + b.Property("Height"); + + b.Property("Name"); + + b.Property("Price"); + + b.Property("Public"); + + b.Property("Weight"); + + b.Property("Width"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ContextId"); + + b.Property("Description"); + + b.Property("Name"); + + b.Property("Public"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.Property("UserId"); + + b.Property("Avatar"); + + b.Property("BillingAddressId"); + + b.Property("EMail"); + + b.Property("Phone"); + + b.Property("UserName"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.Property("UserId"); + + b.Property("NotificationId"); + + b.HasKey("UserId", "NotificationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("body") + .IsRequired(); + + b.Property("click_action") + .IsRequired(); + + b.Property("color"); + + b.Property("icon"); + + b.Property("sound"); + + b.Property("tag"); + + b.Property("title") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Instrument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.Property("OwnerProfileId"); + + b.Property("DjSettingsUserId"); + + b.Property("GeneralSettingsUserId"); + + b.Property("Rate"); + + b.Property("TendencyId"); + + b.HasKey("OwnerProfileId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalTendency", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.DjSettings", b => + { + b.Property("UserId"); + + b.Property("SoundCloudId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.GeneralSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.Property("InstrumentId"); + + b.Property("UserId"); + + b.HasKey("InstrumentId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b => + { + b.Property("UserId"); + + b.Property("AccessToken"); + + b.Property("Expiration"); + + b.Property("ExpiresIn"); + + b.Property("RefreshToken"); + + b.Property("TokenType"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ApplicationUserId"); + + b.Property("Name"); + + b.Property("OwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.Property("MemberId"); + + b.Property("CircleId"); + + b.HasKey("MemberId", "CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.Property("OwnerId"); + + b.Property("UserId"); + + b.Property("ApplicationUserId"); + + b.HasKey("OwnerId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Address") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("Latitude"); + + b.Property("Longitude"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.LocationType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.Property("PostId"); + + b.Property("TagId"); + + b.HasKey("PostId", "TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("Rate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.Property("Code") + .HasAnnotation("MaxLength", 512); + + b.Property("ActorDenomination"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("Hidden"); + + b.Property("ModeratorGroupName"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("ParentCode") + .HasAnnotation("MaxLength", 512); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("SettingsClassName"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Action"); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormationSettingsUserId"); + + b.Property("PerformerId"); + + b.Property("WorkingForId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.Property("PerformerId"); + + b.Property("AcceptNotifications"); + + b.Property("AcceptPublicContact"); + + b.Property("Active"); + + b.Property("MaxDailyCost"); + + b.Property("MinDailyCost"); + + b.Property("OrganizationAddressId"); + + b.Property("Rate"); + + b.Property("SIREN") + .IsRequired() + .HasAnnotation("MaxLength", 14); + + b.Property("UseGeoLocalizationToReduceDistanceWithClients"); + + b.Property("WebSite"); + + b.HasKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Profiles.FormationSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("LocationTypeId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("BlogPostId"); + + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithOne() + .HasForeignKey("Yavsc.Models.AccountBalance", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.HasOne("Yavsc.Models.Bank.BankIdentity") + .WithMany() + .HasForeignKey("BankInfoId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("PostalAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.HasOne("Yavsc.Models.AccountBalance") + .WithMany() + .HasForeignKey("BalanceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.HasOne("Yavsc.Models.Billing.Estimate") + .WithMany() + .HasForeignKey("EstimateId"); + + b.HasOne("Yavsc.Models.Billing.EstimateTemplate") + .WithMany() + .HasForeignKey("EstimateTemplateId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Workflow.RdvQuery") + .WithMany() + .HasForeignKey("CommandId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("HairMultiCutQueryId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.HasOne("Yavsc.Models.Drawing.Color") + .WithMany() + .HasForeignKey("ColorId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("HairPrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("DeviceOwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ContextId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("BillingAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.HasOne("Yavsc.Models.Messaging.Notification") + .WithMany() + .HasForeignKey("NotificationId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.HasOne("Yavsc.Models.Musical.Profiles.DjSettings") + .WithMany() + .HasForeignKey("DjSettingsUserId"); + + b.HasOne("Yavsc.Models.Musical.Profiles.GeneralSettings") + .WithMany() + .HasForeignKey("GeneralSettingsUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.HasOne("Yavsc.Models.Musical.Instrument") + .WithMany() + .HasForeignKey("InstrumentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("MemberId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("PostId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ParentCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.HasOne("Yavsc.Models.Workflow.Profiles.FormationSettings") + .WithMany() + .HasForeignKey("FormationSettingsUserId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("WorkingForId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("OrganizationAddressId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("DoesCode"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + } + } +} diff --git a/Yavsc/Migrations/20170227151759_hairPrestations.cs b/Yavsc/Migrations/20170227151759_hairPrestations.cs new file mode 100644 index 00000000..3ba54b9e --- /dev/null +++ b/Yavsc/Migrations/20170227151759_hairPrestations.cs @@ -0,0 +1,745 @@ +using System; +using System.Collections.Generic; +using Microsoft.Data.Entity.Migrations; + +namespace Yavsc.Migrations +{ + public partial class hairPrestations : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_BaseProduct_ArticleId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_BookQuery_CommandId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropColumn(name: "ArticleId", table: "CommandLine"); + migrationBuilder.DropTable("BaseProduct"); + migrationBuilder.DropTable("BookQuery"); + // les id de requete existant venaient d'une table nomée "BookQuery" + // qui n'existe plus. + migrationBuilder.Sql("DELETE FROM \"Estimate\""); + migrationBuilder.Sql("DELETE FROM \"CommandLine\""); + migrationBuilder.CreateTable( + name: "HairMultiCutQuery", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:Serial", true), + ActivityCode = table.Column(nullable: false), + ClientId = table.Column(nullable: false), + DateCreated = table.Column(nullable: false), + DateModified = table.Column(nullable: false), + EventDate = table.Column(nullable: false), + LocationId = table.Column(nullable: true), + PerformerId = table.Column(nullable: false), + Previsional = table.Column(nullable: true), + Status = table.Column(nullable: false), + UserCreated = table.Column(nullable: true), + UserModified = table.Column(nullable: true), + ValidationDate = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_HairMultiCutQuery", x => x.Id); + table.ForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + column: x => x.ActivityCode, + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + column: x => x.ClientId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_HairMultiCutQuery_Location_LocationId", + column: x => x.LocationId, + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + column: x => x.PerformerId, + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( + name: "Product", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:Serial", true), + Depth = table.Column(nullable: false), + Description = table.Column(nullable: true), + Height = table.Column(nullable: false), + Name = table.Column(nullable: true), + Price = table.Column(nullable: true), + Public = table.Column(nullable: false), + Weight = table.Column(nullable: false), + Width = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Product", x => x.Id); + }); + migrationBuilder.CreateTable( + name: "RdvQuery", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:Serial", true), + ActivityCode = table.Column(nullable: false), + ClientId = table.Column(nullable: false), + DateCreated = table.Column(nullable: false), + DateModified = table.Column(nullable: false), + EventDate = table.Column(nullable: false), + LocationId = table.Column(nullable: true), + LocationTypeId = table.Column(nullable: true), + PerformerId = table.Column(nullable: false), + Previsional = table.Column(nullable: true), + Reason = table.Column(nullable: true), + Status = table.Column(nullable: false), + UserCreated = table.Column(nullable: true), + UserModified = table.Column(nullable: true), + ValidationDate = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_RdvQuery", x => x.Id); + table.ForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + column: x => x.ActivityCode, + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + column: x => x.ClientId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_RdvQuery_Location_LocationId", + column: x => x.LocationId, + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_RdvQuery_LocationType_LocationTypeId", + column: x => x.LocationTypeId, + principalTable: "LocationType", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + column: x => x.PerformerId, + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( + name: "HairPrestation", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:Serial", true), + Cares = table.Column(nullable: false), + Cut = table.Column(nullable: false), + Dressing = table.Column(nullable: false), + Gender = table.Column(nullable: false), + HairMultiCutQueryId = table.Column(nullable: true), + Length = table.Column(nullable: false), + Shampoo = table.Column(nullable: false), + Tech = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_HairPrestation", x => x.Id); + table.ForeignKey( + name: "FK_HairPrestation_HairMultiCutQuery_HairMultiCutQueryId", + column: x => x.HairMultiCutQueryId, + principalTable: "HairMultiCutQuery", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + migrationBuilder.CreateTable( + name: "HairCutQuery", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:Serial", true), + ActivityCode = table.Column(nullable: false), + ClientId = table.Column(nullable: false), + DateCreated = table.Column(nullable: false), + DateModified = table.Column(nullable: false), + EventDate = table.Column(nullable: false), + LocationId = table.Column(nullable: true), + PerformerId = table.Column(nullable: false), + PrestationId = table.Column(nullable: true), + Previsional = table.Column(nullable: true), + Status = table.Column(nullable: false), + UserCreated = table.Column(nullable: true), + UserModified = table.Column(nullable: true), + ValidationDate = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_HairCutQuery", x => x.Id); + table.ForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + column: x => x.ActivityCode, + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + column: x => x.ClientId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_HairCutQuery_Location_LocationId", + column: x => x.LocationId, + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + column: x => x.PerformerId, + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_HairCutQuery_HairPrestation_PrestationId", + column: x => x.PrestationId, + principalTable: "HairPrestation", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + migrationBuilder.AddColumn( + name: "HairPrestationId", + table: "HairTaint", + nullable: true); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_RdvQuery_CommandId", + table: "Estimate", + column: "CommandId", + principalTable: "RdvQuery", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_HairPrestation_HairPrestationId", + table: "HairTaint", + column: "HairPrestationId", + principalTable: "HairPrestation", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_RdvQuery_CommandId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_HairPrestation_HairPrestationId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropColumn(name: "HairPrestationId", table: "HairTaint"); + migrationBuilder.DropTable("HairCutQuery"); + migrationBuilder.DropTable("Product"); + migrationBuilder.DropTable("RdvQuery"); + migrationBuilder.DropTable("HairPrestation"); + migrationBuilder.DropTable("HairMultiCutQuery"); + migrationBuilder.CreateTable( + name: "BaseProduct", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:Serial", true), + Description = table.Column(nullable: true), + Discriminator = table.Column(nullable: false), + Name = table.Column(nullable: true), + Public = table.Column(nullable: false), + Depth = table.Column(nullable: true), + Height = table.Column(nullable: true), + Price = table.Column(nullable: true), + Weight = table.Column(nullable: true), + Width = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_BaseProduct", x => x.Id); + }); + migrationBuilder.CreateTable( + name: "BookQuery", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:Serial", true), + ActivityCode = table.Column(nullable: false), + ClientId = table.Column(nullable: false), + DateCreated = table.Column(nullable: false), + DateModified = table.Column(nullable: false), + EventDate = table.Column(nullable: false), + LocationId = table.Column(nullable: true), + LocationTypeId = table.Column(nullable: true), + PerformerId = table.Column(nullable: false), + Previsional = table.Column(nullable: true), + Reason = table.Column(nullable: true), + Status = table.Column(nullable: false), + UserCreated = table.Column(nullable: true), + UserModified = table.Column(nullable: true), + ValidationDate = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_BookQuery", x => x.Id); + table.ForeignKey( + name: "FK_BookQuery_Activity_ActivityCode", + column: x => x.ActivityCode, + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_BookQuery_ApplicationUser_ClientId", + column: x => x.ClientId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_BookQuery_Location_LocationId", + column: x => x.LocationId, + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_BookQuery_LocationType_LocationTypeId", + column: x => x.LocationTypeId, + principalTable: "LocationType", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_BookQuery_PerformerProfile_PerformerId", + column: x => x.PerformerId, + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + }); + migrationBuilder.AddColumn( + name: "ArticleId", + table: "CommandLine", + nullable: true); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_BaseProduct_ArticleId", + table: "CommandLine", + column: "ArticleId", + principalTable: "BaseProduct", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_BookQuery_CommandId", + table: "Estimate", + column: "CommandId", + principalTable: "BookQuery", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs index 811d6f93..3421caed 100644 --- a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs @@ -1,6 +1,8 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; using Yavsc.Models; namespace Yavsc.Migrations @@ -306,8 +308,6 @@ namespace Yavsc.Migrations b.Property("Id") .ValueGeneratedOnAdd(); - b.Property("ArticleId"); - b.Property("Count"); b.Property("Description") @@ -441,6 +441,102 @@ namespace Yavsc.Migrations b.HasKey("Id"); }); + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("HairMultiCutQueryId"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => { b.Property("Id") @@ -450,6 +546,8 @@ namespace Yavsc.Migrations b.Property("ColorId"); + b.Property("HairPrestationId"); + b.HasKey("Id"); }); @@ -475,25 +573,28 @@ namespace Yavsc.Migrations b.HasKey("DeviceId"); }); - modelBuilder.Entity("Yavsc.Models.Market.BaseProduct", b => + modelBuilder.Entity("Yavsc.Models.Market.Product", b => { b.Property("Id") .ValueGeneratedOnAdd(); + b.Property("Depth"); + b.Property("Description"); - b.Property("Discriminator") - .IsRequired(); + b.Property("Height"); b.Property("Name"); + b.Property("Price"); + b.Property("Public"); - b.HasKey("Id"); + b.Property("Weight"); - b.HasAnnotation("Relational:DiscriminatorProperty", "Discriminator"); + b.Property("Width"); - b.HasAnnotation("Relational:DiscriminatorValue", "BaseProduct"); + b.HasKey("Id"); }); modelBuilder.Entity("Yavsc.Models.Market.Service", b => @@ -773,45 +874,6 @@ namespace Yavsc.Migrations b.HasKey("Code"); }); - modelBuilder.Entity("Yavsc.Models.Workflow.BookQuery", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ActivityCode") - .IsRequired(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("DateCreated"); - - b.Property("DateModified"); - - b.Property("EventDate"); - - b.Property("LocationId"); - - b.Property("LocationTypeId"); - - b.Property("PerformerId") - .IsRequired(); - - b.Property("Previsional"); - - b.Property("Reason"); - - b.Property("Status"); - - b.Property("UserCreated"); - - b.Property("UserModified"); - - b.Property("ValidationDate"); - - b.HasKey("Id"); - }); - modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => { b.Property("Id") @@ -877,32 +939,54 @@ namespace Yavsc.Migrations b.HasKey("UserId"); }); - modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => { - b.Property("DoesCode"); + b.Property("Id") + .ValueGeneratedOnAdd(); - b.Property("UserId"); + b.Property("ActivityCode") + .IsRequired(); - b.Property("Weight"); + b.Property("ClientId") + .IsRequired(); - b.HasKey("DoesCode", "UserId"); - }); + b.Property("DateCreated"); - modelBuilder.Entity("Yavsc.Models.Market.Product", b => - { - b.HasBaseType("Yavsc.Models.Market.BaseProduct"); + b.Property("DateModified"); - b.Property("Depth"); + b.Property("EventDate"); - b.Property("Height"); + b.Property("LocationId"); - b.Property("Price"); + b.Property("LocationTypeId"); - b.Property("Weight"); + b.Property("PerformerId") + .IsRequired(); - b.Property("Width"); + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); - b.HasAnnotation("Relational:DiscriminatorValue", "Product"); + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); }); modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => @@ -982,10 +1066,6 @@ namespace Yavsc.Migrations modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => { - b.HasOne("Yavsc.Models.Market.BaseProduct") - .WithMany() - .HasForeignKey("ArticleId"); - b.HasOne("Yavsc.Models.Billing.Estimate") .WithMany() .HasForeignKey("EstimateId"); @@ -1001,7 +1081,7 @@ namespace Yavsc.Migrations .WithMany() .HasForeignKey("ClientId"); - b.HasOne("Yavsc.Models.Workflow.BookQuery") + b.HasOne("Yavsc.Models.Workflow.RdvQuery") .WithMany() .HasForeignKey("CommandId"); @@ -1024,11 +1104,64 @@ namespace Yavsc.Migrations .HasForeignKey("ApplicationUserId"); }); + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("HairMultiCutQueryId"); + }); + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => { b.HasOne("Yavsc.Models.Drawing.Color") .WithMany() .HasForeignKey("ColorId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("HairPrestationId"); }); modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => @@ -1124,29 +1257,6 @@ namespace Yavsc.Migrations .HasForeignKey("ParentCode"); }); - modelBuilder.Entity("Yavsc.Models.Workflow.BookQuery", b => - { - b.HasOne("Yavsc.Models.Workflow.Activity") - .WithMany() - .HasForeignKey("ActivityCode"); - - b.HasOne("Yavsc.Models.ApplicationUser") - .WithMany() - .HasForeignKey("ClientId"); - - b.HasOne("Yavsc.Models.Relationship.Location") - .WithMany() - .HasForeignKey("LocationId"); - - b.HasOne("Yavsc.Models.Relationship.LocationType") - .WithMany() - .HasForeignKey("LocationTypeId"); - - b.HasOne("Yavsc.Models.Workflow.PerformerProfile") - .WithMany() - .HasForeignKey("PerformerId"); - }); - modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => { b.HasOne("Yavsc.Models.Workflow.Activity") @@ -1180,6 +1290,29 @@ namespace Yavsc.Migrations .HasForeignKey("PerformerId"); }); + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => { b.HasOne("Yavsc.Models.Workflow.Activity") diff --git a/Yavsc/Models/ApplicationDbContext.cs b/Yavsc/Models/ApplicationDbContext.cs index 59fc70d2..867f313b 100644 --- a/Yavsc/Models/ApplicationDbContext.cs +++ b/Yavsc/Models/ApplicationDbContext.cs @@ -91,13 +91,15 @@ namespace Yavsc.Models /// on his profile). /// /// - public DbSet Commands { get; set; } + public DbSet Commands { get; set; } /// /// Special commands, talking about /// a given place and date. /// /// - public DbSet BookQueries { get; set; } + public DbSet RdvQueries { get; set; } + public DbSet HairCutQueries { get; set; } + public DbSet HairMultiCutQueries { get; set; } public DbSet Performers { get; set; } public DbSet Estimates { get; set; } public DbSet BankStatus { get; set; } @@ -269,6 +271,8 @@ namespace Yavsc.Models public DbSet Notification { get; set; } public DbSet DimissClicked { get; set; } + + public DbSet HairPrestation { get; set; } } diff --git a/Yavsc/Models/Billing/CommandLine.cs b/Yavsc/Models/Billing/CommandLine.cs index cd55e5ce..f7df4b13 100644 --- a/Yavsc/Models/Billing/CommandLine.cs +++ b/Yavsc/Models/Billing/CommandLine.cs @@ -2,7 +2,6 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; -using Yavsc.Models.Market; namespace Yavsc.Models.Billing { @@ -14,7 +13,7 @@ namespace Yavsc.Models.Billing [Required,MaxLength(512)] public string Description { get; set; } - public BaseProduct Article { get; set; } + public int Count { get; set; } [DisplayFormat(DataFormatString="{0:C}")] diff --git a/Yavsc/Models/Billing/Estimate.cs b/Yavsc/Models/Billing/Estimate.cs index 01e5d906..8cfa34cf 100644 --- a/Yavsc/Models/Billing/Estimate.cs +++ b/Yavsc/Models/Billing/Estimate.cs @@ -24,7 +24,7 @@ namespace Yavsc.Models.Billing /// /// [ForeignKey("CommandId"),JsonIgnore] - public BookQuery Query { get; set; } + public RdvQuery Query { get; set; } public string Description { get; set; } public string Title { get; set; } diff --git a/Yavsc/Models/Billing/NominativeServiceCommand.cs b/Yavsc/Models/Billing/NominativeServiceCommand.cs index c11b22bb..878dc560 100644 --- a/Yavsc/Models/Billing/NominativeServiceCommand.cs +++ b/Yavsc/Models/Billing/NominativeServiceCommand.cs @@ -5,11 +5,12 @@ using System.ComponentModel.DataAnnotations.Schema; namespace Yavsc.Models.Billing { -using Interfaces.Workflow; -using Workflow; -using YavscLib; + using Interfaces.Workflow; + using Newtonsoft.Json; + using Workflow; + using YavscLib; - public abstract class NominativeServiceCommand : IBaseTrackedEntity, IQuery + public abstract class NominativeServiceCommand : IBaseTrackedEntity, IQuery { public DateTime DateCreated { @@ -60,6 +61,10 @@ using YavscLib; /// /// + [Required] + public string ActivityCode { get; set; } + [ForeignKey("ActivityCode"),JsonIgnore] + public virtual Activity Context  { get; set ; } } } \ No newline at end of file diff --git a/Yavsc/Models/Calendar/ICalendarManager.cs b/Yavsc/Models/Calendar/ICalendarManager.cs index 5a5f2799..cf60bd13 100644 --- a/Yavsc/Models/Calendar/ICalendarManager.cs +++ b/Yavsc/Models/Calendar/ICalendarManager.cs @@ -35,7 +35,7 @@ namespace Yavsc.Models.Calendar /// The free dates. /// Username. /// Req. - IFreeDateSet GetFreeDates(string username, BookQuery req); + IFreeDateSet GetFreeDates(string username, RdvQuery req); /// /// Book the specified username and ev. /// diff --git a/Yavsc/Models/Haircut/HairCutQuery.cs b/Yavsc/Models/Haircut/HairCutQuery.cs index 57bd3a6a..c4960ffd 100644 --- a/Yavsc/Models/Haircut/HairCutQuery.cs +++ b/Yavsc/Models/Haircut/HairCutQuery.cs @@ -1,7 +1,9 @@ +using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Yavsc.Models.Billing; +using Yavsc.Models.Relationship; namespace Yavsc.Models.Haircut { @@ -9,6 +11,14 @@ namespace Yavsc.Models.Haircut { [Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long Id { get; set; } - HairPrestation [] Prestations { get; set; } + HairPrestation Prestation { get; set; } + + public Location Location { get; set; } + + public DateTime EventDate + { + get; + set; + } } } \ No newline at end of file diff --git a/Yavsc/Models/Haircut/HairCutQueryEvent.cs b/Yavsc/Models/Haircut/HairCutQueryEvent.cs index ccb12992..04d18ed2 100644 --- a/Yavsc/Models/Haircut/HairCutQueryEvent.cs +++ b/Yavsc/Models/Haircut/HairCutQueryEvent.cs @@ -2,7 +2,7 @@ using Yavsc.Interfaces.Workflow; namespace Yavsc.Models.Haircut { - public class HairCutQueryEvent : BookQueryProviderInfo, IEvent + public class HairCutQueryEvent : RdvQueryProviderInfo, IEvent { public HairCutQueryEvent() { diff --git a/Yavsc/Models/Haircut/HairDressings.cs b/Yavsc/Models/Haircut/HairDressings.cs index 7f3369a4..02fa17ed 100644 --- a/Yavsc/Models/Haircut/HairDressings.cs +++ b/Yavsc/Models/Haircut/HairDressings.cs @@ -1,7 +1,14 @@ +using System.ComponentModel.DataAnnotations; + namespace Yavsc.Models.Haircut { public enum HairDressings { + + Coiffage, + Brushing, + + [Display(Name="Mise en plis")] Folding } } \ No newline at end of file diff --git a/Yavsc/Models/Haircut/HairMultiCutQuery.cs b/Yavsc/Models/Haircut/HairMultiCutQuery.cs new file mode 100644 index 00000000..35e958fc --- /dev/null +++ b/Yavsc/Models/Haircut/HairMultiCutQuery.cs @@ -0,0 +1,23 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Yavsc.Models.Billing; +using Yavsc.Models.Relationship; + +namespace Yavsc.Models.Haircut +{ + public class HairMultiCutQuery : NominativeServiceCommand + { + [Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long Id { get; set; } + HairPrestation [] Prestations { get; set; } + + public Location Location { get; set; } + + public DateTime EventDate + { + get; + set; + } + } +} \ No newline at end of file diff --git a/Yavsc/Models/Haircut/HairPrestation.cs b/Yavsc/Models/Haircut/HairPrestation.cs index 66ecac62..2ebd4d30 100644 --- a/Yavsc/Models/Haircut/HairPrestation.cs +++ b/Yavsc/Models/Haircut/HairPrestation.cs @@ -1,18 +1,39 @@ -using Yavsc.Models.Market; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; namespace Yavsc.Models.Haircut { - public class HairPrestation : Service + public class HairPrestation { + [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long Id { get; set; } + + [Display(Name="Longueur de cheveux")] public HairLength Length { get; set; } + + [Display(Name="Pour qui")] public HairCutGenders Gender { get; set; } + + [Display(Name="Coupe")] public bool Cut { get; set; } + [Display(Name="Coiffage")] + public HairDressings Dressing { get; set; } + + [Display(Name="Technique")] public HairTechnos Tech { get; set; } + + [Display(Name="Shampoing")] public bool Shampoo { get; set; } - public HairTaint[] Taints { get; set; } + + [Display(Name="Couleurs")] + + public virtual List Taints { get; set; } + + [Display(Name="Soins")] public bool Cares { get; set; } } diff --git a/Yavsc/Models/Haircut/HairTechnos.cs b/Yavsc/Models/Haircut/HairTechnos.cs index 39af80d7..d3333216 100644 --- a/Yavsc/Models/Haircut/HairTechnos.cs +++ b/Yavsc/Models/Haircut/HairTechnos.cs @@ -1,13 +1,18 @@ +using System.ComponentModel.DataAnnotations; + namespace Yavsc.Models.Haircut { public enum HairTechnos { Color, + + [Display(Name="Permantante")] Permanent, + [Display(Name="Défrisage")] Defris, + [Display(Name="Mêches")] Mech, - Balayage, - TyAndDie + Balayage } -} \ No newline at end of file +} diff --git a/Yavsc/Models/Market/BaseProduct.cs b/Yavsc/Models/Market/BaseProduct.cs index cd6b2525..2efacfe8 100644 --- a/Yavsc/Models/Market/BaseProduct.cs +++ b/Yavsc/Models/Market/BaseProduct.cs @@ -1,16 +1,10 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; + namespace Yavsc.Models.Market { - public partial class BaseProduct + public class BaseProduct { - /// - /// An unique product identifier. - /// - /// - [Key(),DatabaseGenerated(DatabaseGeneratedOption.Identity)] - public long Id { get; set; } + public string Name { get; set; } /// /// A contractual description for this product. diff --git a/Yavsc/Models/Market/Product.cs b/Yavsc/Models/Market/Product.cs index e616ffe0..ae8f2919 100644 --- a/Yavsc/Models/Market/Product.cs +++ b/Yavsc/Models/Market/Product.cs @@ -1,9 +1,15 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + namespace Yavsc.Models.Market { - public partial class Product : BaseProduct + public class Product : BaseProduct { + [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long Id { get; set; } + /// /// Weight in gram /// diff --git a/Yavsc/Models/Market/Service.cs b/Yavsc/Models/Market/Service.cs index 9e77596e..d4ee08d7 100644 --- a/Yavsc/Models/Market/Service.cs +++ b/Yavsc/Models/Market/Service.cs @@ -2,11 +2,19 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace Yavsc.Models.Market { + using System.ComponentModel.DataAnnotations; using Billing; using Workflow; - public partial class Service : BaseProduct + public class Service : BaseProduct { + /// + /// An unique product identifier. + /// + /// + [Key(),DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long Id { get; set; } + public string ContextId { get; set; } [ForeignKey("ContextId")] public virtual Activity Context { get; set; } diff --git a/Yavsc/Models/Messaging/BookQueryEvent.cs b/Yavsc/Models/Messaging/RdvQueryEvent.cs similarity index 92% rename from Yavsc/Models/Messaging/BookQueryEvent.cs rename to Yavsc/Models/Messaging/RdvQueryEvent.cs index 2e4a4bb5..234529e6 100644 --- a/Yavsc/Models/Messaging/BookQueryEvent.cs +++ b/Yavsc/Models/Messaging/RdvQueryEvent.cs @@ -25,9 +25,9 @@ using Interfaces.Workflow; -public class BookQueryEvent: BookQueryProviderInfo, IEvent +public class RdvQueryEvent: RdvQueryProviderInfo, IEvent { - public BookQueryEvent() + public RdvQueryEvent() { Topic = "BookQuery"; } diff --git a/Yavsc/Models/Messaging/BookQueryProviderInfo.cs b/Yavsc/Models/Messaging/RdvQueryProviderInfo.cs similarity index 92% rename from Yavsc/Models/Messaging/BookQueryProviderInfo.cs rename to Yavsc/Models/Messaging/RdvQueryProviderInfo.cs index 72859999..55dd2f43 100644 --- a/Yavsc/Models/Messaging/BookQueryProviderInfo.cs +++ b/Yavsc/Models/Messaging/RdvQueryProviderInfo.cs @@ -5,7 +5,7 @@ namespace Yavsc.Models using Models.Messaging; using Models.Relationship; - public class BookQueryProviderInfo + public class RdvQueryProviderInfo { public ClientProviderInfo Client { get; set; } public Location Location { get; set; } diff --git a/Yavsc/Models/Workflow/BookQuery.cs b/Yavsc/Models/Workflow/RdvQuery.cs similarity index 73% rename from Yavsc/Models/Workflow/BookQuery.cs rename to Yavsc/Models/Workflow/RdvQuery.cs index c27890db..4b3de2e6 100644 --- a/Yavsc/Models/Workflow/BookQuery.cs +++ b/Yavsc/Models/Workflow/RdvQuery.cs @@ -1,7 +1,6 @@ using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; -using Newtonsoft.Json; namespace Yavsc.Models.Workflow { @@ -11,7 +10,7 @@ namespace Yavsc.Models.Workflow /// Query, for a date, with a given perfomer, at this given place. /// - public class BookQuery : NominativeServiceCommand + public class RdvQuery : NominativeServiceCommand { /// /// The command identifier @@ -38,22 +37,18 @@ namespace Yavsc.Models.Workflow } public string Reason { get; set; } - public BookQuery() + public RdvQuery() { } - public BookQuery(string activityCode, Location eventLocation, DateTime eventDate) + public RdvQuery(string activityCode, Location eventLocation, DateTime eventDate) { Location = eventLocation; EventDate = eventDate; ActivityCode = activityCode; } - [Required] - public string ActivityCode { get; set; } - [ForeignKey("ActivityCode"),JsonIgnore] - public virtual Activity Context  { get; set ; } } } diff --git a/Yavsc/Resources/Yavsc.Resources.YavscLocalisation.en.resx b/Yavsc/Resources/Yavsc.Resources.YavscLocalisation.en.resx index adfe14e0..abaeadd1 100644 --- a/Yavsc/Resources/Yavsc.Resources.YavscLocalisation.en.resx +++ b/Yavsc/Resources/Yavsc.Resources.YavscLocalisation.en.resx @@ -338,5 +338,5 @@ contact a performer You posts Your profile Your message has been sent - + Hair Length diff --git a/Yavsc/Resources/Yavsc.Resources.YavscLocalisation.resx b/Yavsc/Resources/Yavsc.Resources.YavscLocalisation.resx index 0a7b4e3c..aa101278 100644 --- a/Yavsc/Resources/Yavsc.Resources.YavscLocalisation.resx +++ b/Yavsc/Resources/Yavsc.Resources.YavscLocalisation.resx @@ -325,6 +325,7 @@ Identifiant du fournisseur Nom du fournisseur Cote + {0} vous demande une intervention le {1} à {2} ({3}) Lire la suite ... raison S'inscrire diff --git a/Yavsc/Services/IGoogleCloudMessageSender.cs b/Yavsc/Services/IGoogleCloudMessageSender.cs index 662be685..c6ad796f 100644 --- a/Yavsc/Services/IGoogleCloudMessageSender.cs +++ b/Yavsc/Services/IGoogleCloudMessageSender.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using Yavsc.Models.Google.Messaging; +using Yavsc.Models.Haircut; using Yavsc.Models.Messaging; namespace Yavsc.Services @@ -11,12 +12,18 @@ namespace Yavsc.Services Task NotifyBookQueryAsync( GoogleAuthSettings googlesettings, IEnumerable registrationId, - BookQueryEvent ev); + RdvQueryEvent ev); - Task NotifyEstimateAsync( + Task NotifyEstimateAsync( GoogleAuthSettings googlesettings, IEnumerable registrationId, EstimationEvent ev); + Task NotifyHairCutQueryAsync( + GoogleAuthSettings googlesettings, + IEnumerable registrationId, + HairCutQueryEvent ev); + + } } diff --git a/Yavsc/Services/MessageServices.cs b/Yavsc/Services/MessageServices.cs index d0a0b44c..30a299a1 100755 --- a/Yavsc/Services/MessageServices.cs +++ b/Yavsc/Services/MessageServices.cs @@ -10,6 +10,7 @@ using Microsoft.AspNet.Identity; using Yavsc.Models; using Yavsc.Models.Google.Messaging; using System.Collections.Generic; +using Yavsc.Models.Haircut; namespace Yavsc.Services { @@ -27,11 +28,11 @@ namespace Yavsc.Services /// a MessageWithPayloadResponse, /// bool somethingsent = (response.failure == 0 && response.success > 0) /// - public async Task NotifyBookQueryAsync(GoogleAuthSettings googleSettings, IEnumerable registrationIds, BookQueryEvent ev) + public async Task NotifyBookQueryAsync(GoogleAuthSettings googleSettings, IEnumerable registrationIds, RdvQueryEvent ev) { MessageWithPayloadResponse response = null; await Task.Run(()=>{ - response = googleSettings.NotifyEvent(registrationIds, ev); + response = googleSettings.NotifyEvent(registrationIds, ev); }); return response; } @@ -45,6 +46,16 @@ namespace Yavsc.Services return response; } + public async Task NotifyHairCutQueryAsync(GoogleAuthSettings googleSettings, + IEnumerable registrationIds, HairCutQueryEvent ev) + { + MessageWithPayloadResponse response = null; + await Task.Run(()=>{ + response = googleSettings.NotifyEvent(registrationIds, ev); + }); + return response; + } + public Task SendEmailAsync(SiteSettings siteSettings, SmtpSettings smtpSettings, string email, string subject, string message) { try diff --git a/Yavsc/Startup/Startup.Workflow.cs b/Yavsc/Startup/Startup.Workflow.cs index 1e369268..64a6b287 100644 --- a/Yavsc/Startup/Startup.Workflow.cs +++ b/Yavsc/Startup/Startup.Workflow.cs @@ -7,10 +7,16 @@ namespace Yavsc public partial class Startup { /// - /// Lists Available user profile classes. + /// Lists Available user profile classes, + /// populated at startup, using reflexion. /// public static Dictionary ProfileTypes = new Dictionary() ; - public static readonly string [] Forms = new string [] { "Profiles" }; + + /// + /// Lists available command forms. + /// This is hard coded. + /// + public static readonly string [] Forms = new string [] { "Profiles" , "HairCut" }; private void ConfigureWorkflow(IApplicationBuilder app, SiteSettings settings) { @@ -30,6 +36,5 @@ namespace Yavsc return AppDomain.CurrentDomain.GetAssemblies()[0]; } } - } diff --git a/Yavsc/ViewModels/Auth/Handlers/CommandEditHandler.cs b/Yavsc/ViewModels/Auth/Handlers/CommandEditHandler.cs index 738918b8..eeb9c891 100644 --- a/Yavsc/ViewModels/Auth/Handlers/CommandEditHandler.cs +++ b/Yavsc/ViewModels/Auth/Handlers/CommandEditHandler.cs @@ -4,9 +4,9 @@ using Microsoft.AspNet.Authorization; namespace Yavsc.ViewModels.Auth.Handlers { using Models.Workflow; - public class CommandEditHandler : AuthorizationHandler + public class CommandEditHandler : AuthorizationHandler { - protected override void Handle(AuthorizationContext context, EditRequirement requirement, BookQuery resource) + protected override void Handle(AuthorizationContext context, EditRequirement requirement, RdvQuery resource) { if (context.User.IsInRole("FrontOffice")) context.Succeed(requirement); diff --git a/Yavsc/ViewModels/Auth/Handlers/CommandViewHandler.cs b/Yavsc/ViewModels/Auth/Handlers/CommandViewHandler.cs index 7b46a8e6..5073013e 100644 --- a/Yavsc/ViewModels/Auth/Handlers/CommandViewHandler.cs +++ b/Yavsc/ViewModels/Auth/Handlers/CommandViewHandler.cs @@ -4,9 +4,9 @@ using Microsoft.AspNet.Authorization; namespace Yavsc.ViewModels.Auth.Handlers { using Models.Workflow; - public class CommandViewHandler : AuthorizationHandler + public class CommandViewHandler : AuthorizationHandler { - protected override void Handle(AuthorizationContext context, ViewRequirement requirement, BookQuery resource) + protected override void Handle(AuthorizationContext context, ViewRequirement requirement, RdvQuery resource) { if (context.User.IsInRole("FrontOffice")) context.Succeed(requirement); diff --git a/Yavsc/ViewModels/Haircut/HairCutView.cs b/Yavsc/ViewModels/Haircut/HairCutView.cs new file mode 100644 index 00000000..feb494b8 --- /dev/null +++ b/Yavsc/ViewModels/Haircut/HairCutView.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using Yavsc.Models.Haircut; +using Yavsc.Models.Workflow; + +namespace Yavsc.ViewModels.Haircut +{ + public class HairCutView + { + public List HairBrushers { get; set; } + + public HairPrestation Topic { get; set; } + } +} \ No newline at end of file diff --git a/Yavsc/Views/Command/CommandConfirmation.cshtml b/Yavsc/Views/Command/CommandConfirmation.cshtml index 2b3d91b3..a32e3e7c 100644 --- a/Yavsc/Views/Command/CommandConfirmation.cshtml +++ b/Yavsc/Views/Command/CommandConfirmation.cshtml @@ -1,4 +1,4 @@ -@model BookQuery +@model RdvQuery @using Yavsc.Models.Google.Messaging @{ ViewData["Title"] = SR["Command confirmation"]+" "+ViewBag.Activity.Name; diff --git a/Yavsc/Views/Command/Create.cshtml b/Yavsc/Views/Command/Create.cshtml index dc385204..20df652a 100644 --- a/Yavsc/Views/Command/Create.cshtml +++ b/Yavsc/Views/Command/Create.cshtml @@ -1,4 +1,4 @@ -@model BookQuery +@model RdvQuery @{ ViewData["Title"] = "Proposition de rendez-vous "+ @SR["to"]+" "+ Model.PerformerProfile.Performer.UserName +" ["+SR[ViewBag.Activity.Code]+"]"; } @@ -21,10 +21,16 @@ } } -@section scripts{ +@section scripts { }

@ViewData["Title"]

@@ -137,14 +143,7 @@ - + diff --git a/Yavsc/Views/Command/CreateHairCutQuery.cshtml b/Yavsc/Views/Command/CreateHairCutQuery.cshtml new file mode 100644 index 00000000..e69de29b diff --git a/Yavsc/Views/Command/Delete.cshtml b/Yavsc/Views/Command/Delete.cshtml index 5f0bf21c..6d899121 100644 --- a/Yavsc/Views/Command/Delete.cshtml +++ b/Yavsc/Views/Command/Delete.cshtml @@ -1,4 +1,4 @@ -@model BookQuery +@model RdvQuery @{ ViewData["Title"] = "Delete"; diff --git a/Yavsc/Views/Command/Details.cshtml b/Yavsc/Views/Command/Details.cshtml index 167d1363..277af60c 100644 --- a/Yavsc/Views/Command/Details.cshtml +++ b/Yavsc/Views/Command/Details.cshtml @@ -1,4 +1,4 @@ -@model BookQuery +@model RdvQuery @{ ViewData["Title"] = @SR["Details"]; diff --git a/Yavsc/Views/Command/Edit.cshtml b/Yavsc/Views/Command/Edit.cshtml index 6c2e58a5..bc50e98c 100644 --- a/Yavsc/Views/Command/Edit.cshtml +++ b/Yavsc/Views/Command/Edit.cshtml @@ -1,4 +1,4 @@ -@model BookQuery +@model RdvQuery @{ ViewData["Title"] = "Edit"; diff --git a/Yavsc/Views/Command/Index.cshtml b/Yavsc/Views/Command/Index.cshtml index f8deaefe..a14b8f99 100644 --- a/Yavsc/Views/Command/Index.cshtml +++ b/Yavsc/Views/Command/Index.cshtml @@ -1,4 +1,4 @@ -@model IEnumerable +@model IEnumerable @{ ViewData["Title"] = "Index"; diff --git a/Yavsc/Views/FrontOffice/HArts.chtml b/Yavsc/Views/FrontOffice/HArts.chtml deleted file mode 100644 index dadf8034..00000000 --- a/Yavsc/Views/FrontOffice/HArts.chtml +++ /dev/null @@ -1,16 +0,0 @@ -@model IEnumerable - -@{ - ViewData["Title"] = "Book - " + (ViewBag.Activity?.Name ?? SR["Any"]); -} -@ViewBag.Activity.Description - -@foreach (var profile in Model) { -
- @Html.DisplayFor(m=>m) -
- - - -
-} diff --git a/Yavsc/Views/FrontOffice/HairCut.cshtml b/Yavsc/Views/FrontOffice/HairCut.cshtml new file mode 100644 index 00000000..bed7bde9 --- /dev/null +++ b/Yavsc/Views/FrontOffice/HairCut.cshtml @@ -0,0 +1,73 @@ +@model HairCutView + +@{ + ViewData["Title"] = "Book - " + (ViewBag.Activity?.Name ?? SR["Any"]); +} +@ViewBag.Activity.Description + + + @Html.DisplayFor(m=>m) +
+ + +
+

HairPrestation

+
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+ + + + + diff --git a/Yavsc/Views/HairPrestations/Create.cshtml b/Yavsc/Views/HairPrestations/Create.cshtml new file mode 100644 index 00000000..237f286e --- /dev/null +++ b/Yavsc/Views/HairPrestations/Create.cshtml @@ -0,0 +1,77 @@ +@model Yavsc.Models.Haircut.HairPrestation + +@{ + ViewData["Title"] = "Create"; +} + +

Create

+ +
+
+

HairPrestation

+
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+
+ +
+
+
+
+ + + diff --git a/Yavsc/Views/HairPrestations/Delete.cshtml b/Yavsc/Views/HairPrestations/Delete.cshtml new file mode 100644 index 00000000..50034cd7 --- /dev/null +++ b/Yavsc/Views/HairPrestations/Delete.cshtml @@ -0,0 +1,64 @@ +@model Yavsc.Models.Haircut.HairPrestation + +@{ + ViewData["Title"] = "Delete"; +} + +

Delete

+ +

Are you sure you want to delete this?

+
+

HairPrestation

+
+
+
+ @Html.DisplayNameFor(model => model.Cares) +
+
+ @Html.DisplayFor(model => model.Cares) +
+
+ @Html.DisplayNameFor(model => model.Cut) +
+
+ @Html.DisplayFor(model => model.Cut) +
+
+ @Html.DisplayNameFor(model => model.Dressing) +
+
+ @Html.DisplayFor(model => model.Dressing) +
+
+ @Html.DisplayNameFor(model => model.Gender) +
+
+ @Html.DisplayFor(model => model.Gender) +
+
+ @Html.DisplayNameFor(model => model.Length) +
+
+ @Html.DisplayFor(model => model.Length) +
+
+ @Html.DisplayNameFor(model => model.Shampoo) +
+
+ @Html.DisplayFor(model => model.Shampoo) +
+
+ @Html.DisplayNameFor(model => model.Tech) +
+
+ @Html.DisplayFor(model => model.Tech) +
+
+ +
+
+ | + Back to List +
+
+
diff --git a/Yavsc/Views/HairPrestations/Details.cshtml b/Yavsc/Views/HairPrestations/Details.cshtml new file mode 100644 index 00000000..cfe09317 --- /dev/null +++ b/Yavsc/Views/HairPrestations/Details.cshtml @@ -0,0 +1,60 @@ +@model Yavsc.Models.Haircut.HairPrestation + +@{ + ViewData["Title"] = "Details"; +} + +

Details

+ +
+

HairPrestation

+
+
+
+ @Html.DisplayNameFor(model => model.Cares) +
+
+ @Html.DisplayFor(model => model.Cares) +
+
+ @Html.DisplayNameFor(model => model.Cut) +
+
+ @Html.DisplayFor(model => model.Cut) +
+
+ @Html.DisplayNameFor(model => model.Dressing) +
+
+ @Html.DisplayFor(model => model.Dressing) +
+
+ @Html.DisplayNameFor(model => model.Gender) +
+
+ @Html.DisplayFor(model => model.Gender) +
+
+ @Html.DisplayNameFor(model => model.Length) +
+
+ @Html.DisplayFor(model => model.Length) +
+
+ @Html.DisplayNameFor(model => model.Shampoo) +
+
+ @Html.DisplayFor(model => model.Shampoo) +
+
+ @Html.DisplayNameFor(model => model.Tech) +
+
+ @Html.DisplayFor(model => model.Tech) +
+
+
+

+ Edit | + Back to List +

diff --git a/Yavsc/Views/HairPrestations/Edit.cshtml b/Yavsc/Views/HairPrestations/Edit.cshtml new file mode 100644 index 00000000..4e356d32 --- /dev/null +++ b/Yavsc/Views/HairPrestations/Edit.cshtml @@ -0,0 +1,78 @@ +@model Yavsc.Models.Haircut.HairPrestation + +@{ + ViewData["Title"] = "Edit"; +} + +

Edit

+ +
+
+

HairPrestation

+
+
+ +
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+
+ +
+
+
+
+ + + diff --git a/Yavsc/Views/HairPrestations/Index.cshtml b/Yavsc/Views/HairPrestations/Index.cshtml new file mode 100644 index 00000000..30903e7f --- /dev/null +++ b/Yavsc/Views/HairPrestations/Index.cshtml @@ -0,0 +1,68 @@ +@model IEnumerable + +@{ + ViewData["Title"] = "Index"; +} + +

Index

+ +

+ Create New +

+ + + + + + + + + + + + +@foreach (var item in Model) { + + + + + + + + + + +} +
+ @Html.DisplayNameFor(model => model.Cares) + + @Html.DisplayNameFor(model => model.Cut) + + @Html.DisplayNameFor(model => model.Dressing) + + @Html.DisplayNameFor(model => model.Gender) + + @Html.DisplayNameFor(model => model.Length) + + @Html.DisplayNameFor(model => model.Shampoo) + + @Html.DisplayNameFor(model => model.Tech) +
+ @Html.DisplayFor(modelItem => item.Cares) + + @Html.DisplayFor(modelItem => item.Cut) + + @Html.DisplayFor(modelItem => item.Dressing) + + @Html.DisplayFor(modelItem => item.Gender) + + @Html.DisplayFor(modelItem => item.Length) + + @Html.DisplayFor(modelItem => item.Shampoo) + + @Html.DisplayFor(modelItem => item.Tech) + + Edit | + Details | + Delete +
diff --git a/Yavsc/Views/Home/About.cshtml b/Yavsc/Views/Home/About.cshtml index ca57f667..055308bf 100755 --- a/Yavsc/Views/Home/About.cshtml +++ b/Yavsc/Views/Home/About.cshtml @@ -2,8 +2,7 @@ ViewData["Title"] = @SR["About"]+" "+@SiteSettings.Value.Title; }

@ViewData["Title"]

-@SiteSettings.Value.Slogan - + @@ -90,3 +89,33 @@ et programme la suppression complète de ces dites informations dans les quinze L'opération est annulable, jusqu'à deux semaines après sa programmation. + + + + +C'est mon site pérso. + +-- +Paul, + publiant lua.p schneider.fr + + + + + + Yet Another Very Small Company ... + + + + + + Yet Another Very Small Company : La pré-production + + + + + + + Site du développeur + + diff --git a/Yavsc/Views/Home/Index.cshtml b/Yavsc/Views/Home/Index.cshtml index 47f217ce..1a0cb253 100755 --- a/Yavsc/Views/Home/Index.cshtml +++ b/Yavsc/Views/Home/Index.cshtml @@ -1,3 +1,5 @@ +@model IEnumerable + @{ ViewData["Title"] = "Home Page"; } @@ -41,9 +43,9 @@ } - @foreach (var form in act.Forms) { - - @form.Title + @foreach (var frm in act.Forms) { + + @frm.Title }
diff --git a/Yavsc/Views/Shared/DisplayTemplates/BookQuery.cshtml b/Yavsc/Views/Shared/DisplayTemplates/BookQuery.cshtml index b04f4496..ce9ede24 100644 --- a/Yavsc/Views/Shared/DisplayTemplates/BookQuery.cshtml +++ b/Yavsc/Views/Shared/DisplayTemplates/BookQuery.cshtml @@ -1,4 +1,4 @@ -@model BookQuery +@model RdvQuery
diff --git a/Yavsc/Views/_ViewImports.cshtml b/Yavsc/Views/_ViewImports.cshtml index 35cd7f03..e7b61490 100755 --- a/Yavsc/Views/_ViewImports.cshtml +++ b/Yavsc/Views/_ViewImports.cshtml @@ -28,7 +28,8 @@ @using Yavsc.ViewModels.Auth; @using Yavsc.ViewModels.Administration; @using Yavsc.ViewModels.Relationship; - +@using Yavsc.ViewModels.Haircut; + @inject IViewLocalizer LocString @addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" @addTagHelper "*, Yavsc" From 208e339bf8053bea22007b673450f95d360aec30 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Tue, 28 Feb 2017 14:01:24 +0100 Subject: [PATCH 04/19] brusher profile & commands --- Yavsc/Controllers/BrusherProfileController.cs | 123 ++ Yavsc/Controllers/DoController.cs | 2 +- Yavsc/Controllers/FrontOfficeController.cs | 18 +- .../Controllers/HairPrestationsController.cs | 2 - Yavsc/Extensions/EnumExtensions.cs | 78 + ...20170227151759_hairPrestations.Designer.cs | 1 - .../20170227151759_hairPrestations.cs | 1 - .../20170228115359_brusherProfile.Designer.cs | 1396 +++++++++++++++++ .../20170228115359_brusherProfile.cs | 602 +++++++ .../ApplicationDbContextModelSnapshot.cs | 67 + Yavsc/Models/ApplicationDbContext.cs | 2 + Yavsc/Models/Haircut/BrusherProfile.cs | 118 ++ Yavsc/Models/Haircut/HairCutGenders.cs | 12 +- Yavsc/Models/Haircut/HairLength.cs | 9 +- Yavsc/Models/Haircut/HairPrestation.cs | 2 +- Yavsc/Models/Haircut/HairTechnos.cs | 4 + Yavsc/Views/BrusherProfile/Delete.cshtml | 202 +++ Yavsc/Views/BrusherProfile/Edit.cshtml | 241 +++ Yavsc/Views/BrusherProfile/Index.cshtml | 205 +++ Yavsc/Views/Do/Details.cshtml | 2 +- Yavsc/Views/FrontOffice/HairCut.cshtml | 57 +- Yavsc/Views/FrontOffice/Profiles.cshtml | 3 +- Yavsc/Views/Shared/HairTaint.cshtml | 2 + Yavsc/Views/Shared/HourFromMinutes.cshtml | 2 + Yavsc/Views/_ViewImports.cshtml | 1 + 25 files changed, 3114 insertions(+), 38 deletions(-) create mode 100644 Yavsc/Controllers/BrusherProfileController.cs create mode 100644 Yavsc/Extensions/EnumExtensions.cs create mode 100644 Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs create mode 100644 Yavsc/Migrations/20170228115359_brusherProfile.cs create mode 100644 Yavsc/Models/Haircut/BrusherProfile.cs create mode 100644 Yavsc/Views/BrusherProfile/Delete.cshtml create mode 100644 Yavsc/Views/BrusherProfile/Edit.cshtml create mode 100644 Yavsc/Views/BrusherProfile/Index.cshtml create mode 100644 Yavsc/Views/Shared/HairTaint.cshtml create mode 100644 Yavsc/Views/Shared/HourFromMinutes.cshtml diff --git a/Yavsc/Controllers/BrusherProfileController.cs b/Yavsc/Controllers/BrusherProfileController.cs new file mode 100644 index 00000000..35644de3 --- /dev/null +++ b/Yavsc/Controllers/BrusherProfileController.cs @@ -0,0 +1,123 @@ +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNet.Mvc; +using System.Security.Claims; +using Microsoft.Data.Entity; +using Yavsc.Models; +using Yavsc.Models.Haircut; +using Microsoft.AspNet.Authorization; +using System; + +namespace Yavsc.Controllers +{ + [Authorize(Roles="Performer")] + public class BrusherProfileController : Controller + { + private ApplicationDbContext _context; + + public BrusherProfileController(ApplicationDbContext context) + { + _context = context; + } + + // GET: BrusherProfile + public async Task Index() + { + var existing = await _context.BrusherProfile.SingleOrDefaultAsync(p=>p.UserId == User.GetUserId()); + return View(existing); + } + + // GET: BrusherProfile/Details/5 + public async Task Details(string id) + { + if (id == null) + { + id = User.GetUserId(); + } + + BrusherProfile brusherProfile = await _context.BrusherProfile.SingleAsync(m => m.UserId == id); + if (brusherProfile == null) + { + return HttpNotFound(); + } + + return View(brusherProfile); + } + + // GET: BrusherProfile/Create + public IActionResult Create() + { + return View(); + } + + // GET: BrusherProfile/Edit/5 + public async Task Edit(string id) + { + if (id == null) + { + id = User.GetUserId(); + } + + BrusherProfile brusherProfile = await _context.BrusherProfile.SingleOrDefaultAsync(m => m.UserId == id); + if (brusherProfile == null) + { + brusherProfile = new BrusherProfile { }; + } + return View(brusherProfile); + } + + // POST: BrusherProfile/Edit/5 + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Edit(BrusherProfile brusherProfile) + { + if (string.IsNullOrEmpty(brusherProfile.UserId)) + { + // a creation + brusherProfile.UserId = User.GetUserId(); + if (ModelState.IsValid) + { + _context.BrusherProfile.Add(brusherProfile); + await _context.SaveChangesAsync(); + return RedirectToAction("Index"); + } + } + else if (ModelState.IsValid) + { + _context.Update(brusherProfile); + await _context.SaveChangesAsync(); + return RedirectToAction("Index"); + } + return View(brusherProfile); + } + + // GET: BrusherProfile/Delete/5 + [ActionName("Delete")] + public async Task Delete(string id) + { + if (id == null) + { + return HttpNotFound(); + } + + BrusherProfile brusherProfile = await _context.BrusherProfile.SingleAsync(m => m.UserId == id); + if (brusherProfile == null) + { + return HttpNotFound(); + } + + return View(brusherProfile); + } + + // POST: BrusherProfile/Delete/5 + [HttpPost, ActionName("Delete")] + [ValidateAntiForgeryToken] + public async Task DeleteConfirmed(string id) + { + BrusherProfile brusherProfile = await _context.BrusherProfile.SingleAsync(m => m.UserId == id); + _context.BrusherProfile.Remove(brusherProfile); + await _context.SaveChangesAsync(); + return RedirectToAction("Index"); + } + } +} diff --git a/Yavsc/Controllers/DoController.cs b/Yavsc/Controllers/DoController.cs index bd59f1e8..4a81f722 100644 --- a/Yavsc/Controllers/DoController.cs +++ b/Yavsc/Controllers/DoController.cs @@ -48,7 +48,7 @@ namespace Yavsc.Controllers } ViewBag.HasConfigurableSettings = (userActivity.Does.SettingsClassName != null); if (ViewBag.HasConfigurableSettings) - ViewBag.SettingsClassControllerName = Startup.ProfileTypes[userActivity.Does.SettingsClassName].Name; + ViewBag.SettingsControllerName = Startup.ProfileTypes[userActivity.Does.SettingsClassName].Name; return View(userActivity); } diff --git a/Yavsc/Controllers/FrontOfficeController.cs b/Yavsc/Controllers/FrontOfficeController.cs index c5cee49b..bc141903 100644 --- a/Yavsc/Controllers/FrontOfficeController.cs +++ b/Yavsc/Controllers/FrontOfficeController.cs @@ -11,9 +11,11 @@ namespace Yavsc.Controllers { using Helpers; using Microsoft.AspNet.Http; + using Microsoft.Extensions.Localization; using Models; using Newtonsoft.Json; using ViewModels.FrontOffice; + using Yavsc.Extensions; using Yavsc.Models.Haircut; using Yavsc.ViewModels.Haircut; @@ -23,13 +25,17 @@ namespace Yavsc.Controllers UserManager _userManager; ILogger _logger; + + IStringLocalizer _SR; public FrontOfficeController(ApplicationDbContext context, UserManager userManager, - ILoggerFactory loggerFactory) + ILoggerFactory loggerFactory, + IStringLocalizer SR) { _context = context; _userManager = userManager; _logger = loggerFactory.CreateLogger(); + _SR = SR; } public ActionResult Index() { @@ -70,11 +76,13 @@ namespace Yavsc.Controllers if (prestaJson!=null) { pPrestation = JsonConvert.DeserializeObject(prestaJson); } - else pPrestation = new HairPrestation { - - }; - + else pPrestation = new HairPrestation {}; + ViewBag.HairTaints = _context.HairTaint.Include(t=>t.Color); + ViewBag.HairTechnos = EnumExtensions.GetSelectList(typeof(HairTechnos),_SR); + ViewBag.HairLength = EnumExtensions.GetSelectList(typeof(HairLength),_SR); ViewBag.Activity = _context.Activities.First(a => a.Code == id); + ViewBag.Gender = EnumExtensions.GetSelectList(typeof(HairCutGenders),_SR); + ViewBag.HairDressings = EnumExtensions.GetSelectList(typeof(HairDressings),_SR); var result = new HairCutView { HairBrushers = _context.ListPerformers(id), Topic = pPrestation diff --git a/Yavsc/Controllers/HairPrestationsController.cs b/Yavsc/Controllers/HairPrestationsController.cs index 93e081bc..116ba040 100644 --- a/Yavsc/Controllers/HairPrestationsController.cs +++ b/Yavsc/Controllers/HairPrestationsController.cs @@ -1,7 +1,5 @@ -using System.Linq; using System.Threading.Tasks; using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Rendering; using Microsoft.Data.Entity; using Yavsc.Models; using Yavsc.Models.Haircut; diff --git a/Yavsc/Extensions/EnumExtensions.cs b/Yavsc/Extensions/EnumExtensions.cs new file mode 100644 index 00000000..c34be6ff --- /dev/null +++ b/Yavsc/Extensions/EnumExtensions.cs @@ -0,0 +1,78 @@ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Reflection; +using Microsoft.AspNet.Mvc.Rendering; +using Microsoft.Extensions.Localization; + +namespace Yavsc.Extensions +{ + public static class EnumExtensions + { + public static List GetSelectList (Type type, IStringLocalizer SR, Enum valueSelected) + { + var typeInfo = type.GetTypeInfo(); + var values = Enum.GetValues(type).Cast(); + var items = new List(); + + foreach (var value in values) + { + items.Add(new SelectListItem { + Text = SR[GetDescription(value, typeInfo)], + Value = value.ToString(), + Selected = value == valueSelected + }); + } + return items; + } + public static List GetSelectList (Type type, IStringLocalizer SR) + { + var typeInfo = type.GetTypeInfo(); + var values = Enum.GetValues(type).Cast(); + var items = new List(); + + foreach (var value in values) + { + items.Add(new SelectListItem { + Text = SR[GetDescription(value, typeInfo)], + Value = value.ToString() + }); + } + return items; + } + public static string GetDescription(this Enum value, TypeInfo typeInfo ) + { + var declaredMember = typeInfo.DeclaredMembers.FirstOrDefault(i => i.Name == value.ToString()); + var attribute = declaredMember?.GetCustomAttribute(); + return attribute == null ? value.ToString() : attribute.Description ?? attribute.Name; + } + public static string GetDescription(this Enum value) + { + var type = value.GetType(); + var typeInfo = type.GetTypeInfo(); + return GetDescription(value, typeInfo); + } + + public static IEnumerable GetDescriptions(Type type) + { + var values = Enum.GetValues(type).Cast(); + var descriptions = new List(); + + foreach (var value in values) + { + descriptions.Add(value.GetDescription()); + } + + return descriptions; + } + + public static Enum GetEnumFromDescription(string description, Type enumType) + { + var enumValues = Enum.GetValues(enumType).Cast(); + var descriptionToEnum = enumValues.ToDictionary(k => k.GetDescription(), v => v); + return descriptionToEnum[description]; + } + } +} diff --git a/Yavsc/Migrations/20170227151759_hairPrestations.Designer.cs b/Yavsc/Migrations/20170227151759_hairPrestations.Designer.cs index b0287338..49167cc5 100644 --- a/Yavsc/Migrations/20170227151759_hairPrestations.Designer.cs +++ b/Yavsc/Migrations/20170227151759_hairPrestations.Designer.cs @@ -1,7 +1,6 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; -using Microsoft.Data.Entity.Metadata; using Microsoft.Data.Entity.Migrations; using Yavsc.Models; diff --git a/Yavsc/Migrations/20170227151759_hairPrestations.cs b/Yavsc/Migrations/20170227151759_hairPrestations.cs index 3ba54b9e..67928122 100644 --- a/Yavsc/Migrations/20170227151759_hairPrestations.cs +++ b/Yavsc/Migrations/20170227151759_hairPrestations.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using Microsoft.Data.Entity.Migrations; namespace Yavsc.Migrations diff --git a/Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs b/Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs new file mode 100644 index 00000000..632c23da --- /dev/null +++ b/Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs @@ -0,0 +1,1396 @@ +using System; +using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; +using Yavsc.Models; + +namespace Yavsc.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20170228115359_brusherProfile")] + partial class brusherProfile + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "7.0.0-rc1-16348"); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b => + { + b.Property("Id"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .HasAnnotation("Relational:Name", "RoleNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasAnnotation("Relational:TableName", "AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasAnnotation("Relational:TableName", "AspNetUserRoles"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.Property("CircleId"); + + b.Property("BlogPostId"); + + b.HasKey("CircleId", "BlogPostId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.Property("UserId"); + + b.Property("ContactCredits"); + + b.Property("Credits"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("Avatar") + .IsRequired() + .HasAnnotation("MaxLength", 512) + .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("BankInfoId"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("DedicatedGoogleCalendar"); + + b.Property("DiskQuota") + .HasAnnotation("Relational:DefaultValue", "524288000") + .HasAnnotation("Relational:DefaultValueType", "System.Int64"); + + b.Property("DiskUsage"); + + b.Property("Email") + .HasAnnotation("MaxLength", 256); + + b.Property("EmailConfirmed"); + + b.Property("FullName") + .HasAnnotation("MaxLength", 512); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedUserName") + .HasAnnotation("MaxLength", 256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("PostalAddressId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasAnnotation("Relational:Name", "EmailIndex"); + + b.HasIndex("NormalizedUserName") + .HasAnnotation("Relational:Name", "UserNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetUsers"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.Client", b => + { + b.Property("Id"); + + b.Property("Active"); + + b.Property("DisplayName"); + + b.Property("LogoutRedirectUri") + .HasAnnotation("MaxLength", 100); + + b.Property("RedirectUri"); + + b.Property("RefreshTokenLifeTime"); + + b.Property("Secret"); + + b.Property("Type"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b => + { + b.Property("Id"); + + b.Property("ClientId") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.Property("ExpiresUtc"); + + b.Property("IssuedUtc"); + + b.Property("ProtectedTicket") + .IsRequired(); + + b.Property("Subject") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BalanceId") + .IsRequired(); + + b.Property("ExecDate"); + + b.Property("Impact"); + + b.Property("Reason") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccountNumber") + .HasAnnotation("MaxLength", 15); + + b.Property("BIC") + .HasAnnotation("MaxLength", 15); + + b.Property("BankCode") + .HasAnnotation("MaxLength", 5); + + b.Property("BankedKey"); + + b.Property("IBAN") + .HasAnnotation("MaxLength", 33); + + b.Property("WicketCode") + .HasAnnotation("MaxLength", 5); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Count"); + + b.Property("Description") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("EstimateId"); + + b.Property("EstimateTemplateId"); + + b.Property("UnitaryCost"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AttachedFilesString"); + + b.Property("AttachedGraphicsString"); + + b.Property("ClientId") + .IsRequired(); + + b.Property("ClientValidationDate"); + + b.Property("CommandId"); + + b.Property("CommandType"); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("ProviderValidationDate"); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b => + { + b.Property("SIREN"); + + b.HasKey("SIREN"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId"); + + b.Property("Content"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("Title"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.Property("ConnectionId"); + + b.Property("ApplicationUserId"); + + b.Property("Connected"); + + b.Property("UserAgent"); + + b.HasKey("ConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Drawing.Color", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Blue"); + + b.Property("Green"); + + b.Property("Name"); + + b.Property("Red"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Forms.Form", b => + { + b.Property("Id"); + + b.Property("Summary"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.Property("UserId"); + + b.Property("CarePrice"); + + b.Property("EndOfTheDay"); + + b.Property("HalfBalayagePrice"); + + b.Property("HalfBrushingPrice"); + + b.Property("HalfColorPrice"); + + b.Property("HalfDefrisPrice"); + + b.Property("HalfMechPrice"); + + b.Property("HalfMultiColorPrice"); + + b.Property("HalfPermanentPrice"); + + b.Property("KidCutPrice"); + + b.Property("LongBalayagePrice"); + + b.Property("LongBrushingPrice"); + + b.Property("LongColorPrice"); + + b.Property("LongDefrisPrice"); + + b.Property("LongMechPrice"); + + b.Property("LongMultiColorPrice"); + + b.Property("LongPermanentPrice"); + + b.Property("ManCutPrice"); + + b.Property("ShampooPrice"); + + b.Property("ShortBalayagePrice"); + + b.Property("ShortBrushingPrice"); + + b.Property("ShortColorPrice"); + + b.Property("ShortDefrisPrice"); + + b.Property("ShortMechPrice"); + + b.Property("ShortMultiColorPrice"); + + b.Property("ShortPermanentPrice"); + + b.Property("StartOfTheDay"); + + b.Property("WomenHalfCutPrice"); + + b.Property("WomenLongCutPrice"); + + b.Property("WomenShortCutPrice"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("HairMultiCutQueryId"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Brand"); + + b.Property("ColorId"); + + b.Property("HairPrestationId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.Property("DeviceId"); + + b.Property("DeclarationDate") + .ValueGeneratedOnAdd() + .HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP"); + + b.Property("DeviceOwnerId"); + + b.Property("GCMRegistrationId") + .IsRequired(); + + b.Property("Model"); + + b.Property("Platform"); + + b.Property("Version"); + + b.HasKey("DeviceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Depth"); + + b.Property("Description"); + + b.Property("Height"); + + b.Property("Name"); + + b.Property("Price"); + + b.Property("Public"); + + b.Property("Weight"); + + b.Property("Width"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ContextId"); + + b.Property("Description"); + + b.Property("Name"); + + b.Property("Public"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.Property("UserId"); + + b.Property("Avatar"); + + b.Property("BillingAddressId"); + + b.Property("EMail"); + + b.Property("Phone"); + + b.Property("UserName"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.Property("UserId"); + + b.Property("NotificationId"); + + b.HasKey("UserId", "NotificationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("body") + .IsRequired(); + + b.Property("click_action") + .IsRequired(); + + b.Property("color"); + + b.Property("icon"); + + b.Property("sound"); + + b.Property("tag"); + + b.Property("title") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Instrument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.Property("OwnerProfileId"); + + b.Property("DjSettingsUserId"); + + b.Property("GeneralSettingsUserId"); + + b.Property("Rate"); + + b.Property("TendencyId"); + + b.HasKey("OwnerProfileId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalTendency", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.DjSettings", b => + { + b.Property("UserId"); + + b.Property("SoundCloudId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.GeneralSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.Property("InstrumentId"); + + b.Property("UserId"); + + b.HasKey("InstrumentId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b => + { + b.Property("UserId"); + + b.Property("AccessToken"); + + b.Property("Expiration"); + + b.Property("ExpiresIn"); + + b.Property("RefreshToken"); + + b.Property("TokenType"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ApplicationUserId"); + + b.Property("Name"); + + b.Property("OwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.Property("MemberId"); + + b.Property("CircleId"); + + b.HasKey("MemberId", "CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.Property("OwnerId"); + + b.Property("UserId"); + + b.Property("ApplicationUserId"); + + b.HasKey("OwnerId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Address") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("Latitude"); + + b.Property("Longitude"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.LocationType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.Property("PostId"); + + b.Property("TagId"); + + b.HasKey("PostId", "TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("Rate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.Property("Code") + .HasAnnotation("MaxLength", 512); + + b.Property("ActorDenomination"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("Hidden"); + + b.Property("ModeratorGroupName"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("ParentCode") + .HasAnnotation("MaxLength", 512); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("SettingsClassName"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Action"); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormationSettingsUserId"); + + b.Property("PerformerId"); + + b.Property("WorkingForId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.Property("PerformerId"); + + b.Property("AcceptNotifications"); + + b.Property("AcceptPublicContact"); + + b.Property("Active"); + + b.Property("MaxDailyCost"); + + b.Property("MinDailyCost"); + + b.Property("OrganizationAddressId"); + + b.Property("Rate"); + + b.Property("SIREN") + .IsRequired() + .HasAnnotation("MaxLength", 14); + + b.Property("UseGeoLocalizationToReduceDistanceWithClients"); + + b.Property("WebSite"); + + b.HasKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Profiles.FormationSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("LocationTypeId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("BlogPostId"); + + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithOne() + .HasForeignKey("Yavsc.Models.AccountBalance", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.HasOne("Yavsc.Models.Bank.BankIdentity") + .WithMany() + .HasForeignKey("BankInfoId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("PostalAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.HasOne("Yavsc.Models.AccountBalance") + .WithMany() + .HasForeignKey("BalanceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.HasOne("Yavsc.Models.Billing.Estimate") + .WithMany() + .HasForeignKey("EstimateId"); + + b.HasOne("Yavsc.Models.Billing.EstimateTemplate") + .WithMany() + .HasForeignKey("EstimateTemplateId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Workflow.RdvQuery") + .WithMany() + .HasForeignKey("CommandId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("HairMultiCutQueryId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.HasOne("Yavsc.Models.Drawing.Color") + .WithMany() + .HasForeignKey("ColorId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("HairPrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("DeviceOwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ContextId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("BillingAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.HasOne("Yavsc.Models.Messaging.Notification") + .WithMany() + .HasForeignKey("NotificationId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.HasOne("Yavsc.Models.Musical.Profiles.DjSettings") + .WithMany() + .HasForeignKey("DjSettingsUserId"); + + b.HasOne("Yavsc.Models.Musical.Profiles.GeneralSettings") + .WithMany() + .HasForeignKey("GeneralSettingsUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.HasOne("Yavsc.Models.Musical.Instrument") + .WithMany() + .HasForeignKey("InstrumentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("MemberId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("PostId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ParentCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.HasOne("Yavsc.Models.Workflow.Profiles.FormationSettings") + .WithMany() + .HasForeignKey("FormationSettingsUserId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("WorkingForId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("OrganizationAddressId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("DoesCode"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + } + } +} diff --git a/Yavsc/Migrations/20170228115359_brusherProfile.cs b/Yavsc/Migrations/20170228115359_brusherProfile.cs new file mode 100644 index 00000000..8c033090 --- /dev/null +++ b/Yavsc/Migrations/20170228115359_brusherProfile.cs @@ -0,0 +1,602 @@ +using System; +using System.Collections.Generic; +using Microsoft.Data.Entity.Migrations; + +namespace Yavsc.Migrations +{ + public partial class brusherProfile : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.CreateTable( + name: "BrusherProfile", + columns: table => new + { + UserId = table.Column(nullable: false), + CarePrice = table.Column(nullable: false), + EndOfTheDay = table.Column(nullable: false), + HalfBalayagePrice = table.Column(nullable: false), + HalfBrushingPrice = table.Column(nullable: false), + HalfColorPrice = table.Column(nullable: false), + HalfDefrisPrice = table.Column(nullable: false), + HalfMechPrice = table.Column(nullable: false), + HalfMultiColorPrice = table.Column(nullable: false), + HalfPermanentPrice = table.Column(nullable: false), + KidCutPrice = table.Column(nullable: false), + LongBalayagePrice = table.Column(nullable: false), + LongBrushingPrice = table.Column(nullable: false), + LongColorPrice = table.Column(nullable: false), + LongDefrisPrice = table.Column(nullable: false), + LongMechPrice = table.Column(nullable: false), + LongMultiColorPrice = table.Column(nullable: false), + LongPermanentPrice = table.Column(nullable: false), + ManCutPrice = table.Column(nullable: false), + ShampooPrice = table.Column(nullable: false), + ShortBalayagePrice = table.Column(nullable: false), + ShortBrushingPrice = table.Column(nullable: false), + ShortColorPrice = table.Column(nullable: false), + ShortDefrisPrice = table.Column(nullable: false), + ShortMechPrice = table.Column(nullable: false), + ShortMultiColorPrice = table.Column(nullable: false), + ShortPermanentPrice = table.Column(nullable: false), + StartOfTheDay = table.Column(nullable: false), + WomenHalfCutPrice = table.Column(nullable: false), + WomenLongCutPrice = table.Column(nullable: false), + WomenShortCutPrice = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_BrusherProfile", x => x.UserId); + }); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropTable("BrusherProfile"); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs index 3421caed..a6fcd8d4 100644 --- a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs @@ -441,6 +441,73 @@ namespace Yavsc.Migrations b.HasKey("Id"); }); + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.Property("UserId"); + + b.Property("CarePrice"); + + b.Property("EndOfTheDay"); + + b.Property("HalfBalayagePrice"); + + b.Property("HalfBrushingPrice"); + + b.Property("HalfColorPrice"); + + b.Property("HalfDefrisPrice"); + + b.Property("HalfMechPrice"); + + b.Property("HalfMultiColorPrice"); + + b.Property("HalfPermanentPrice"); + + b.Property("KidCutPrice"); + + b.Property("LongBalayagePrice"); + + b.Property("LongBrushingPrice"); + + b.Property("LongColorPrice"); + + b.Property("LongDefrisPrice"); + + b.Property("LongMechPrice"); + + b.Property("LongMultiColorPrice"); + + b.Property("LongPermanentPrice"); + + b.Property("ManCutPrice"); + + b.Property("ShampooPrice"); + + b.Property("ShortBalayagePrice"); + + b.Property("ShortBrushingPrice"); + + b.Property("ShortColorPrice"); + + b.Property("ShortDefrisPrice"); + + b.Property("ShortMechPrice"); + + b.Property("ShortMultiColorPrice"); + + b.Property("ShortPermanentPrice"); + + b.Property("StartOfTheDay"); + + b.Property("WomenHalfCutPrice"); + + b.Property("WomenLongCutPrice"); + + b.Property("WomenShortCutPrice"); + + b.HasKey("UserId"); + }); + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => { b.Property("Id") diff --git a/Yavsc/Models/ApplicationDbContext.cs b/Yavsc/Models/ApplicationDbContext.cs index 867f313b..6e533671 100644 --- a/Yavsc/Models/ApplicationDbContext.cs +++ b/Yavsc/Models/ApplicationDbContext.cs @@ -273,6 +273,8 @@ namespace Yavsc.Models public DbSet DimissClicked { get; set; } public DbSet HairPrestation { get; set; } + + public DbSet BrusherProfile { get; set; } } diff --git a/Yavsc/Models/Haircut/BrusherProfile.cs b/Yavsc/Models/Haircut/BrusherProfile.cs new file mode 100644 index 00000000..7871bc49 --- /dev/null +++ b/Yavsc/Models/Haircut/BrusherProfile.cs @@ -0,0 +1,118 @@ +using System.ComponentModel.DataAnnotations; +using YavscLib; + +namespace Yavsc.Models.Haircut +{ + public class BrusherProfile : ISpecializationSettings + { + [Key] + public string UserId + { + get; set; + } + + /// + /// StartOfTheDay In munutes + /// + /// + [Display(Name="Début de la journée")] + public int StartOfTheDay { get; set;} + /// + /// End Of The Day, In munutes + /// + /// + [Display(Name="Fin de la journée")] + public int EndOfTheDay { get; set;} + + [Display(Name="Coût d'une coupe femme cheveux longs")] + + public decimal WomenLongCutPrice { get; set; } + + [Display(Name="Coût d'une coupe femme cheveux mi-longs")] + public decimal WomenHalfCutPrice { get; set; } + + [Display(Name="Coût d'une coupe femme cheveux courts")] + public decimal WomenShortCutPrice { get; set; } + + [Display(Name="Coût d'une coupe homme")] + public decimal ManCutPrice { get; set; } + + [Display(Name="Coût d'une coupe enfant")] + public decimal KidCutPrice { get; set; } + + [Display(Name="Coût d'un brushing cheveux longs")] + public decimal LongBrushingPrice { get; set; } + + [Display(Name="Coût d'un brushing cheveux mi-longs")] + public decimal HalfBrushingPrice { get; set; } + + [Display(Name="Coût d'un brushing cheveux courts")] + public decimal ShortBrushingPrice { get; set; } + + [Display(Name="Coût du shamoing")] + + public decimal ShampooPrice { get; set; } + + [Display(Name="Coût du soin")] + + public decimal CarePrice { get; set; } + + [Display(Name="Coût d'une couleur cheveux longs")] + public decimal LongColorPrice { get; set; } + + [Display(Name="Coût d'une couleur cheveux mi-longs")] + public decimal HalfColorPrice { get; set; } + + [Display(Name="Coût d'une couleur cheveux courts")] + public decimal ShortColorPrice { get; set; } + + [Display(Name="Coût d'une couleur multiple cheveux longs")] + public decimal LongMultiColorPrice { get; set; } + + [Display(Name="Coût d'une couleur multiple cheveux mi-longs")] + public decimal HalfMultiColorPrice { get; set; } + + [Display(Name="Coût d'une couleur multiple cheveux courts")] + public decimal ShortMultiColorPrice { get; set; } + + [Display(Name="Coût d'une permanente cheveux longs")] + public decimal LongPermanentPrice { get; set; } + + [Display(Name="Coût d'une permanente cheveux mi-longs")] + public decimal HalfPermanentPrice { get; set; } + + [Display(Name="Coût d'une permanente cheveux courts")] + public decimal ShortPermanentPrice { get; set; } + + [Display(Name="Coût d'un défrisage cheveux longs")] + public decimal LongDefrisPrice { get; set; } + + [Display(Name="Coût d'un défrisage cheveux mi-longs")] + public decimal HalfDefrisPrice { get; set; } + + [Display(Name="Coût d'un défrisage cheveux courts")] + public decimal ShortDefrisPrice { get; set; } + + [Display(Name="Coût des mêches sur cheveux longs")] + + public decimal LongMechPrice { get; set; } + + [Display(Name="Coût des mêches sur cheveux mi-longs")] + public decimal HalfMechPrice { get; set; } + + [Display(Name="Coût des mêches sur cheveux courts")] + public decimal ShortMechPrice { get; set; } + + [Display(Name="Coût du balayage cheveux longs")] + + public decimal LongBalayagePrice { get; set; } + + [Display(Name="Coût du balayage cheveux mi-longs")] + public decimal HalfBalayagePrice { get; set; } + + [Display(Name="Coût du balayage cheveux courts")] + public decimal ShortBalayagePrice { get; set; } + + + } +} \ No newline at end of file diff --git a/Yavsc/Models/Haircut/HairCutGenders.cs b/Yavsc/Models/Haircut/HairCutGenders.cs index 9e6fb2a6..ef5120dc 100644 --- a/Yavsc/Models/Haircut/HairCutGenders.cs +++ b/Yavsc/Models/Haircut/HairCutGenders.cs @@ -1,9 +1,17 @@ +using System.ComponentModel.DataAnnotations; + namespace Yavsc.Models.Haircut { public enum HairCutGenders : int { - Kid = 1, + [Display(Name="Femme")] + Women, + + [Display(Name="Homme")] Man, - Women + + [Display(Name="Enfant")] + Kid + } } \ No newline at end of file diff --git a/Yavsc/Models/Haircut/HairLength.cs b/Yavsc/Models/Haircut/HairLength.cs index c187540f..063d4171 100644 --- a/Yavsc/Models/Haircut/HairLength.cs +++ b/Yavsc/Models/Haircut/HairLength.cs @@ -1,9 +1,16 @@ +using System.ComponentModel.DataAnnotations; + namespace Yavsc.Models.Haircut { public enum HairLength : int { - Short = 1, + [Display(Name="Mi-longs")] HalfLong, + + [Display(Name="Courts")] + Short = 1, + + [Display(Name="Longs")] Long } } \ No newline at end of file diff --git a/Yavsc/Models/Haircut/HairPrestation.cs b/Yavsc/Models/Haircut/HairPrestation.cs index 2ebd4d30..b7ca0abb 100644 --- a/Yavsc/Models/Haircut/HairPrestation.cs +++ b/Yavsc/Models/Haircut/HairPrestation.cs @@ -23,7 +23,7 @@ namespace Yavsc.Models.Haircut public HairDressings Dressing { get; set; } - [Display(Name="Technique")] + [Display(Name="Technique")] public HairTechnos Tech { get; set; } [Display(Name="Shampoing")] diff --git a/Yavsc/Models/Haircut/HairTechnos.cs b/Yavsc/Models/Haircut/HairTechnos.cs index d3333216..b47d6a38 100644 --- a/Yavsc/Models/Haircut/HairTechnos.cs +++ b/Yavsc/Models/Haircut/HairTechnos.cs @@ -5,6 +5,10 @@ namespace Yavsc.Models.Haircut public enum HairTechnos { + [Display(Name="Aucune technique spécifique")] + None, + + [Display(Name="Couleur")] Color, [Display(Name="Permantante")] diff --git a/Yavsc/Views/BrusherProfile/Delete.cshtml b/Yavsc/Views/BrusherProfile/Delete.cshtml new file mode 100644 index 00000000..11227d24 --- /dev/null +++ b/Yavsc/Views/BrusherProfile/Delete.cshtml @@ -0,0 +1,202 @@ +@model Yavsc.Models.Haircut.BrusherProfile + +@{ + ViewData["Title"] = "Delete"; +} + +

Delete

+ +

Are you sure you want to delete this?

+
+

BrusherProfile

+
+
+
+ @Html.DisplayNameFor(model => model.CarePrice) +
+
+ @Html.DisplayFor(model => model.CarePrice) +
+
+ @Html.DisplayNameFor(model => model.EndOfTheDay) +
+
+ @Html.DisplayFor(model => model.EndOfTheDay) +
+
+ @Html.DisplayNameFor(model => model.HalfBalayagePrice) +
+
+ @Html.DisplayFor(model => model.HalfBalayagePrice) +
+
+ @Html.DisplayNameFor(model => model.HalfBrushingPrice) +
+
+ @Html.DisplayFor(model => model.HalfBrushingPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfColorPrice) +
+
+ @Html.DisplayFor(model => model.HalfColorPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfDefrisPrice) +
+
+ @Html.DisplayFor(model => model.HalfDefrisPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfMechPrice) +
+
+ @Html.DisplayFor(model => model.HalfMechPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfMultiColorPrice) +
+
+ @Html.DisplayFor(model => model.HalfMultiColorPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfPermanentPrice) +
+
+ @Html.DisplayFor(model => model.HalfPermanentPrice) +
+
+ @Html.DisplayNameFor(model => model.KidCutPrice) +
+
+ @Html.DisplayFor(model => model.KidCutPrice) +
+
+ @Html.DisplayNameFor(model => model.LongBalayagePrice) +
+
+ @Html.DisplayFor(model => model.LongBalayagePrice) +
+
+ @Html.DisplayNameFor(model => model.LongBrushingPrice) +
+
+ @Html.DisplayFor(model => model.LongBrushingPrice) +
+
+ @Html.DisplayNameFor(model => model.LongColorPrice) +
+
+ @Html.DisplayFor(model => model.LongColorPrice) +
+
+ @Html.DisplayNameFor(model => model.LongDefrisPrice) +
+
+ @Html.DisplayFor(model => model.LongDefrisPrice) +
+
+ @Html.DisplayNameFor(model => model.LongMechPrice) +
+
+ @Html.DisplayFor(model => model.LongMechPrice) +
+
+ @Html.DisplayNameFor(model => model.LongMultiColorPrice) +
+
+ @Html.DisplayFor(model => model.LongMultiColorPrice) +
+
+ @Html.DisplayNameFor(model => model.LongPermanentPrice) +
+
+ @Html.DisplayFor(model => model.LongPermanentPrice) +
+
+ @Html.DisplayNameFor(model => model.ManCutPrice) +
+
+ @Html.DisplayFor(model => model.ManCutPrice) +
+
+ @Html.DisplayNameFor(model => model.ShampooPrice) +
+
+ @Html.DisplayFor(model => model.ShampooPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortBalayagePrice) +
+
+ @Html.DisplayFor(model => model.ShortBalayagePrice) +
+
+ @Html.DisplayNameFor(model => model.ShortBrushingPrice) +
+
+ @Html.DisplayFor(model => model.ShortBrushingPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortColorPrice) +
+
+ @Html.DisplayFor(model => model.ShortColorPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortDefrisPrice) +
+
+ @Html.DisplayFor(model => model.ShortDefrisPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortMechPrice) +
+
+ @Html.DisplayFor(model => model.ShortMechPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortMultiColorPrice) +
+
+ @Html.DisplayFor(model => model.ShortMultiColorPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortPermanentPrice) +
+
+ @Html.DisplayFor(model => model.ShortPermanentPrice) +
+
+ @Html.DisplayNameFor(model => model.StartOfTheDay) +
+
+ @Html.DisplayFor(model => model.StartOfTheDay) +
+
+ @Html.DisplayNameFor(model => model.WomenHalfCutPrice) +
+
+ @Html.DisplayFor(model => model.WomenHalfCutPrice) +
+
+ @Html.DisplayNameFor(model => model.WomenLongCutPrice) +
+
+ @Html.DisplayFor(model => model.WomenLongCutPrice) +
+
+ @Html.DisplayNameFor(model => model.WomenShortCutPrice) +
+
+ @Html.DisplayFor(model => model.WomenShortCutPrice) +
+
+ +
+
+ | + @SR["Annuler"] +
+
+
diff --git a/Yavsc/Views/BrusherProfile/Edit.cshtml b/Yavsc/Views/BrusherProfile/Edit.cshtml new file mode 100644 index 00000000..15cd9de0 --- /dev/null +++ b/Yavsc/Views/BrusherProfile/Edit.cshtml @@ -0,0 +1,241 @@ +@model Yavsc.Models.Haircut.BrusherProfile + +@{ + ViewData["Title"] = "Edit"; +} + +

Edit

+ +
+
+

BrusherProfile

+
+
Disponibilité +
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
Grille tarifaire +
+ +
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+
+
+
+
+ +
+ Annuler +
+ diff --git a/Yavsc/Views/BrusherProfile/Index.cshtml b/Yavsc/Views/BrusherProfile/Index.cshtml new file mode 100644 index 00000000..f3a715e5 --- /dev/null +++ b/Yavsc/Views/BrusherProfile/Index.cshtml @@ -0,0 +1,205 @@ +@model Yavsc.Models.Haircut.BrusherProfile + +@{ + ViewData["Title"] = "Profile coiffeur"; +} + +

@ViewData["Title"]

+ +
+
+ @if (Model!=null) { +
+
+ @Html.DisplayNameFor(model => model.EndOfTheDay) +
+
+ @Html.Partial("HourFromMinutes", Model.EndOfTheDay) +
+
+ @Html.DisplayNameFor(model => model.StartOfTheDay) +
+
+ @Html.Partial("HourFromMinutes", Model.StartOfTheDay) +
+ +
+ @Html.DisplayNameFor(model => model.CarePrice) +
+
+ @Html.DisplayFor(model => model.CarePrice) +
+
+ @Html.DisplayNameFor(model => model.HalfBalayagePrice) +
+
+ @Html.DisplayFor(model => model.HalfBalayagePrice) +
+
+ @Html.DisplayNameFor(model => model.HalfBrushingPrice) +
+
+ @Html.DisplayFor(model => model.HalfBrushingPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfColorPrice) +
+
+ @Html.DisplayFor(model => model.HalfColorPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfDefrisPrice) +
+
+ @Html.DisplayFor(model => model.HalfDefrisPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfMechPrice) +
+
+ @Html.DisplayFor(model => model.HalfMechPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfMultiColorPrice) +
+
+ @Html.DisplayFor(model => model.HalfMultiColorPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfPermanentPrice) +
+
+ @Html.DisplayFor(model => model.HalfPermanentPrice) +
+
+ @Html.DisplayNameFor(model => model.KidCutPrice) +
+
+ @Html.DisplayFor(model => model.KidCutPrice) +
+
+ @Html.DisplayNameFor(model => model.LongBalayagePrice) +
+
+ @Html.DisplayFor(model => model.LongBalayagePrice) +
+
+ @Html.DisplayNameFor(model => model.LongBrushingPrice) +
+
+ @Html.DisplayFor(model => model.LongBrushingPrice) +
+
+ @Html.DisplayNameFor(model => model.LongColorPrice) +
+
+ @Html.DisplayFor(model => model.LongColorPrice) +
+
+ @Html.DisplayNameFor(model => model.LongDefrisPrice) +
+
+ @Html.DisplayFor(model => model.LongDefrisPrice) +
+
+ @Html.DisplayNameFor(model => model.LongMechPrice) +
+
+ @Html.DisplayFor(model => model.LongMechPrice) +
+
+ @Html.DisplayNameFor(model => model.LongMultiColorPrice) +
+
+ @Html.DisplayFor(model => model.LongMultiColorPrice) +
+
+ @Html.DisplayNameFor(model => model.LongPermanentPrice) +
+
+ @Html.DisplayFor(model => model.LongPermanentPrice) +
+
+ @Html.DisplayNameFor(model => model.ManCutPrice) +
+
+ @Html.DisplayFor(model => model.ManCutPrice) +
+
+ @Html.DisplayNameFor(model => model.ShampooPrice) +
+
+ @Html.DisplayFor(model => model.ShampooPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortBalayagePrice) +
+
+ @Html.DisplayFor(model => model.ShortBalayagePrice) +
+
+ @Html.DisplayNameFor(model => model.ShortBrushingPrice) +
+
+ @Html.DisplayFor(model => model.ShortBrushingPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortColorPrice) +
+
+ @Html.DisplayFor(model => model.ShortColorPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortDefrisPrice) +
+
+ @Html.DisplayFor(model => model.ShortDefrisPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortMechPrice) +
+
+ @Html.DisplayFor(model => model.ShortMechPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortMultiColorPrice) +
+
+ @Html.DisplayFor(model => model.ShortMultiColorPrice) +
+
+ @Html.DisplayNameFor(model => model.ShortPermanentPrice) +
+
+ @Html.DisplayFor(model => model.ShortPermanentPrice) +
+ +
+ @Html.DisplayNameFor(model => model.WomenHalfCutPrice) +
+
+ @Html.DisplayFor(model => model.WomenHalfCutPrice) +
+
+ @Html.DisplayNameFor(model => model.WomenLongCutPrice) +
+
+ @Html.DisplayFor(model => model.WomenLongCutPrice) +
+
+ @Html.DisplayNameFor(model => model.WomenShortCutPrice) +
+
+ @Html.DisplayFor(model => model.WomenShortCutPrice) +
+
} + else { + @SR["Aucun profile renseigné"] + } +
+

+ @SR["Edit"] + @if (Model!=null) { + @SR["Delete"] + } +

diff --git a/Yavsc/Views/Do/Details.cshtml b/Yavsc/Views/Do/Details.cshtml index 432bfa6a..b54804c4 100644 --- a/Yavsc/Views/Do/Details.cshtml +++ b/Yavsc/Views/Do/Details.cshtml @@ -13,7 +13,7 @@
@SR["Activity"]
@Html.DisplayFor(m=>m.Does) @if (ViewBag.HasConfigurableSettings) { - + [@SR["Manage"] @SR[Model.Does.SettingsClassName]] } diff --git a/Yavsc/Views/FrontOffice/HairCut.cshtml b/Yavsc/Views/FrontOffice/HairCut.cshtml index bed7bde9..7ef820e8 100644 --- a/Yavsc/Views/FrontOffice/HairCut.cshtml +++ b/Yavsc/Views/FrontOffice/HairCut.cshtml @@ -1,25 +1,31 @@ @model HairCutView @{ - ViewData["Title"] = "Book - " + (ViewBag.Activity?.Name ?? SR["Any"]); + ViewData["Title"] = $"{ViewBag.Activity.Name}: Votre commande"; } @ViewBag.Activity.Description @Html.DisplayFor(m=>m) -
+
-

HairPrestation

+

@ViewData["Title"]


-
-
- - -
+ +
+ + +
+
+
+ +
+ +
@@ -31,24 +37,31 @@
- +
- +
- +
- - + +
- +
- - + +@foreach (HairTaint color in ViewBag.HairTaints) { + + } + +
@@ -60,14 +73,14 @@
- -
- - +
+
+ + +
- - + diff --git a/Yavsc/Views/FrontOffice/Profiles.cshtml b/Yavsc/Views/FrontOffice/Profiles.cshtml index 88ed7d0e..888e734b 100644 --- a/Yavsc/Views/FrontOffice/Profiles.cshtml +++ b/Yavsc/Views/FrontOffice/Profiles.cshtml @@ -1,8 +1,9 @@ @model IEnumerable @{ - ViewData["Title"] = "Book - " + (ViewBag.Activity?.Name ?? SR["Any"]); + ViewData["Title"] = "Les profiles - " + (ViewBag.Activity?.Name ?? SR["Any"]); } +

@ViewData["Title"]

@ViewBag.Activity.Description @foreach (var profile in Model) { diff --git a/Yavsc/Views/Shared/HairTaint.cshtml b/Yavsc/Views/Shared/HairTaint.cshtml new file mode 100644 index 00000000..8c64e16a --- /dev/null +++ b/Yavsc/Views/Shared/HairTaint.cshtml @@ -0,0 +1,2 @@ +@model HairTaint +@Html.DisplayFor(m=>m.Color) (@Model.Brand) \ No newline at end of file diff --git a/Yavsc/Views/Shared/HourFromMinutes.cshtml b/Yavsc/Views/Shared/HourFromMinutes.cshtml new file mode 100644 index 00000000..319acb5b --- /dev/null +++ b/Yavsc/Views/Shared/HourFromMinutes.cshtml @@ -0,0 +1,2 @@ +@model int +@(Model/60):@(Model%60) \ No newline at end of file diff --git a/Yavsc/Views/_ViewImports.cshtml b/Yavsc/Views/_ViewImports.cshtml index e7b61490..325a5b1c 100755 --- a/Yavsc/Views/_ViewImports.cshtml +++ b/Yavsc/Views/_ViewImports.cshtml @@ -21,6 +21,7 @@ @using Yavsc.Models.Workflow; @using Yavsc.Models.Relationship @using Yavsc.Models.Drawing; +@using Yavsc.Models.Haircut; @using Yavsc.ViewModels.Account; @using Yavsc.ViewModels.Manage; From c8f082fbde8c9fc6c4fac37f14af8cdb4e4ece98 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Tue, 28 Feb 2017 14:52:33 +0100 Subject: [PATCH 05/19] profile coiffeur --- Yavsc/Models/Haircut/BrusherProfile.cs | 57 +++--- Yavsc/Models/Workflow/PerformerProfile.cs | 4 +- Yavsc/Views/BrusherProfile/Index.cshtml | 218 ++++++++++++++++------ Yavsc/Views/Shared/HourFromMinutes.cshtml | 2 +- 4 files changed, 189 insertions(+), 92 deletions(-) diff --git a/Yavsc/Models/Haircut/BrusherProfile.cs b/Yavsc/Models/Haircut/BrusherProfile.cs index 7871bc49..24e60a1a 100644 --- a/Yavsc/Models/Haircut/BrusherProfile.cs +++ b/Yavsc/Models/Haircut/BrusherProfile.cs @@ -24,95 +24,94 @@ namespace Yavsc.Models.Haircut [Display(Name="Fin de la journée")] public int EndOfTheDay { get; set;} - [Display(Name="Coût d'une coupe femme cheveux longs")] + [Display(Name="Coupe femme cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal WomenLongCutPrice { get; set; } - [Display(Name="Coût d'une coupe femme cheveux mi-longs")] + [Display(Name="Coupe femme cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal WomenHalfCutPrice { get; set; } - [Display(Name="Coût d'une coupe femme cheveux courts")] + [Display(Name="Coupe femme cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal WomenShortCutPrice { get; set; } - [Display(Name="Coût d'une coupe homme")] + [Display(Name="Coupe homme"),DisplayFormat(DataFormatString="{0:C}")] public decimal ManCutPrice { get; set; } - [Display(Name="Coût d'une coupe enfant")] + [Display(Name="Coupe enfant"),DisplayFormat(DataFormatString="{0:C}")] public decimal KidCutPrice { get; set; } - [Display(Name="Coût d'un brushing cheveux longs")] + [Display(Name="Brushing cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal LongBrushingPrice { get; set; } - [Display(Name="Coût d'un brushing cheveux mi-longs")] + [Display(Name="Brushing cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal HalfBrushingPrice { get; set; } - [Display(Name="Coût d'un brushing cheveux courts")] + [Display(Name="Brushing cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortBrushingPrice { get; set; } - [Display(Name="Coût du shamoing")] + [Display(Name="Shampoing"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShampooPrice { get; set; } - [Display(Name="Coût du soin")] + [Display(Name="Soin"),DisplayFormat(DataFormatString="{0:C}")] public decimal CarePrice { get; set; } - [Display(Name="Coût d'une couleur cheveux longs")] + [Display(Name="couleur cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal LongColorPrice { get; set; } - [Display(Name="Coût d'une couleur cheveux mi-longs")] + [Display(Name="couleur cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal HalfColorPrice { get; set; } - [Display(Name="Coût d'une couleur cheveux courts")] + [Display(Name="couleur cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortColorPrice { get; set; } - [Display(Name="Coût d'une couleur multiple cheveux longs")] + [Display(Name="couleur multiple cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal LongMultiColorPrice { get; set; } - [Display(Name="Coût d'une couleur multiple cheveux mi-longs")] + [Display(Name="couleur multiple cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal HalfMultiColorPrice { get; set; } - [Display(Name="Coût d'une couleur multiple cheveux courts")] + [Display(Name="couleur multiple cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortMultiColorPrice { get; set; } - [Display(Name="Coût d'une permanente cheveux longs")] + [Display(Name="permanente cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal LongPermanentPrice { get; set; } - [Display(Name="Coût d'une permanente cheveux mi-longs")] + [Display(Name="permanente cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal HalfPermanentPrice { get; set; } - [Display(Name="Coût d'une permanente cheveux courts")] + [Display(Name="permanente cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortPermanentPrice { get; set; } - [Display(Name="Coût d'un défrisage cheveux longs")] + [Display(Name="défrisage cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal LongDefrisPrice { get; set; } - [Display(Name="Coût d'un défrisage cheveux mi-longs")] + [Display(Name="défrisage cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal HalfDefrisPrice { get; set; } - [Display(Name="Coût d'un défrisage cheveux courts")] + [Display(Name="défrisage cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortDefrisPrice { get; set; } - [Display(Name="Coût des mêches sur cheveux longs")] + [Display(Name="mêches sur cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal LongMechPrice { get; set; } - [Display(Name="Coût des mêches sur cheveux mi-longs")] + [Display(Name="mêches sur cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal HalfMechPrice { get; set; } - [Display(Name="Coût des mêches sur cheveux courts")] + [Display(Name="mêches sur cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortMechPrice { get; set; } - [Display(Name="Coût du balayage cheveux longs")] + [Display(Name="balayage cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal LongBalayagePrice { get; set; } - [Display(Name="Coût du balayage cheveux mi-longs")] + [Display(Name="balayage cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal HalfBalayagePrice { get; set; } - [Display(Name="Coût du balayage cheveux courts")] + [Display(Name="balayage cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortBalayagePrice { get; set; } - } } \ No newline at end of file diff --git a/Yavsc/Models/Workflow/PerformerProfile.cs b/Yavsc/Models/Workflow/PerformerProfile.cs index b6318e03..31e30233 100644 --- a/Yavsc/Models/Workflow/PerformerProfile.cs +++ b/Yavsc/Models/Workflow/PerformerProfile.cs @@ -42,10 +42,10 @@ namespace Yavsc.Models.Workflow [Display(Name="Active")] public bool Active { get; set; } - [Display(Name="Maximal Daily Cost (euro/day)")] + [Display(Name="Maximal Daily Cost (euro/day)"),DisplayFormat(DataFormatString="{0:C}")] public int? MaxDailyCost { get; set; } - [Display(Name="Minimal Daily Cost (euro/day)")] + [Display(Name="Minimal Daily Cost (euro/day)"),DisplayFormat(DataFormatString="{0:C}")] public int? MinDailyCost { get; set; } [Display(Name="Rate from clients")] diff --git a/Yavsc/Views/BrusherProfile/Index.cshtml b/Yavsc/Views/BrusherProfile/Index.cshtml index f3a715e5..84efd2d1 100644 --- a/Yavsc/Views/BrusherProfile/Index.cshtml +++ b/Yavsc/Views/BrusherProfile/Index.cshtml @@ -9,6 +9,11 @@

@if (Model!=null) { + +
+Disponibilités + +
@Html.DisplayNameFor(model => model.EndOfTheDay) @@ -22,6 +27,19 @@
@Html.Partial("HourFromMinutes", Model.StartOfTheDay)
+
+
+
+Tarifs hors coiffure ou coupe + + +
+
+ @Html.DisplayNameFor(model => model.ShampooPrice) +
+
+ @Html.DisplayFor(model => model.ShampooPrice) +
@Html.DisplayNameFor(model => model.CarePrice) @@ -29,24 +47,44 @@
@Html.DisplayFor(model => model.CarePrice)
+ +
+
+ +
+Tarifs balayages + + +
- @Html.DisplayNameFor(model => model.HalfBalayagePrice) + @Html.DisplayNameFor(model => model.LongBalayagePrice)
- @Html.DisplayFor(model => model.HalfBalayagePrice) + @Html.DisplayFor(model => model.LongBalayagePrice)
+
- @Html.DisplayNameFor(model => model.HalfBrushingPrice) + @Html.DisplayNameFor(model => model.HalfBalayagePrice)
- @Html.DisplayFor(model => model.HalfBrushingPrice) + @Html.DisplayFor(model => model.HalfBalayagePrice)
-
- @Html.DisplayNameFor(model => model.HalfColorPrice) + +
+ @Html.DisplayNameFor(model => model.ShortBalayagePrice)
- @Html.DisplayFor(model => model.HalfColorPrice) + @Html.DisplayFor(model => model.ShortBalayagePrice)
+
+
+ +
+Tarifs défrisage + + +
+
@Html.DisplayNameFor(model => model.HalfDefrisPrice)
@@ -54,145 +92,205 @@ @Html.DisplayFor(model => model.HalfDefrisPrice)
- @Html.DisplayNameFor(model => model.HalfMechPrice) -
-
- @Html.DisplayFor(model => model.HalfMechPrice) -
-
- @Html.DisplayNameFor(model => model.HalfMultiColorPrice) + @Html.DisplayNameFor(model => model.LongDefrisPrice)
- @Html.DisplayFor(model => model.HalfMultiColorPrice) + @Html.DisplayFor(model => model.LongDefrisPrice)
- @Html.DisplayNameFor(model => model.HalfPermanentPrice) + @Html.DisplayNameFor(model => model.ShortDefrisPrice)
- @Html.DisplayFor(model => model.HalfPermanentPrice) + @Html.DisplayFor(model => model.ShortDefrisPrice)
+
+ + +
+Tarifs mèches + + +
- @Html.DisplayNameFor(model => model.KidCutPrice) + @Html.DisplayNameFor(model => model.HalfMechPrice)
- @Html.DisplayFor(model => model.KidCutPrice) + @Html.DisplayFor(model => model.HalfMechPrice)
- @Html.DisplayNameFor(model => model.LongBalayagePrice) + @Html.DisplayNameFor(model => model.LongMechPrice)
- @Html.DisplayFor(model => model.LongBalayagePrice) + @Html.DisplayFor(model => model.LongMechPrice)
- @Html.DisplayNameFor(model => model.LongBrushingPrice) + @Html.DisplayNameFor(model => model.ShortMechPrice)
- @Html.DisplayFor(model => model.LongBrushingPrice) + @Html.DisplayFor(model => model.ShortMechPrice)
-
- @Html.DisplayNameFor(model => model.LongColorPrice) + + + + +
+
+
+Tarifs coupes + + +
+ + +
+ @Html.DisplayNameFor(model => model.WomenHalfCutPrice)
- @Html.DisplayFor(model => model.LongColorPrice) + @Html.DisplayFor(model => model.WomenHalfCutPrice)
+
- @Html.DisplayNameFor(model => model.LongDefrisPrice) + @Html.DisplayNameFor(model => model.WomenLongCutPrice)
- @Html.DisplayFor(model => model.LongDefrisPrice) + @Html.DisplayFor(model => model.WomenLongCutPrice)
+
- @Html.DisplayNameFor(model => model.LongMechPrice) + @Html.DisplayNameFor(model => model.WomenShortCutPrice)
- @Html.DisplayFor(model => model.LongMechPrice) + @Html.DisplayFor(model => model.WomenShortCutPrice)
+ +
- @Html.DisplayNameFor(model => model.LongMultiColorPrice) + @Html.DisplayNameFor(model => model.ManCutPrice)
- @Html.DisplayFor(model => model.LongMultiColorPrice) + @Html.DisplayFor(model => model.ManCutPrice)
-
- @Html.DisplayNameFor(model => model.LongPermanentPrice) + +
+ @Html.DisplayNameFor(model => model.KidCutPrice)
- @Html.DisplayFor(model => model.LongPermanentPrice) + @Html.DisplayFor(model => model.KidCutPrice)
+ +
+
+
+Tarifs couleurs + + +
- @Html.DisplayNameFor(model => model.ManCutPrice) + @Html.DisplayNameFor(model => model.LongColorPrice)
- @Html.DisplayFor(model => model.ManCutPrice) + @Html.DisplayFor(model => model.LongColorPrice)
- @Html.DisplayNameFor(model => model.ShampooPrice) + @Html.DisplayNameFor(model => model.HalfColorPrice)
- @Html.DisplayFor(model => model.ShampooPrice) + @Html.DisplayFor(model => model.HalfColorPrice)
+
- @Html.DisplayNameFor(model => model.ShortBalayagePrice) + @Html.DisplayNameFor(model => model.ShortColorPrice)
- @Html.DisplayFor(model => model.ShortBalayagePrice) + @Html.DisplayFor(model => model.ShortColorPrice)
+
+
- @Html.DisplayNameFor(model => model.ShortBrushingPrice) + @Html.DisplayNameFor(model => model.ShortMultiColorPrice)
- @Html.DisplayFor(model => model.ShortBrushingPrice) + @Html.DisplayFor(model => model.ShortMultiColorPrice)
- @Html.DisplayNameFor(model => model.ShortColorPrice) + @Html.DisplayNameFor(model => model.HalfMultiColorPrice)
- @Html.DisplayFor(model => model.ShortColorPrice) + @Html.DisplayFor(model => model.HalfMultiColorPrice)
- @Html.DisplayNameFor(model => model.ShortDefrisPrice) + @Html.DisplayNameFor(model => model.LongMultiColorPrice)
- @Html.DisplayFor(model => model.ShortDefrisPrice) + @Html.DisplayFor(model => model.LongMultiColorPrice)
+ +
+
+
+Tarifs burshing + + +
+
- @Html.DisplayNameFor(model => model.ShortMechPrice) + @Html.DisplayNameFor(model => model.LongBrushingPrice)
- @Html.DisplayFor(model => model.ShortMechPrice) + @Html.DisplayFor(model => model.LongBrushingPrice)
- @Html.DisplayNameFor(model => model.ShortMultiColorPrice) + @Html.DisplayNameFor(model => model.HalfBrushingPrice)
- @Html.DisplayFor(model => model.ShortMultiColorPrice) + @Html.DisplayFor(model => model.HalfBrushingPrice)
+
- @Html.DisplayNameFor(model => model.ShortPermanentPrice) + @Html.DisplayNameFor(model => model.ShortBrushingPrice)
- @Html.DisplayFor(model => model.ShortPermanentPrice) + @Html.DisplayFor(model => model.ShortBrushingPrice)
+ + + +
+
+
+Tarifs permanentes + + +
- @Html.DisplayNameFor(model => model.WomenHalfCutPrice) + @Html.DisplayNameFor(model => model.LongPermanentPrice)
- @Html.DisplayFor(model => model.WomenHalfCutPrice) + @Html.DisplayFor(model => model.LongPermanentPrice)
- @Html.DisplayNameFor(model => model.WomenLongCutPrice) + @Html.DisplayNameFor(model => model.HalfPermanentPrice)
- @Html.DisplayFor(model => model.WomenLongCutPrice) + @Html.DisplayFor(model => model.HalfPermanentPrice)
+ +
- @Html.DisplayNameFor(model => model.WomenShortCutPrice) + @Html.DisplayNameFor(model => model.ShortPermanentPrice)
- @Html.DisplayFor(model => model.WomenShortCutPrice) + @Html.DisplayFor(model => model.ShortPermanentPrice)
-
} + + + + +
+ + + } else { @SR["Aucun profile renseigné"] } diff --git a/Yavsc/Views/Shared/HourFromMinutes.cshtml b/Yavsc/Views/Shared/HourFromMinutes.cshtml index 319acb5b..d74689b0 100644 --- a/Yavsc/Views/Shared/HourFromMinutes.cshtml +++ b/Yavsc/Views/Shared/HourFromMinutes.cshtml @@ -1,2 +1,2 @@ @model int -@(Model/60):@(Model%60) \ No newline at end of file +@((Model/60).ToString("00")):@((Model%60).ToString("00")) \ No newline at end of file From 4701b898848377737831f8e9e9a1a2c73ef7698f Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Tue, 28 Feb 2017 14:53:26 +0100 Subject: [PATCH 06/19] cleaning --- Yavsc/Controllers/BrusherProfileController.cs | 2 -- Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs | 1 - Yavsc/Migrations/20170228115359_brusherProfile.cs | 2 -- Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs | 2 -- 4 files changed, 7 deletions(-) diff --git a/Yavsc/Controllers/BrusherProfileController.cs b/Yavsc/Controllers/BrusherProfileController.cs index 35644de3..a1a79074 100644 --- a/Yavsc/Controllers/BrusherProfileController.cs +++ b/Yavsc/Controllers/BrusherProfileController.cs @@ -1,4 +1,3 @@ -using System.Linq; using System.Threading.Tasks; using Microsoft.AspNet.Mvc; using System.Security.Claims; @@ -6,7 +5,6 @@ using Microsoft.Data.Entity; using Yavsc.Models; using Yavsc.Models.Haircut; using Microsoft.AspNet.Authorization; -using System; namespace Yavsc.Controllers { diff --git a/Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs b/Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs index 632c23da..999f00b9 100644 --- a/Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs +++ b/Yavsc/Migrations/20170228115359_brusherProfile.Designer.cs @@ -1,7 +1,6 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; -using Microsoft.Data.Entity.Metadata; using Microsoft.Data.Entity.Migrations; using Yavsc.Models; diff --git a/Yavsc/Migrations/20170228115359_brusherProfile.cs b/Yavsc/Migrations/20170228115359_brusherProfile.cs index 8c033090..868d9dda 100644 --- a/Yavsc/Migrations/20170228115359_brusherProfile.cs +++ b/Yavsc/Migrations/20170228115359_brusherProfile.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using Microsoft.Data.Entity.Migrations; namespace Yavsc.Migrations diff --git a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs index a6fcd8d4..f38231cd 100644 --- a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs @@ -1,8 +1,6 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; -using Microsoft.Data.Entity.Metadata; -using Microsoft.Data.Entity.Migrations; using Yavsc.Models; namespace Yavsc.Migrations From 937d4ed7bf641489641a4976464faead55c8d14f Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Tue, 28 Feb 2017 15:30:22 +0100 Subject: [PATCH 07/19] Fixes some bugs --- Yavsc/Controllers/ManageController.cs | 3 ++- Yavsc/Views/Manage/SetActivity.cshtml | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Yavsc/Controllers/ManageController.cs b/Yavsc/Controllers/ManageController.cs index dd472b08..a75696d0 100644 --- a/Yavsc/Controllers/ManageController.cs +++ b/Yavsc/Controllers/ManageController.cs @@ -580,8 +580,9 @@ namespace Yavsc.Controllers } else ModelState.AddModelError(string.Empty, $"Access denied ({uid} vs {model.PerformerId})"); } - + ViewBag.Activities = _dbContext.ActivityItems(new List()); ViewBag.GoogleSettings = _googleSettings; + model.Performer = _dbContext.Users.Single(u=>u.Id == model.PerformerId); return View(model); } diff --git a/Yavsc/Views/Manage/SetActivity.cshtml b/Yavsc/Views/Manage/SetActivity.cshtml index 18e71e4c..645934de 100644 --- a/Yavsc/Views/Manage/SetActivity.cshtml +++ b/Yavsc/Views/Manage/SetActivity.cshtml @@ -41,8 +41,8 @@ var pos = loc.geometry.location; var lat = new Number(pos.lat); var lng = new Number(pos.lng); - $('#'+config.latId).val(lat.toLocaleString('en')); - $('#'+config.longId).val(lng.toLocaleString('en')); + $('#'+config.latId).val(lat.toLocaleString('fr')); + $('#'+config.longId).val(lng.toLocaleString('fr')); gmap.setCenter(pos); if (marker) {  marker.setMap(null); From 335da97a4fd4f50be55d05d274c0a80d0c684310 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Wed, 1 Mar 2017 10:11:20 +0100 Subject: [PATCH 08/19] hair cut command --- Yavsc/Controllers/CommandFormsController.cs | 2 +- Yavsc/Controllers/FrontOfficeController.cs | 27 +- Yavsc/Controllers/HairCutCommandController.cs | 39 +- .../20170228145057_actionName.Designer.cs | 1395 +++++++++++++++++ Yavsc/Migrations/20170228145057_actionName.cs | 569 +++++++ .../ApplicationDbContextModelSnapshot.cs | 2 +- Yavsc/Models/Haircut/HairPrestation.cs | 4 + Yavsc/Models/Workflow/CommandForm.cs | 2 +- Yavsc/ViewModels/Haircut/HairCutView.cs | 3 +- Yavsc/Views/CommandForms/Create.cshtml | 4 +- Yavsc/Views/CommandForms/Details.cshtml | 6 + Yavsc/Views/CommandForms/Edit.cshtml | 8 +- Yavsc/Views/CommandForms/Index.cshtml | 6 + Yavsc/Views/FrontOffice/HairCut.cshtml | 92 +- Yavsc/Views/HairCutCommand/HairCut.cshtml | 89 ++ Yavsc/Views/Home/Index.cshtml | 2 +- Yavsc/wwwroot/css/site.css | 6 +- YavscLib/ICommandForm.cs | 2 +- 18 files changed, 2135 insertions(+), 123 deletions(-) create mode 100644 Yavsc/Migrations/20170228145057_actionName.Designer.cs create mode 100644 Yavsc/Migrations/20170228145057_actionName.cs create mode 100644 Yavsc/Views/HairCutCommand/HairCut.cshtml diff --git a/Yavsc/Controllers/CommandFormsController.cs b/Yavsc/Controllers/CommandFormsController.cs index 4fd40812..2f24fcce 100644 --- a/Yavsc/Controllers/CommandFormsController.cs +++ b/Yavsc/Controllers/CommandFormsController.cs @@ -50,7 +50,7 @@ namespace Yavsc.Controllers } private void SetViewBag(CommandForm commandForm=null) { ViewBag.ActivityCode = new SelectList(_context.Activities, "Code", "Name", commandForm?.ActivityCode); - ViewBag.Action = Startup.Forms.Select( c => new SelectListItem { Text = c, Selected = commandForm?.Action == c } ); + ViewBag.ActionName = Startup.Forms.Select( c => new SelectListItem { Value = c, Text = c, Selected = (commandForm?.ActionName == c) } ); } // POST: CommandForms/Create [HttpPost] diff --git a/Yavsc/Controllers/FrontOfficeController.cs b/Yavsc/Controllers/FrontOfficeController.cs index bc141903..68ea74f3 100644 --- a/Yavsc/Controllers/FrontOfficeController.cs +++ b/Yavsc/Controllers/FrontOfficeController.cs @@ -10,14 +10,9 @@ using System.Security.Claims; namespace Yavsc.Controllers { using Helpers; - using Microsoft.AspNet.Http; using Microsoft.Extensions.Localization; using Models; - using Newtonsoft.Json; using ViewModels.FrontOffice; - using Yavsc.Extensions; - using Yavsc.Models.Haircut; - using Yavsc.ViewModels.Haircut; public class FrontOfficeController : Controller { @@ -67,28 +62,18 @@ namespace Yavsc.Controllers var result = _context.ListPerformers(id); return View(result); } - [AllowAnonymous] public ActionResult HairCut(string id) { - HairPrestation pPrestation=null; - var prestaJson = HttpContext.Session.GetString("HairCutPresta") ; - if (prestaJson!=null) { - pPrestation = JsonConvert.DeserializeObject(prestaJson); + if (id == null) + { + throw new NotImplementedException("No Activity code"); } - else pPrestation = new HairPrestation {}; - ViewBag.HairTaints = _context.HairTaint.Include(t=>t.Color); - ViewBag.HairTechnos = EnumExtensions.GetSelectList(typeof(HairTechnos),_SR); - ViewBag.HairLength = EnumExtensions.GetSelectList(typeof(HairLength),_SR); - ViewBag.Activity = _context.Activities.First(a => a.Code == id); - ViewBag.Gender = EnumExtensions.GetSelectList(typeof(HairCutGenders),_SR); - ViewBag.HairDressings = EnumExtensions.GetSelectList(typeof(HairDressings),_SR); - var result = new HairCutView { - HairBrushers = _context.ListPerformers(id), - Topic = pPrestation - } ; + ViewBag.Activity = _context.Activities.FirstOrDefault(a => a.Code == id); + var result = _context.ListPerformers(id); return View(result); } + [Produces("text/x-tex"), Authorize, Route("estimate-{id}.tex")] diff --git a/Yavsc/Controllers/HairCutCommandController.cs b/Yavsc/Controllers/HairCutCommandController.cs index 0de5571d..b93f2e7b 100644 --- a/Yavsc/Controllers/HairCutCommandController.cs +++ b/Yavsc/Controllers/HairCutCommandController.cs @@ -9,15 +9,20 @@ using Microsoft.Data.Entity; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.OptionsModel; -using Yavsc.Helpers; -using Yavsc.Models; -using Yavsc.Models.Google.Messaging; -using Yavsc.Models.Haircut; -using Yavsc.Models.Relationship; -using Yavsc.Services; namespace Yavsc.Controllers { + using Yavsc.Helpers; + using Yavsc.Models; + using Yavsc.Models.Google.Messaging; + using Yavsc.Models.Relationship; + using Yavsc.Services; + using Newtonsoft.Json; + using Microsoft.AspNet.Http; + using Yavsc.Extensions; + using Yavsc.Models.Haircut; + using Yavsc.ViewModels.Haircut; + public class HairCutCommandController : CommandController { public HairCutCommandController(ApplicationDbContext context, @@ -111,6 +116,28 @@ namespace Yavsc.Controllers } + [AllowAnonymous] + public ActionResult HairCut(string performerId, string activityCode) + { + HairPrestation pPrestation=null; + var prestaJson = HttpContext.Session.GetString("HairCutPresta") ; + if (prestaJson!=null) { + pPrestation = JsonConvert.DeserializeObject(prestaJson); + } + else pPrestation = new HairPrestation {}; + + ViewBag.HairTaints = _context.HairTaint.Include(t=>t.Color); + ViewBag.HairTechnos = EnumExtensions.GetSelectList(typeof(HairTechnos),_localizer); + ViewBag.HairLength = EnumExtensions.GetSelectList(typeof(HairLength),_localizer); + ViewBag.Activity = _context.Activities.First(a => a.Code == activityCode); + ViewBag.Gender = EnumExtensions.GetSelectList(typeof(HairCutGenders),_localizer); + ViewBag.HairDressings = EnumExtensions.GetSelectList(typeof(HairDressings),_localizer); + var result = new HairCutView { + HairBrusher = _context.Performers.Single(p=>p.PerformerId == performerId), + Topic = pPrestation + } ; + return View(result); + } [HttpPost, Authorize] [ValidateAntiForgeryToken] public async Task CreateHairMultiCutQuery(HairMultiCutQuery command) diff --git a/Yavsc/Migrations/20170228145057_actionName.Designer.cs b/Yavsc/Migrations/20170228145057_actionName.Designer.cs new file mode 100644 index 00000000..2f0deab1 --- /dev/null +++ b/Yavsc/Migrations/20170228145057_actionName.Designer.cs @@ -0,0 +1,1395 @@ +using System; +using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Migrations; +using Yavsc.Models; + +namespace Yavsc.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20170228145057_actionName")] + partial class actionName + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "7.0.0-rc1-16348"); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b => + { + b.Property("Id"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .HasAnnotation("Relational:Name", "RoleNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasAnnotation("Relational:TableName", "AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasAnnotation("Relational:TableName", "AspNetUserRoles"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.Property("CircleId"); + + b.Property("BlogPostId"); + + b.HasKey("CircleId", "BlogPostId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.Property("UserId"); + + b.Property("ContactCredits"); + + b.Property("Credits"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("Avatar") + .IsRequired() + .HasAnnotation("MaxLength", 512) + .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("BankInfoId"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("DedicatedGoogleCalendar"); + + b.Property("DiskQuota") + .HasAnnotation("Relational:DefaultValue", "524288000") + .HasAnnotation("Relational:DefaultValueType", "System.Int64"); + + b.Property("DiskUsage"); + + b.Property("Email") + .HasAnnotation("MaxLength", 256); + + b.Property("EmailConfirmed"); + + b.Property("FullName") + .HasAnnotation("MaxLength", 512); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedUserName") + .HasAnnotation("MaxLength", 256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("PostalAddressId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasAnnotation("Relational:Name", "EmailIndex"); + + b.HasIndex("NormalizedUserName") + .HasAnnotation("Relational:Name", "UserNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetUsers"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.Client", b => + { + b.Property("Id"); + + b.Property("Active"); + + b.Property("DisplayName"); + + b.Property("LogoutRedirectUri") + .HasAnnotation("MaxLength", 100); + + b.Property("RedirectUri"); + + b.Property("RefreshTokenLifeTime"); + + b.Property("Secret"); + + b.Property("Type"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b => + { + b.Property("Id"); + + b.Property("ClientId") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.Property("ExpiresUtc"); + + b.Property("IssuedUtc"); + + b.Property("ProtectedTicket") + .IsRequired(); + + b.Property("Subject") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BalanceId") + .IsRequired(); + + b.Property("ExecDate"); + + b.Property("Impact"); + + b.Property("Reason") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccountNumber") + .HasAnnotation("MaxLength", 15); + + b.Property("BIC") + .HasAnnotation("MaxLength", 15); + + b.Property("BankCode") + .HasAnnotation("MaxLength", 5); + + b.Property("BankedKey"); + + b.Property("IBAN") + .HasAnnotation("MaxLength", 33); + + b.Property("WicketCode") + .HasAnnotation("MaxLength", 5); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Count"); + + b.Property("Description") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("EstimateId"); + + b.Property("EstimateTemplateId"); + + b.Property("UnitaryCost"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AttachedFilesString"); + + b.Property("AttachedGraphicsString"); + + b.Property("ClientId") + .IsRequired(); + + b.Property("ClientValidationDate"); + + b.Property("CommandId"); + + b.Property("CommandType"); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("ProviderValidationDate"); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b => + { + b.Property("SIREN"); + + b.HasKey("SIREN"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId"); + + b.Property("Content"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("Title"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.Property("ConnectionId"); + + b.Property("ApplicationUserId"); + + b.Property("Connected"); + + b.Property("UserAgent"); + + b.HasKey("ConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Drawing.Color", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Blue"); + + b.Property("Green"); + + b.Property("Name"); + + b.Property("Red"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Forms.Form", b => + { + b.Property("Id"); + + b.Property("Summary"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.Property("UserId"); + + b.Property("CarePrice"); + + b.Property("EndOfTheDay"); + + b.Property("HalfBalayagePrice"); + + b.Property("HalfBrushingPrice"); + + b.Property("HalfColorPrice"); + + b.Property("HalfDefrisPrice"); + + b.Property("HalfMechPrice"); + + b.Property("HalfMultiColorPrice"); + + b.Property("HalfPermanentPrice"); + + b.Property("KidCutPrice"); + + b.Property("LongBalayagePrice"); + + b.Property("LongBrushingPrice"); + + b.Property("LongColorPrice"); + + b.Property("LongDefrisPrice"); + + b.Property("LongMechPrice"); + + b.Property("LongMultiColorPrice"); + + b.Property("LongPermanentPrice"); + + b.Property("ManCutPrice"); + + b.Property("ShampooPrice"); + + b.Property("ShortBalayagePrice"); + + b.Property("ShortBrushingPrice"); + + b.Property("ShortColorPrice"); + + b.Property("ShortDefrisPrice"); + + b.Property("ShortMechPrice"); + + b.Property("ShortMultiColorPrice"); + + b.Property("ShortPermanentPrice"); + + b.Property("StartOfTheDay"); + + b.Property("WomenHalfCutPrice"); + + b.Property("WomenLongCutPrice"); + + b.Property("WomenShortCutPrice"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("HairMultiCutQueryId"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Brand"); + + b.Property("ColorId"); + + b.Property("HairPrestationId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.Property("DeviceId"); + + b.Property("DeclarationDate") + .ValueGeneratedOnAdd() + .HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP"); + + b.Property("DeviceOwnerId"); + + b.Property("GCMRegistrationId") + .IsRequired(); + + b.Property("Model"); + + b.Property("Platform"); + + b.Property("Version"); + + b.HasKey("DeviceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Depth"); + + b.Property("Description"); + + b.Property("Height"); + + b.Property("Name"); + + b.Property("Price"); + + b.Property("Public"); + + b.Property("Weight"); + + b.Property("Width"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ContextId"); + + b.Property("Description"); + + b.Property("Name"); + + b.Property("Public"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.Property("UserId"); + + b.Property("Avatar"); + + b.Property("BillingAddressId"); + + b.Property("EMail"); + + b.Property("Phone"); + + b.Property("UserName"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.Property("UserId"); + + b.Property("NotificationId"); + + b.HasKey("UserId", "NotificationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("body") + .IsRequired(); + + b.Property("click_action") + .IsRequired(); + + b.Property("color"); + + b.Property("icon"); + + b.Property("sound"); + + b.Property("tag"); + + b.Property("title") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Instrument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.Property("OwnerProfileId"); + + b.Property("DjSettingsUserId"); + + b.Property("GeneralSettingsUserId"); + + b.Property("Rate"); + + b.Property("TendencyId"); + + b.HasKey("OwnerProfileId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalTendency", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.DjSettings", b => + { + b.Property("UserId"); + + b.Property("SoundCloudId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.GeneralSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.Property("InstrumentId"); + + b.Property("UserId"); + + b.HasKey("InstrumentId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b => + { + b.Property("UserId"); + + b.Property("AccessToken"); + + b.Property("Expiration"); + + b.Property("ExpiresIn"); + + b.Property("RefreshToken"); + + b.Property("TokenType"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ApplicationUserId"); + + b.Property("Name"); + + b.Property("OwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.Property("MemberId"); + + b.Property("CircleId"); + + b.HasKey("MemberId", "CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.Property("OwnerId"); + + b.Property("UserId"); + + b.Property("ApplicationUserId"); + + b.HasKey("OwnerId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Address") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("Latitude"); + + b.Property("Longitude"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.LocationType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.Property("PostId"); + + b.Property("TagId"); + + b.HasKey("PostId", "TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("Rate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.Property("Code") + .HasAnnotation("MaxLength", 512); + + b.Property("ActorDenomination"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("Hidden"); + + b.Property("ModeratorGroupName"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("ParentCode") + .HasAnnotation("MaxLength", 512); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("SettingsClassName"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActionName"); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormationSettingsUserId"); + + b.Property("PerformerId"); + + b.Property("WorkingForId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.Property("PerformerId"); + + b.Property("AcceptNotifications"); + + b.Property("AcceptPublicContact"); + + b.Property("Active"); + + b.Property("MaxDailyCost"); + + b.Property("MinDailyCost"); + + b.Property("OrganizationAddressId"); + + b.Property("Rate"); + + b.Property("SIREN") + .IsRequired() + .HasAnnotation("MaxLength", 14); + + b.Property("UseGeoLocalizationToReduceDistanceWithClients"); + + b.Property("WebSite"); + + b.HasKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Profiles.FormationSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("LocationTypeId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("BlogPostId"); + + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithOne() + .HasForeignKey("Yavsc.Models.AccountBalance", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.HasOne("Yavsc.Models.Bank.BankIdentity") + .WithMany() + .HasForeignKey("BankInfoId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("PostalAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.HasOne("Yavsc.Models.AccountBalance") + .WithMany() + .HasForeignKey("BalanceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.HasOne("Yavsc.Models.Billing.Estimate") + .WithMany() + .HasForeignKey("EstimateId"); + + b.HasOne("Yavsc.Models.Billing.EstimateTemplate") + .WithMany() + .HasForeignKey("EstimateTemplateId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Workflow.RdvQuery") + .WithMany() + .HasForeignKey("CommandId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("HairMultiCutQueryId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.HasOne("Yavsc.Models.Drawing.Color") + .WithMany() + .HasForeignKey("ColorId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("HairPrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("DeviceOwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ContextId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("BillingAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.HasOne("Yavsc.Models.Messaging.Notification") + .WithMany() + .HasForeignKey("NotificationId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.HasOne("Yavsc.Models.Musical.Profiles.DjSettings") + .WithMany() + .HasForeignKey("DjSettingsUserId"); + + b.HasOne("Yavsc.Models.Musical.Profiles.GeneralSettings") + .WithMany() + .HasForeignKey("GeneralSettingsUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.HasOne("Yavsc.Models.Musical.Instrument") + .WithMany() + .HasForeignKey("InstrumentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("MemberId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("PostId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ParentCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.HasOne("Yavsc.Models.Workflow.Profiles.FormationSettings") + .WithMany() + .HasForeignKey("FormationSettingsUserId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("WorkingForId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("OrganizationAddressId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("DoesCode"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + } + } +} diff --git a/Yavsc/Migrations/20170228145057_actionName.cs b/Yavsc/Migrations/20170228145057_actionName.cs new file mode 100644 index 00000000..6ce1b32c --- /dev/null +++ b/Yavsc/Migrations/20170228145057_actionName.cs @@ -0,0 +1,569 @@ +using Microsoft.Data.Entity.Migrations; + +namespace Yavsc.Migrations +{ + public partial class actionName : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropColumn(name: "Action", table: "CommandForm"); + migrationBuilder.AddColumn( + name: "ActionName", + table: "CommandForm", + nullable: true); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropColumn(name: "ActionName", table: "CommandForm"); + migrationBuilder.AddColumn( + name: "Action", + table: "CommandForm", + nullable: true); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs index f38231cd..2993b2c8 100644 --- a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs @@ -944,7 +944,7 @@ namespace Yavsc.Migrations b.Property("Id") .ValueGeneratedOnAdd(); - b.Property("Action"); + b.Property("ActionName"); b.Property("ActivityCode") .IsRequired(); diff --git a/Yavsc/Models/Haircut/HairPrestation.cs b/Yavsc/Models/Haircut/HairPrestation.cs index b7ca0abb..dbdfc680 100644 --- a/Yavsc/Models/Haircut/HairPrestation.cs +++ b/Yavsc/Models/Haircut/HairPrestation.cs @@ -7,6 +7,10 @@ namespace Yavsc.Models.Haircut { public class HairPrestation { + // Homme ou enfant => Coupe seule + // Couleur => Shampoing + // Forfaits : Coupe - Technique + [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long Id { get; set; } diff --git a/Yavsc/Models/Workflow/CommandForm.cs b/Yavsc/Models/Workflow/CommandForm.cs index de9687d2..15e769e5 100644 --- a/Yavsc/Models/Workflow/CommandForm.cs +++ b/Yavsc/Models/Workflow/CommandForm.cs @@ -10,7 +10,7 @@ namespace Yavsc.Models.Workflow [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long Id { get; set; } - public string Action { get; set; } + public string ActionName { get; set; } public string Title { get; set; } diff --git a/Yavsc/ViewModels/Haircut/HairCutView.cs b/Yavsc/ViewModels/Haircut/HairCutView.cs index feb494b8..7d96f750 100644 --- a/Yavsc/ViewModels/Haircut/HairCutView.cs +++ b/Yavsc/ViewModels/Haircut/HairCutView.cs @@ -1,4 +1,3 @@ -using System.Collections.Generic; using Yavsc.Models.Haircut; using Yavsc.Models.Workflow; @@ -6,7 +5,7 @@ namespace Yavsc.ViewModels.Haircut { public class HairCutView { - public List HairBrushers { get; set; } + public PerformerProfile HairBrusher { get; set; } public HairPrestation Topic { get; set; } } diff --git a/Yavsc/Views/CommandForms/Create.cshtml b/Yavsc/Views/CommandForms/Create.cshtml index e023487f..b249af8c 100644 --- a/Yavsc/Views/CommandForms/Create.cshtml +++ b/Yavsc/Views/CommandForms/Create.cshtml @@ -18,9 +18,9 @@
- +
- +
diff --git a/Yavsc/Views/CommandForms/Details.cshtml b/Yavsc/Views/CommandForms/Details.cshtml index f68b8b99..0b5fa45d 100644 --- a/Yavsc/Views/CommandForms/Details.cshtml +++ b/Yavsc/Views/CommandForms/Details.cshtml @@ -16,6 +16,12 @@
@Html.DisplayFor(model => model.Title)
+
+ @Html.DisplayNameFor(model => model.ActionName) +
+
+ @Html.DisplayFor(model => model.ActionName) +

diff --git a/Yavsc/Views/CommandForms/Edit.cshtml b/Yavsc/Views/CommandForms/Edit.cshtml index 92a02c57..786c950a 100644 --- a/Yavsc/Views/CommandForms/Edit.cshtml +++ b/Yavsc/Views/CommandForms/Edit.cshtml @@ -17,20 +17,20 @@

- +
- +
- +
- +
diff --git a/Yavsc/Views/CommandForms/Index.cshtml b/Yavsc/Views/CommandForms/Index.cshtml index b8d02526..d02f2a43 100644 --- a/Yavsc/Views/CommandForms/Index.cshtml +++ b/Yavsc/Views/CommandForms/Index.cshtml @@ -14,6 +14,9 @@ @Html.DisplayNameFor(model => model.Title) + + @Html.DisplayNameFor(model => model.ActionName) + @@ -22,6 +25,9 @@ @Html.DisplayFor(modelItem => item.Title) + + @Html.DisplayFor(modelItem => item.ActionName) + Edit | Details | diff --git a/Yavsc/Views/FrontOffice/HairCut.cshtml b/Yavsc/Views/FrontOffice/HairCut.cshtml index 7ef820e8..132a5957 100644 --- a/Yavsc/Views/FrontOffice/HairCut.cshtml +++ b/Yavsc/Views/FrontOffice/HairCut.cshtml @@ -1,86 +1,18 @@ -@model HairCutView +@model IEnumerable @{ - ViewData["Title"] = $"{ViewBag.Activity.Name}: Votre commande"; + ViewData["Title"] = "Les profiles - " + (ViewBag.Activity?.Name ?? SR["Any"]); } +

@ViewData["Title"]

@ViewBag.Activity.Description - - @Html.DisplayFor(m=>m) -
- - -
-

@ViewData["Title"]

-
-
-
- -
- - -
-
-
- -
- - -
-
-
-
-
- - -
-
-
-
- -
- - -
-
-
- -
- - -
-
-
- -
- -@foreach (HairTaint color in ViewBag.HairTaints) { - - } - - -
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
- +@foreach (var profile in Model) { +
+ @Html.DisplayFor(m=>profile) + + - - + + +} + diff --git a/Yavsc/Views/HairCutCommand/HairCut.cshtml b/Yavsc/Views/HairCutCommand/HairCut.cshtml new file mode 100644 index 00000000..0d263923 --- /dev/null +++ b/Yavsc/Views/HairCutCommand/HairCut.cshtml @@ -0,0 +1,89 @@ +@model HairCutView + +@{ + ViewData["Title"] = $"{ViewBag.Activity.Name}: Votre commande"; +} +@ViewBag.Activity.Description + + + @Html.DisplayFor(m=>m) +
+ + +
+

@ViewData["Title"]

+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ +@foreach (HairTaint color in ViewBag.HairTaints) { + + } + + +
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+ + + + +
+ +
diff --git a/Yavsc/Views/Home/Index.cshtml b/Yavsc/Views/Home/Index.cshtml index 1a0cb253..22327c0d 100755 --- a/Yavsc/Views/Home/Index.cshtml +++ b/Yavsc/Views/Home/Index.cshtml @@ -44,7 +44,7 @@ } @foreach (var frm in act.Forms) { - + @frm.Title } diff --git a/Yavsc/wwwroot/css/site.css b/Yavsc/wwwroot/css/site.css index 7ae03728..dcb256ba 100755 --- a/Yavsc/wwwroot/css/site.css +++ b/Yavsc/wwwroot/css/site.css @@ -109,11 +109,11 @@ a:hover { .carousel-indicators { position: absolute; z-index: 15; - padding-left: 0; + padding: 0; text-align: center; list-style: none; - bottom: 1em; - top: initial; + top: .1em; + height: 1em; } @-webkit-keyframes mymove { diff --git a/YavscLib/ICommandForm.cs b/YavscLib/ICommandForm.cs index 3727edf2..2b50e082 100644 --- a/YavscLib/ICommandForm.cs +++ b/YavscLib/ICommandForm.cs @@ -3,7 +3,7 @@ namespace YavscLib public interface ICommandForm { long Id { get; set; } - string Action { get; set; } + string ActionName { get; set; } string Title { get; set; } string ActivityCode { get; set; } From 8899266ef550fb7c31aa12bf43146598dc25f3b7 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 11:35:38 +0100 Subject: [PATCH 09/19] formulaire de commande coiffure --- Yavsc/Controllers/HairCutCommandController.cs | 11 +- ...01124608_brusherActiondistance.Designer.cs | 1398 ++++++++++++++++ .../20170301124608_brusherActiondistance.cs | 567 +++++++ .../20170301132531_manbrushing.Designer.cs | 1400 ++++++++++++++++ .../Migrations/20170301132531_manbrushing.cs | 567 +++++++ .../20170301211317_folding.Designer.cs | 1406 +++++++++++++++++ Yavsc/Migrations/20170301211317_folding.cs | 579 +++++++ .../ApplicationDbContextModelSnapshot.cs | 12 + Yavsc/Models/Haircut/BrusherProfile.cs | 35 +- Yavsc/Models/Haircut/HairPrestation.cs | 3 +- Yavsc/Models/Workflow/PerformerProfile.cs | 7 +- Yavsc/Views/BrusherProfile/Edit.cshtml | 37 + Yavsc/Views/BrusherProfile/Index.cshtml | 50 + .../BrusherProfileScript.cshtml | 27 + Yavsc/Views/HairCutCommand/HairCut.cshtml | 233 ++- .../DisplayTemplates/PerformerProfile.cshtml | 8 +- Yavsc/Views/Shared/Profiles.cshtml | 18 + Yavsc/wwwroot/css/bootstrap.css | 8 +- 18 files changed, 6302 insertions(+), 64 deletions(-) create mode 100644 Yavsc/Migrations/20170301124608_brusherActiondistance.Designer.cs create mode 100644 Yavsc/Migrations/20170301124608_brusherActiondistance.cs create mode 100644 Yavsc/Migrations/20170301132531_manbrushing.Designer.cs create mode 100644 Yavsc/Migrations/20170301132531_manbrushing.cs create mode 100644 Yavsc/Migrations/20170301211317_folding.Designer.cs create mode 100644 Yavsc/Migrations/20170301211317_folding.cs create mode 100644 Yavsc/Views/HairCutCommand/BrusherProfileScript.cshtml create mode 100644 Yavsc/Views/Shared/Profiles.cshtml diff --git a/Yavsc/Controllers/HairCutCommandController.cs b/Yavsc/Controllers/HairCutCommandController.cs index b93f2e7b..2d603259 100644 --- a/Yavsc/Controllers/HairCutCommandController.cs +++ b/Yavsc/Controllers/HairCutCommandController.cs @@ -116,7 +116,7 @@ namespace Yavsc.Controllers } - [AllowAnonymous] + [AllowAnonymous,ValidateAntiForgeryToken] public ActionResult HairCut(string performerId, string activityCode) { HairPrestation pPrestation=null; @@ -132,12 +132,19 @@ namespace Yavsc.Controllers ViewBag.Activity = _context.Activities.First(a => a.Code == activityCode); ViewBag.Gender = EnumExtensions.GetSelectList(typeof(HairCutGenders),_localizer); ViewBag.HairDressings = EnumExtensions.GetSelectList(typeof(HairDressings),_localizer); + ViewBag.ColorsClass = ( pPrestation.Tech == HairTechnos.Color + || pPrestation.Tech == HairTechnos.Mech ) ? "":"hidden"; + ViewBag.TechClass = ( pPrestation.Gender == HairCutGenders.Women ) ? "":"hidden"; + ViewData["PerfPrefs"] = _context.BrusherProfile.Single(p=>p.UserId == performerId); var result = new HairCutView { - HairBrusher = _context.Performers.Single(p=>p.PerformerId == performerId), + HairBrusher = _context.Performers.Include( + p=>p.Performer + ).Single(p=>p.PerformerId == performerId), Topic = pPrestation } ; return View(result); } + [HttpPost, Authorize] [ValidateAntiForgeryToken] public async Task CreateHairMultiCutQuery(HairMultiCutQuery command) diff --git a/Yavsc/Migrations/20170301124608_brusherActiondistance.Designer.cs b/Yavsc/Migrations/20170301124608_brusherActiondistance.Designer.cs new file mode 100644 index 00000000..dcb9ce95 --- /dev/null +++ b/Yavsc/Migrations/20170301124608_brusherActiondistance.Designer.cs @@ -0,0 +1,1398 @@ +using System; +using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; +using Yavsc.Models; + +namespace Yavsc.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20170301124608_brusherActiondistance")] + partial class brusherActiondistance + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "7.0.0-rc1-16348"); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b => + { + b.Property("Id"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .HasAnnotation("Relational:Name", "RoleNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasAnnotation("Relational:TableName", "AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasAnnotation("Relational:TableName", "AspNetUserRoles"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.Property("CircleId"); + + b.Property("BlogPostId"); + + b.HasKey("CircleId", "BlogPostId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.Property("UserId"); + + b.Property("ContactCredits"); + + b.Property("Credits"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("Avatar") + .IsRequired() + .HasAnnotation("MaxLength", 512) + .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("BankInfoId"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("DedicatedGoogleCalendar"); + + b.Property("DiskQuota") + .HasAnnotation("Relational:DefaultValue", "524288000") + .HasAnnotation("Relational:DefaultValueType", "System.Int64"); + + b.Property("DiskUsage"); + + b.Property("Email") + .HasAnnotation("MaxLength", 256); + + b.Property("EmailConfirmed"); + + b.Property("FullName") + .HasAnnotation("MaxLength", 512); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedUserName") + .HasAnnotation("MaxLength", 256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("PostalAddressId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasAnnotation("Relational:Name", "EmailIndex"); + + b.HasIndex("NormalizedUserName") + .HasAnnotation("Relational:Name", "UserNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetUsers"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.Client", b => + { + b.Property("Id"); + + b.Property("Active"); + + b.Property("DisplayName"); + + b.Property("LogoutRedirectUri") + .HasAnnotation("MaxLength", 100); + + b.Property("RedirectUri"); + + b.Property("RefreshTokenLifeTime"); + + b.Property("Secret"); + + b.Property("Type"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b => + { + b.Property("Id"); + + b.Property("ClientId") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.Property("ExpiresUtc"); + + b.Property("IssuedUtc"); + + b.Property("ProtectedTicket") + .IsRequired(); + + b.Property("Subject") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BalanceId") + .IsRequired(); + + b.Property("ExecDate"); + + b.Property("Impact"); + + b.Property("Reason") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccountNumber") + .HasAnnotation("MaxLength", 15); + + b.Property("BIC") + .HasAnnotation("MaxLength", 15); + + b.Property("BankCode") + .HasAnnotation("MaxLength", 5); + + b.Property("BankedKey"); + + b.Property("IBAN") + .HasAnnotation("MaxLength", 33); + + b.Property("WicketCode") + .HasAnnotation("MaxLength", 5); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Count"); + + b.Property("Description") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("EstimateId"); + + b.Property("EstimateTemplateId"); + + b.Property("UnitaryCost"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AttachedFilesString"); + + b.Property("AttachedGraphicsString"); + + b.Property("ClientId") + .IsRequired(); + + b.Property("ClientValidationDate"); + + b.Property("CommandId"); + + b.Property("CommandType"); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("ProviderValidationDate"); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b => + { + b.Property("SIREN"); + + b.HasKey("SIREN"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId"); + + b.Property("Content"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("Title"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.Property("ConnectionId"); + + b.Property("ApplicationUserId"); + + b.Property("Connected"); + + b.Property("UserAgent"); + + b.HasKey("ConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Drawing.Color", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Blue"); + + b.Property("Green"); + + b.Property("Name"); + + b.Property("Red"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Forms.Form", b => + { + b.Property("Id"); + + b.Property("Summary"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.Property("UserId"); + + b.Property("ActionDistance"); + + b.Property("CarePrice"); + + b.Property("EndOfTheDay"); + + b.Property("HalfBalayagePrice"); + + b.Property("HalfBrushingPrice"); + + b.Property("HalfColorPrice"); + + b.Property("HalfDefrisPrice"); + + b.Property("HalfMechPrice"); + + b.Property("HalfMultiColorPrice"); + + b.Property("HalfPermanentPrice"); + + b.Property("KidCutPrice"); + + b.Property("LongBalayagePrice"); + + b.Property("LongBrushingPrice"); + + b.Property("LongColorPrice"); + + b.Property("LongDefrisPrice"); + + b.Property("LongMechPrice"); + + b.Property("LongMultiColorPrice"); + + b.Property("LongPermanentPrice"); + + b.Property("ManCutPrice"); + + b.Property("ShampooPrice"); + + b.Property("ShortBalayagePrice"); + + b.Property("ShortBrushingPrice"); + + b.Property("ShortColorPrice"); + + b.Property("ShortDefrisPrice"); + + b.Property("ShortMechPrice"); + + b.Property("ShortMultiColorPrice"); + + b.Property("ShortPermanentPrice"); + + b.Property("StartOfTheDay"); + + b.Property("WomenHalfCutPrice"); + + b.Property("WomenLongCutPrice"); + + b.Property("WomenShortCutPrice"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("HairMultiCutQueryId"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Brand"); + + b.Property("ColorId"); + + b.Property("HairPrestationId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.Property("DeviceId"); + + b.Property("DeclarationDate") + .ValueGeneratedOnAdd() + .HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP"); + + b.Property("DeviceOwnerId"); + + b.Property("GCMRegistrationId") + .IsRequired(); + + b.Property("Model"); + + b.Property("Platform"); + + b.Property("Version"); + + b.HasKey("DeviceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Depth"); + + b.Property("Description"); + + b.Property("Height"); + + b.Property("Name"); + + b.Property("Price"); + + b.Property("Public"); + + b.Property("Weight"); + + b.Property("Width"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ContextId"); + + b.Property("Description"); + + b.Property("Name"); + + b.Property("Public"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.Property("UserId"); + + b.Property("Avatar"); + + b.Property("BillingAddressId"); + + b.Property("EMail"); + + b.Property("Phone"); + + b.Property("UserName"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.Property("UserId"); + + b.Property("NotificationId"); + + b.HasKey("UserId", "NotificationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("body") + .IsRequired(); + + b.Property("click_action") + .IsRequired(); + + b.Property("color"); + + b.Property("icon"); + + b.Property("sound"); + + b.Property("tag"); + + b.Property("title") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Instrument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.Property("OwnerProfileId"); + + b.Property("DjSettingsUserId"); + + b.Property("GeneralSettingsUserId"); + + b.Property("Rate"); + + b.Property("TendencyId"); + + b.HasKey("OwnerProfileId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalTendency", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.DjSettings", b => + { + b.Property("UserId"); + + b.Property("SoundCloudId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.GeneralSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.Property("InstrumentId"); + + b.Property("UserId"); + + b.HasKey("InstrumentId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b => + { + b.Property("UserId"); + + b.Property("AccessToken"); + + b.Property("Expiration"); + + b.Property("ExpiresIn"); + + b.Property("RefreshToken"); + + b.Property("TokenType"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ApplicationUserId"); + + b.Property("Name"); + + b.Property("OwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.Property("MemberId"); + + b.Property("CircleId"); + + b.HasKey("MemberId", "CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.Property("OwnerId"); + + b.Property("UserId"); + + b.Property("ApplicationUserId"); + + b.HasKey("OwnerId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Address") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("Latitude"); + + b.Property("Longitude"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.LocationType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.Property("PostId"); + + b.Property("TagId"); + + b.HasKey("PostId", "TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("Rate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.Property("Code") + .HasAnnotation("MaxLength", 512); + + b.Property("ActorDenomination"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("Hidden"); + + b.Property("ModeratorGroupName"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("ParentCode") + .HasAnnotation("MaxLength", 512); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("SettingsClassName"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActionName"); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormationSettingsUserId"); + + b.Property("PerformerId"); + + b.Property("WorkingForId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.Property("PerformerId"); + + b.Property("AcceptNotifications"); + + b.Property("AcceptPublicContact"); + + b.Property("Active"); + + b.Property("MaxDailyCost"); + + b.Property("MinDailyCost"); + + b.Property("OrganizationAddressId"); + + b.Property("Rate"); + + b.Property("SIREN") + .IsRequired() + .HasAnnotation("MaxLength", 14); + + b.Property("UseGeoLocalizationToReduceDistanceWithClients"); + + b.Property("WebSite"); + + b.HasKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Profiles.FormationSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("LocationTypeId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("BlogPostId"); + + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithOne() + .HasForeignKey("Yavsc.Models.AccountBalance", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.HasOne("Yavsc.Models.Bank.BankIdentity") + .WithMany() + .HasForeignKey("BankInfoId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("PostalAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.HasOne("Yavsc.Models.AccountBalance") + .WithMany() + .HasForeignKey("BalanceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.HasOne("Yavsc.Models.Billing.Estimate") + .WithMany() + .HasForeignKey("EstimateId"); + + b.HasOne("Yavsc.Models.Billing.EstimateTemplate") + .WithMany() + .HasForeignKey("EstimateTemplateId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Workflow.RdvQuery") + .WithMany() + .HasForeignKey("CommandId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("HairMultiCutQueryId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.HasOne("Yavsc.Models.Drawing.Color") + .WithMany() + .HasForeignKey("ColorId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("HairPrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("DeviceOwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ContextId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("BillingAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.HasOne("Yavsc.Models.Messaging.Notification") + .WithMany() + .HasForeignKey("NotificationId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.HasOne("Yavsc.Models.Musical.Profiles.DjSettings") + .WithMany() + .HasForeignKey("DjSettingsUserId"); + + b.HasOne("Yavsc.Models.Musical.Profiles.GeneralSettings") + .WithMany() + .HasForeignKey("GeneralSettingsUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.HasOne("Yavsc.Models.Musical.Instrument") + .WithMany() + .HasForeignKey("InstrumentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("MemberId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("PostId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ParentCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.HasOne("Yavsc.Models.Workflow.Profiles.FormationSettings") + .WithMany() + .HasForeignKey("FormationSettingsUserId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("WorkingForId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("OrganizationAddressId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("DoesCode"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + } + } +} diff --git a/Yavsc/Migrations/20170301124608_brusherActiondistance.cs b/Yavsc/Migrations/20170301124608_brusherActiondistance.cs new file mode 100644 index 00000000..ee86f502 --- /dev/null +++ b/Yavsc/Migrations/20170301124608_brusherActiondistance.cs @@ -0,0 +1,567 @@ +using System; +using System.Collections.Generic; +using Microsoft.Data.Entity.Migrations; + +namespace Yavsc.Migrations +{ + public partial class brusherActiondistance : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.AddColumn( + name: "ActionDistance", + table: "BrusherProfile", + nullable: false, + defaultValue: 0); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropColumn(name: "ActionDistance", table: "BrusherProfile"); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/Yavsc/Migrations/20170301132531_manbrushing.Designer.cs b/Yavsc/Migrations/20170301132531_manbrushing.Designer.cs new file mode 100644 index 00000000..48a4e8d9 --- /dev/null +++ b/Yavsc/Migrations/20170301132531_manbrushing.Designer.cs @@ -0,0 +1,1400 @@ +using System; +using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; +using Yavsc.Models; + +namespace Yavsc.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20170301132531_manbrushing")] + partial class manbrushing + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "7.0.0-rc1-16348"); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b => + { + b.Property("Id"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .HasAnnotation("Relational:Name", "RoleNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasAnnotation("Relational:TableName", "AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasAnnotation("Relational:TableName", "AspNetUserRoles"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.Property("CircleId"); + + b.Property("BlogPostId"); + + b.HasKey("CircleId", "BlogPostId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.Property("UserId"); + + b.Property("ContactCredits"); + + b.Property("Credits"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("Avatar") + .IsRequired() + .HasAnnotation("MaxLength", 512) + .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("BankInfoId"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("DedicatedGoogleCalendar"); + + b.Property("DiskQuota") + .HasAnnotation("Relational:DefaultValue", "524288000") + .HasAnnotation("Relational:DefaultValueType", "System.Int64"); + + b.Property("DiskUsage"); + + b.Property("Email") + .HasAnnotation("MaxLength", 256); + + b.Property("EmailConfirmed"); + + b.Property("FullName") + .HasAnnotation("MaxLength", 512); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedUserName") + .HasAnnotation("MaxLength", 256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("PostalAddressId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasAnnotation("Relational:Name", "EmailIndex"); + + b.HasIndex("NormalizedUserName") + .HasAnnotation("Relational:Name", "UserNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetUsers"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.Client", b => + { + b.Property("Id"); + + b.Property("Active"); + + b.Property("DisplayName"); + + b.Property("LogoutRedirectUri") + .HasAnnotation("MaxLength", 100); + + b.Property("RedirectUri"); + + b.Property("RefreshTokenLifeTime"); + + b.Property("Secret"); + + b.Property("Type"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b => + { + b.Property("Id"); + + b.Property("ClientId") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.Property("ExpiresUtc"); + + b.Property("IssuedUtc"); + + b.Property("ProtectedTicket") + .IsRequired(); + + b.Property("Subject") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BalanceId") + .IsRequired(); + + b.Property("ExecDate"); + + b.Property("Impact"); + + b.Property("Reason") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccountNumber") + .HasAnnotation("MaxLength", 15); + + b.Property("BIC") + .HasAnnotation("MaxLength", 15); + + b.Property("BankCode") + .HasAnnotation("MaxLength", 5); + + b.Property("BankedKey"); + + b.Property("IBAN") + .HasAnnotation("MaxLength", 33); + + b.Property("WicketCode") + .HasAnnotation("MaxLength", 5); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Count"); + + b.Property("Description") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("EstimateId"); + + b.Property("EstimateTemplateId"); + + b.Property("UnitaryCost"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AttachedFilesString"); + + b.Property("AttachedGraphicsString"); + + b.Property("ClientId") + .IsRequired(); + + b.Property("ClientValidationDate"); + + b.Property("CommandId"); + + b.Property("CommandType"); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("ProviderValidationDate"); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b => + { + b.Property("SIREN"); + + b.HasKey("SIREN"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId"); + + b.Property("Content"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("Title"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.Property("ConnectionId"); + + b.Property("ApplicationUserId"); + + b.Property("Connected"); + + b.Property("UserAgent"); + + b.HasKey("ConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Drawing.Color", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Blue"); + + b.Property("Green"); + + b.Property("Name"); + + b.Property("Red"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Forms.Form", b => + { + b.Property("Id"); + + b.Property("Summary"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.Property("UserId"); + + b.Property("ActionDistance"); + + b.Property("CarePrice"); + + b.Property("EndOfTheDay"); + + b.Property("HalfBalayagePrice"); + + b.Property("HalfBrushingPrice"); + + b.Property("HalfColorPrice"); + + b.Property("HalfDefrisPrice"); + + b.Property("HalfMechPrice"); + + b.Property("HalfMultiColorPrice"); + + b.Property("HalfPermanentPrice"); + + b.Property("KidCutPrice"); + + b.Property("LongBalayagePrice"); + + b.Property("LongBrushingPrice"); + + b.Property("LongColorPrice"); + + b.Property("LongDefrisPrice"); + + b.Property("LongMechPrice"); + + b.Property("LongMultiColorPrice"); + + b.Property("LongPermanentPrice"); + + b.Property("ManBrushPrice"); + + b.Property("ManCutPrice"); + + b.Property("ShampooPrice"); + + b.Property("ShortBalayagePrice"); + + b.Property("ShortBrushingPrice"); + + b.Property("ShortColorPrice"); + + b.Property("ShortDefrisPrice"); + + b.Property("ShortMechPrice"); + + b.Property("ShortMultiColorPrice"); + + b.Property("ShortPermanentPrice"); + + b.Property("StartOfTheDay"); + + b.Property("WomenHalfCutPrice"); + + b.Property("WomenLongCutPrice"); + + b.Property("WomenShortCutPrice"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("HairMultiCutQueryId"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Brand"); + + b.Property("ColorId"); + + b.Property("HairPrestationId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.Property("DeviceId"); + + b.Property("DeclarationDate") + .ValueGeneratedOnAdd() + .HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP"); + + b.Property("DeviceOwnerId"); + + b.Property("GCMRegistrationId") + .IsRequired(); + + b.Property("Model"); + + b.Property("Platform"); + + b.Property("Version"); + + b.HasKey("DeviceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Depth"); + + b.Property("Description"); + + b.Property("Height"); + + b.Property("Name"); + + b.Property("Price"); + + b.Property("Public"); + + b.Property("Weight"); + + b.Property("Width"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ContextId"); + + b.Property("Description"); + + b.Property("Name"); + + b.Property("Public"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.Property("UserId"); + + b.Property("Avatar"); + + b.Property("BillingAddressId"); + + b.Property("EMail"); + + b.Property("Phone"); + + b.Property("UserName"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.Property("UserId"); + + b.Property("NotificationId"); + + b.HasKey("UserId", "NotificationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("body") + .IsRequired(); + + b.Property("click_action") + .IsRequired(); + + b.Property("color"); + + b.Property("icon"); + + b.Property("sound"); + + b.Property("tag"); + + b.Property("title") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Instrument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.Property("OwnerProfileId"); + + b.Property("DjSettingsUserId"); + + b.Property("GeneralSettingsUserId"); + + b.Property("Rate"); + + b.Property("TendencyId"); + + b.HasKey("OwnerProfileId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalTendency", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.DjSettings", b => + { + b.Property("UserId"); + + b.Property("SoundCloudId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.GeneralSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.Property("InstrumentId"); + + b.Property("UserId"); + + b.HasKey("InstrumentId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b => + { + b.Property("UserId"); + + b.Property("AccessToken"); + + b.Property("Expiration"); + + b.Property("ExpiresIn"); + + b.Property("RefreshToken"); + + b.Property("TokenType"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ApplicationUserId"); + + b.Property("Name"); + + b.Property("OwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.Property("MemberId"); + + b.Property("CircleId"); + + b.HasKey("MemberId", "CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.Property("OwnerId"); + + b.Property("UserId"); + + b.Property("ApplicationUserId"); + + b.HasKey("OwnerId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Address") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("Latitude"); + + b.Property("Longitude"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.LocationType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.Property("PostId"); + + b.Property("TagId"); + + b.HasKey("PostId", "TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("Rate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.Property("Code") + .HasAnnotation("MaxLength", 512); + + b.Property("ActorDenomination"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("Hidden"); + + b.Property("ModeratorGroupName"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("ParentCode") + .HasAnnotation("MaxLength", 512); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("SettingsClassName"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActionName"); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormationSettingsUserId"); + + b.Property("PerformerId"); + + b.Property("WorkingForId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.Property("PerformerId"); + + b.Property("AcceptNotifications"); + + b.Property("AcceptPublicContact"); + + b.Property("Active"); + + b.Property("MaxDailyCost"); + + b.Property("MinDailyCost"); + + b.Property("OrganizationAddressId"); + + b.Property("Rate"); + + b.Property("SIREN") + .IsRequired() + .HasAnnotation("MaxLength", 14); + + b.Property("UseGeoLocalizationToReduceDistanceWithClients"); + + b.Property("WebSite"); + + b.HasKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Profiles.FormationSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("LocationTypeId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("BlogPostId"); + + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithOne() + .HasForeignKey("Yavsc.Models.AccountBalance", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.HasOne("Yavsc.Models.Bank.BankIdentity") + .WithMany() + .HasForeignKey("BankInfoId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("PostalAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.HasOne("Yavsc.Models.AccountBalance") + .WithMany() + .HasForeignKey("BalanceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.HasOne("Yavsc.Models.Billing.Estimate") + .WithMany() + .HasForeignKey("EstimateId"); + + b.HasOne("Yavsc.Models.Billing.EstimateTemplate") + .WithMany() + .HasForeignKey("EstimateTemplateId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Workflow.RdvQuery") + .WithMany() + .HasForeignKey("CommandId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("HairMultiCutQueryId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.HasOne("Yavsc.Models.Drawing.Color") + .WithMany() + .HasForeignKey("ColorId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("HairPrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("DeviceOwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ContextId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("BillingAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.HasOne("Yavsc.Models.Messaging.Notification") + .WithMany() + .HasForeignKey("NotificationId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.HasOne("Yavsc.Models.Musical.Profiles.DjSettings") + .WithMany() + .HasForeignKey("DjSettingsUserId"); + + b.HasOne("Yavsc.Models.Musical.Profiles.GeneralSettings") + .WithMany() + .HasForeignKey("GeneralSettingsUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.HasOne("Yavsc.Models.Musical.Instrument") + .WithMany() + .HasForeignKey("InstrumentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("MemberId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("PostId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ParentCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.HasOne("Yavsc.Models.Workflow.Profiles.FormationSettings") + .WithMany() + .HasForeignKey("FormationSettingsUserId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("WorkingForId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("OrganizationAddressId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("DoesCode"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + } + } +} diff --git a/Yavsc/Migrations/20170301132531_manbrushing.cs b/Yavsc/Migrations/20170301132531_manbrushing.cs new file mode 100644 index 00000000..cd3c80ab --- /dev/null +++ b/Yavsc/Migrations/20170301132531_manbrushing.cs @@ -0,0 +1,567 @@ +using System; +using System.Collections.Generic; +using Microsoft.Data.Entity.Migrations; + +namespace Yavsc.Migrations +{ + public partial class manbrushing : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.AddColumn( + name: "ManBrushPrice", + table: "BrusherProfile", + nullable: false, + defaultValue: 0m); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropColumn(name: "ManBrushPrice", table: "BrusherProfile"); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/Yavsc/Migrations/20170301211317_folding.Designer.cs b/Yavsc/Migrations/20170301211317_folding.Designer.cs new file mode 100644 index 00000000..5d7f7b04 --- /dev/null +++ b/Yavsc/Migrations/20170301211317_folding.Designer.cs @@ -0,0 +1,1406 @@ +using System; +using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; +using Yavsc.Models; + +namespace Yavsc.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20170301211317_folding")] + partial class folding + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "7.0.0-rc1-16348"); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b => + { + b.Property("Id"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .HasAnnotation("Relational:Name", "RoleNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasAnnotation("Relational:TableName", "AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasAnnotation("Relational:TableName", "AspNetUserRoles"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.Property("CircleId"); + + b.Property("BlogPostId"); + + b.HasKey("CircleId", "BlogPostId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.Property("UserId"); + + b.Property("ContactCredits"); + + b.Property("Credits"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("Avatar") + .IsRequired() + .HasAnnotation("MaxLength", 512) + .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("BankInfoId"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("DedicatedGoogleCalendar"); + + b.Property("DiskQuota") + .HasAnnotation("Relational:DefaultValue", "524288000") + .HasAnnotation("Relational:DefaultValueType", "System.Int64"); + + b.Property("DiskUsage"); + + b.Property("Email") + .HasAnnotation("MaxLength", 256); + + b.Property("EmailConfirmed"); + + b.Property("FullName") + .HasAnnotation("MaxLength", 512); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedUserName") + .HasAnnotation("MaxLength", 256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("PostalAddressId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasAnnotation("Relational:Name", "EmailIndex"); + + b.HasIndex("NormalizedUserName") + .HasAnnotation("Relational:Name", "UserNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetUsers"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.Client", b => + { + b.Property("Id"); + + b.Property("Active"); + + b.Property("DisplayName"); + + b.Property("LogoutRedirectUri") + .HasAnnotation("MaxLength", 100); + + b.Property("RedirectUri"); + + b.Property("RefreshTokenLifeTime"); + + b.Property("Secret"); + + b.Property("Type"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b => + { + b.Property("Id"); + + b.Property("ClientId") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.Property("ExpiresUtc"); + + b.Property("IssuedUtc"); + + b.Property("ProtectedTicket") + .IsRequired(); + + b.Property("Subject") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BalanceId") + .IsRequired(); + + b.Property("ExecDate"); + + b.Property("Impact"); + + b.Property("Reason") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccountNumber") + .HasAnnotation("MaxLength", 15); + + b.Property("BIC") + .HasAnnotation("MaxLength", 15); + + b.Property("BankCode") + .HasAnnotation("MaxLength", 5); + + b.Property("BankedKey"); + + b.Property("IBAN") + .HasAnnotation("MaxLength", 33); + + b.Property("WicketCode") + .HasAnnotation("MaxLength", 5); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Count"); + + b.Property("Description") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("EstimateId"); + + b.Property("EstimateTemplateId"); + + b.Property("UnitaryCost"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AttachedFilesString"); + + b.Property("AttachedGraphicsString"); + + b.Property("ClientId") + .IsRequired(); + + b.Property("ClientValidationDate"); + + b.Property("CommandId"); + + b.Property("CommandType"); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("ProviderValidationDate"); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b => + { + b.Property("SIREN"); + + b.HasKey("SIREN"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId"); + + b.Property("Content"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("Title"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.Property("ConnectionId"); + + b.Property("ApplicationUserId"); + + b.Property("Connected"); + + b.Property("UserAgent"); + + b.HasKey("ConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Drawing.Color", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Blue"); + + b.Property("Green"); + + b.Property("Name"); + + b.Property("Red"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Forms.Form", b => + { + b.Property("Id"); + + b.Property("Summary"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.Property("UserId"); + + b.Property("ActionDistance"); + + b.Property("CarePrice"); + + b.Property("EndOfTheDay"); + + b.Property("HalfBalayagePrice"); + + b.Property("HalfBrushingPrice"); + + b.Property("HalfColorPrice"); + + b.Property("HalfDefrisPrice"); + + b.Property("HalfFoldingPrice"); + + b.Property("HalfMechPrice"); + + b.Property("HalfMultiColorPrice"); + + b.Property("HalfPermanentPrice"); + + b.Property("KidCutPrice"); + + b.Property("LongBalayagePrice"); + + b.Property("LongBrushingPrice"); + + b.Property("LongColorPrice"); + + b.Property("LongDefrisPrice"); + + b.Property("LongFoldingPrice"); + + b.Property("LongMechPrice"); + + b.Property("LongMultiColorPrice"); + + b.Property("LongPermanentPrice"); + + b.Property("ManBrushPrice"); + + b.Property("ManCutPrice"); + + b.Property("ShampooPrice"); + + b.Property("ShortBalayagePrice"); + + b.Property("ShortBrushingPrice"); + + b.Property("ShortColorPrice"); + + b.Property("ShortDefrisPrice"); + + b.Property("ShortFoldingPrice"); + + b.Property("ShortMechPrice"); + + b.Property("ShortMultiColorPrice"); + + b.Property("ShortPermanentPrice"); + + b.Property("StartOfTheDay"); + + b.Property("WomenHalfCutPrice"); + + b.Property("WomenLongCutPrice"); + + b.Property("WomenShortCutPrice"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("HairMultiCutQueryId"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Brand"); + + b.Property("ColorId"); + + b.Property("HairPrestationId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.Property("DeviceId"); + + b.Property("DeclarationDate") + .ValueGeneratedOnAdd() + .HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP"); + + b.Property("DeviceOwnerId"); + + b.Property("GCMRegistrationId") + .IsRequired(); + + b.Property("Model"); + + b.Property("Platform"); + + b.Property("Version"); + + b.HasKey("DeviceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Depth"); + + b.Property("Description"); + + b.Property("Height"); + + b.Property("Name"); + + b.Property("Price"); + + b.Property("Public"); + + b.Property("Weight"); + + b.Property("Width"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ContextId"); + + b.Property("Description"); + + b.Property("Name"); + + b.Property("Public"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.Property("UserId"); + + b.Property("Avatar"); + + b.Property("BillingAddressId"); + + b.Property("EMail"); + + b.Property("Phone"); + + b.Property("UserName"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.Property("UserId"); + + b.Property("NotificationId"); + + b.HasKey("UserId", "NotificationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("body") + .IsRequired(); + + b.Property("click_action") + .IsRequired(); + + b.Property("color"); + + b.Property("icon"); + + b.Property("sound"); + + b.Property("tag"); + + b.Property("title") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Instrument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.Property("OwnerProfileId"); + + b.Property("DjSettingsUserId"); + + b.Property("GeneralSettingsUserId"); + + b.Property("Rate"); + + b.Property("TendencyId"); + + b.HasKey("OwnerProfileId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalTendency", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.DjSettings", b => + { + b.Property("UserId"); + + b.Property("SoundCloudId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.GeneralSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.Property("InstrumentId"); + + b.Property("UserId"); + + b.HasKey("InstrumentId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b => + { + b.Property("UserId"); + + b.Property("AccessToken"); + + b.Property("Expiration"); + + b.Property("ExpiresIn"); + + b.Property("RefreshToken"); + + b.Property("TokenType"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ApplicationUserId"); + + b.Property("Name"); + + b.Property("OwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.Property("MemberId"); + + b.Property("CircleId"); + + b.HasKey("MemberId", "CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.Property("OwnerId"); + + b.Property("UserId"); + + b.Property("ApplicationUserId"); + + b.HasKey("OwnerId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Address") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("Latitude"); + + b.Property("Longitude"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.LocationType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.Property("PostId"); + + b.Property("TagId"); + + b.HasKey("PostId", "TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("Rate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.Property("Code") + .HasAnnotation("MaxLength", 512); + + b.Property("ActorDenomination"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("Hidden"); + + b.Property("ModeratorGroupName"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("ParentCode") + .HasAnnotation("MaxLength", 512); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("SettingsClassName"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActionName"); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormationSettingsUserId"); + + b.Property("PerformerId"); + + b.Property("WorkingForId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.Property("PerformerId"); + + b.Property("AcceptNotifications"); + + b.Property("AcceptPublicContact"); + + b.Property("Active"); + + b.Property("MaxDailyCost"); + + b.Property("MinDailyCost"); + + b.Property("OrganizationAddressId"); + + b.Property("Rate"); + + b.Property("SIREN") + .IsRequired() + .HasAnnotation("MaxLength", 14); + + b.Property("UseGeoLocalizationToReduceDistanceWithClients"); + + b.Property("WebSite"); + + b.HasKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Profiles.FormationSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("LocationTypeId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("BlogPostId"); + + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithOne() + .HasForeignKey("Yavsc.Models.AccountBalance", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.HasOne("Yavsc.Models.Bank.BankIdentity") + .WithMany() + .HasForeignKey("BankInfoId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("PostalAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.HasOne("Yavsc.Models.AccountBalance") + .WithMany() + .HasForeignKey("BalanceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.HasOne("Yavsc.Models.Billing.Estimate") + .WithMany() + .HasForeignKey("EstimateId"); + + b.HasOne("Yavsc.Models.Billing.EstimateTemplate") + .WithMany() + .HasForeignKey("EstimateTemplateId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Workflow.RdvQuery") + .WithMany() + .HasForeignKey("CommandId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("HairMultiCutQueryId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.HasOne("Yavsc.Models.Drawing.Color") + .WithMany() + .HasForeignKey("ColorId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("HairPrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("DeviceOwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ContextId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("BillingAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.HasOne("Yavsc.Models.Messaging.Notification") + .WithMany() + .HasForeignKey("NotificationId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.HasOne("Yavsc.Models.Musical.Profiles.DjSettings") + .WithMany() + .HasForeignKey("DjSettingsUserId"); + + b.HasOne("Yavsc.Models.Musical.Profiles.GeneralSettings") + .WithMany() + .HasForeignKey("GeneralSettingsUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.HasOne("Yavsc.Models.Musical.Instrument") + .WithMany() + .HasForeignKey("InstrumentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("MemberId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("PostId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ParentCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.HasOne("Yavsc.Models.Workflow.Profiles.FormationSettings") + .WithMany() + .HasForeignKey("FormationSettingsUserId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("WorkingForId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("OrganizationAddressId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("DoesCode"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + } + } +} diff --git a/Yavsc/Migrations/20170301211317_folding.cs b/Yavsc/Migrations/20170301211317_folding.cs new file mode 100644 index 00000000..9a57898e --- /dev/null +++ b/Yavsc/Migrations/20170301211317_folding.cs @@ -0,0 +1,579 @@ +using System; +using System.Collections.Generic; +using Microsoft.Data.Entity.Migrations; + +namespace Yavsc.Migrations +{ + public partial class folding : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.AddColumn( + name: "HalfFoldingPrice", + table: "BrusherProfile", + nullable: false, + defaultValue: 0m); + migrationBuilder.AddColumn( + name: "LongFoldingPrice", + table: "BrusherProfile", + nullable: false, + defaultValue: 0m); + migrationBuilder.AddColumn( + name: "ShortFoldingPrice", + table: "BrusherProfile", + nullable: false, + defaultValue: 0m); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropColumn(name: "HalfFoldingPrice", table: "BrusherProfile"); + migrationBuilder.DropColumn(name: "LongFoldingPrice", table: "BrusherProfile"); + migrationBuilder.DropColumn(name: "ShortFoldingPrice", table: "BrusherProfile"); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs index 2993b2c8..de6c5933 100644 --- a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs @@ -1,6 +1,8 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; using Yavsc.Models; namespace Yavsc.Migrations @@ -443,6 +445,8 @@ namespace Yavsc.Migrations { b.Property("UserId"); + b.Property("ActionDistance"); + b.Property("CarePrice"); b.Property("EndOfTheDay"); @@ -455,6 +459,8 @@ namespace Yavsc.Migrations b.Property("HalfDefrisPrice"); + b.Property("HalfFoldingPrice"); + b.Property("HalfMechPrice"); b.Property("HalfMultiColorPrice"); @@ -471,12 +477,16 @@ namespace Yavsc.Migrations b.Property("LongDefrisPrice"); + b.Property("LongFoldingPrice"); + b.Property("LongMechPrice"); b.Property("LongMultiColorPrice"); b.Property("LongPermanentPrice"); + b.Property("ManBrushPrice"); + b.Property("ManCutPrice"); b.Property("ShampooPrice"); @@ -489,6 +499,8 @@ namespace Yavsc.Migrations b.Property("ShortDefrisPrice"); + b.Property("ShortFoldingPrice"); + b.Property("ShortMechPrice"); b.Property("ShortMultiColorPrice"); diff --git a/Yavsc/Models/Haircut/BrusherProfile.cs b/Yavsc/Models/Haircut/BrusherProfile.cs index 24e60a1a..fe47ad46 100644 --- a/Yavsc/Models/Haircut/BrusherProfile.cs +++ b/Yavsc/Models/Haircut/BrusherProfile.cs @@ -11,6 +11,9 @@ namespace Yavsc.Models.Haircut get; set; } + [Display(Name="Rayon d'action"),DisplayFormat(DataFormatString="{0} km")] + + public int ActionDistance { get; set; } /// /// StartOfTheDay In munutes /// @@ -37,6 +40,11 @@ namespace Yavsc.Models.Haircut [Display(Name="Coupe homme"),DisplayFormat(DataFormatString="{0:C}")] public decimal ManCutPrice { get; set; } + [Display(Name="brushing homme"),DisplayFormat(DataFormatString="{0:C}")] + public decimal ManBrushPrice { get; set; } + + + [Display(Name="Coupe enfant"),DisplayFormat(DataFormatString="{0:C}")] public decimal KidCutPrice { get; set; } @@ -49,14 +57,6 @@ namespace Yavsc.Models.Haircut [Display(Name="Brushing cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortBrushingPrice { get; set; } - [Display(Name="Shampoing"),DisplayFormat(DataFormatString="{0:C}")] - - public decimal ShampooPrice { get; set; } - - [Display(Name="Soin"),DisplayFormat(DataFormatString="{0:C}")] - - public decimal CarePrice { get; set; } - [Display(Name="couleur cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] public decimal LongColorPrice { get; set; } @@ -113,5 +113,24 @@ namespace Yavsc.Models.Haircut [Display(Name="balayage cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] public decimal ShortBalayagePrice { get; set; } + + [Display(Name="Mise en plis cheveux longs"),DisplayFormat(DataFormatString="{0:C}")] + + public decimal LongFoldingPrice { get; set; } + + [Display(Name="Mise en plis cheveux mi-longs"),DisplayFormat(DataFormatString="{0:C}")] + public decimal HalfFoldingPrice { get; set; } + + [Display(Name="Mise en plis cheveux courts"),DisplayFormat(DataFormatString="{0:C}")] + public decimal ShortFoldingPrice { get; set; } + + [Display(Name="Shampoing"),DisplayFormat(DataFormatString="{0:C}")] + + public decimal ShampooPrice { get; set; } + + [Display(Name="Soin"),DisplayFormat(DataFormatString="{0:C}")] + + public decimal CarePrice { get; set; } + } } \ No newline at end of file diff --git a/Yavsc/Models/Haircut/HairPrestation.cs b/Yavsc/Models/Haircut/HairPrestation.cs index dbdfc680..0a6a601a 100644 --- a/Yavsc/Models/Haircut/HairPrestation.cs +++ b/Yavsc/Models/Haircut/HairPrestation.cs @@ -9,7 +9,8 @@ namespace Yavsc.Models.Haircut { // Homme ou enfant => Coupe seule // Couleur => Shampoing - // Forfaits : Coupe - Technique + // Forfaits : Coupe + Technique + // pas de coupe => technique [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long Id { get; set; } diff --git a/Yavsc/Models/Workflow/PerformerProfile.cs b/Yavsc/Models/Workflow/PerformerProfile.cs index 31e30233..011c282c 100644 --- a/Yavsc/Models/Workflow/PerformerProfile.cs +++ b/Yavsc/Models/Workflow/PerformerProfile.cs @@ -4,9 +4,10 @@ using System.ComponentModel.DataAnnotations.Schema; namespace Yavsc.Models.Workflow { + using System; using Models.Relationship; using YavscLib.Workflow; - + public class PerformerProfile : IPerformerProfile { [Key] @@ -41,10 +42,12 @@ namespace Yavsc.Models.Workflow [Display(Name="Active")] public bool Active { get; set; } - + + [Obsolete("Implement and use a new specialization setting")] [Display(Name="Maximal Daily Cost (euro/day)"),DisplayFormat(DataFormatString="{0:C}")] public int? MaxDailyCost { get; set; } + [Obsolete("Implement and use a new specialization setting")] [Display(Name="Minimal Daily Cost (euro/day)"),DisplayFormat(DataFormatString="{0:C}")] public int? MinDailyCost { get; set; } diff --git a/Yavsc/Views/BrusherProfile/Edit.cshtml b/Yavsc/Views/BrusherProfile/Edit.cshtml index 15cd9de0..b5d94997 100644 --- a/Yavsc/Views/BrusherProfile/Edit.cshtml +++ b/Yavsc/Views/BrusherProfile/Edit.cshtml @@ -25,6 +25,13 @@
+
+ +
+ + +
+
Grille tarifaire @@ -226,6 +233,36 @@ +
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+ +model.ShortFoldingPrice
diff --git a/Yavsc/Views/BrusherProfile/Index.cshtml b/Yavsc/Views/BrusherProfile/Index.cshtml index 84efd2d1..618382c0 100644 --- a/Yavsc/Views/BrusherProfile/Index.cshtml +++ b/Yavsc/Views/BrusherProfile/Index.cshtml @@ -27,6 +27,12 @@
@Html.Partial("HourFromMinutes", Model.StartOfTheDay)
+
+ @Html.DisplayNameFor(model => model.ActionDistance) +
+
+ @Html.DisplayFor(model => model.ActionDistance) +
@@ -288,7 +294,51 @@
+
+Tarifs mise en plis + +
+ +
+ @Html.DisplayNameFor(model => model.LongFoldingPrice) +
+
+ @Html.DisplayFor(model => model.LongFoldingPrice) +
+
+ @Html.DisplayNameFor(model => model.HalfFoldingPrice) +
+
+ @Html.DisplayFor(model => model.HalfFoldingPrice) +
+ + +
+ @Html.DisplayNameFor(model => model.ShortFoldingPrice) +
+
+ @Html.DisplayFor(model => model.ShortFoldingPrice) +
+ + + +
+
+
+Spécialités homme + + +
+
+ @Html.DisplayNameFor(model => model.ManBrushPrice) +
+
+ @Html.DisplayFor(model => model.ManBrushPrice) +
+ +
+
} else { diff --git a/Yavsc/Views/HairCutCommand/BrusherProfileScript.cshtml b/Yavsc/Views/HairCutCommand/BrusherProfileScript.cshtml new file mode 100644 index 00000000..bf184bb7 --- /dev/null +++ b/Yavsc/Views/HairCutCommand/BrusherProfileScript.cshtml @@ -0,0 +1,27 @@ +@model BrusherProfile + diff --git a/Yavsc/Views/HairCutCommand/HairCut.cshtml b/Yavsc/Views/HairCutCommand/HairCut.cshtml index 0d263923..85b5fa58 100644 --- a/Yavsc/Views/HairCutCommand/HairCut.cshtml +++ b/Yavsc/Views/HairCutCommand/HairCut.cshtml @@ -1,89 +1,242 @@ -@model HairCutView - -@{ - ViewData["Title"] = $"{ViewBag.Activity.Name}: Votre commande"; +@model HairCutView +@{ ViewData["Title"] = $"{ViewBag.Activity.Name}: Votre commande"; } +@await Html.PartialAsync("BrusherProfileScript",ViewData["PerfPrefs"]) +@section scripts { + + +} +@section header { + +} +@ViewBag.Activity.Description + +

@ViewData["Title"]

+@Html.DisplayFor(m=>m.HairBrusher) - @Html.DisplayFor(m=>m) -
+
-

@ViewData["Title"]


- - + +
-
+
- - + +
- + +
-
- -
- - -
-
-
+
- - + + + +
+ +
+ + @foreach (HairTaint color in ViewBag.HairTaints) { + } + + + +
+
+
- +
- -@foreach (HairTaint color in ViewBag.HairTaints) { - - } - - + + +
+
- + +
- + +
- +
- +
- - + + \ No newline at end of file diff --git a/Yavsc/Views/Shared/DisplayTemplates/PerformerProfile.cshtml b/Yavsc/Views/Shared/DisplayTemplates/PerformerProfile.cshtml index 228e8a2b..18ffdb68 100644 --- a/Yavsc/Views/Shared/DisplayTemplates/PerformerProfile.cshtml +++ b/Yavsc/Views/Shared/DisplayTemplates/PerformerProfile.cshtml @@ -5,14 +5,8 @@
  • @SR["Rating"]: @Model.Rate %
  • - @if (Model.MinDailyCost != null) { -
  • @SR["MinDailyCost"]: @Model.MinDailyCost€
  • - } - @if (Model.MinDailyCost != null) { -
  • @SR["MaxDailyCost"]: @Model.MaxDailyCost€
  • - } @if (Model.WebSite!=null) { -
  • @SR["WebSite"]: @Model.WebSite
  • +
  • @SR["WebSite"]: @Model.WebSite
  • }
diff --git a/Yavsc/Views/Shared/Profiles.cshtml b/Yavsc/Views/Shared/Profiles.cshtml new file mode 100644 index 00000000..888e734b --- /dev/null +++ b/Yavsc/Views/Shared/Profiles.cshtml @@ -0,0 +1,18 @@ +@model IEnumerable + +@{ + ViewData["Title"] = "Les profiles - " + (ViewBag.Activity?.Name ?? SR["Any"]); +} +

@ViewData["Title"]

+@ViewBag.Activity.Description + +@foreach (var profile in Model) { +
+ @Html.DisplayFor(m=>m) +
+ + + +
+} + diff --git a/Yavsc/wwwroot/css/bootstrap.css b/Yavsc/wwwroot/css/bootstrap.css index b67c8c9d..b0788fb1 100644 --- a/Yavsc/wwwroot/css/bootstrap.css +++ b/Yavsc/wwwroot/css/bootstrap.css @@ -3194,25 +3194,25 @@ fieldset[disabled] .btn-primary.active { } .btn-success { color: #fff; - background-color: #5cb85c; + background-color: #255625; border-color: #4cae4c; } .btn-success:focus, .btn-success.focus { color: #fff; - background-color: #449d44; + background-color: #2b8a2b; border-color: #255625; } .btn-success:hover { color: #fff; - background-color: #449d44; + background-color: #2b8a2b; border-color: #398439; } .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { color: #fff; - background-color: #449d44; + background-color: #2b8a2b; border-color: #398439; } .btn-success:active:hover, From 62e1f01a0f86531791b7a856a4b315e348b63008 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 12:26:53 +0100 Subject: [PATCH 10/19] fixe l'affichage du prix de la coupe --- Yavsc/Views/HairCutCommand/HairCut.cshtml | 40 ++++------------------- 1 file changed, 7 insertions(+), 33 deletions(-) diff --git a/Yavsc/Views/HairCutCommand/HairCut.cshtml b/Yavsc/Views/HairCutCommand/HairCut.cshtml index 85b5fa58..0e9d6ef5 100644 --- a/Yavsc/Views/HairCutCommand/HairCut.cshtml +++ b/Yavsc/Views/HairCutCommand/HairCut.cshtml @@ -25,7 +25,7 @@ var cutprice = (gen==0) ? gtarif.cut[len] : gtarif.cut[0]; total += cutprice; displayTarif('CutPrice', cutprice); - } + } else displayTarif('CutPrice',0); if (gen==0) { if (tech>0) {  var techprice = gtarif.tech[tech-1][len]; @@ -119,30 +119,6 @@ }); -} -@section header { - } @ViewBag.Activity.Description @@ -151,8 +127,6 @@ @Html.DisplayFor(m=>m.HairBrusher)
- -

@@ -233,10 +207,10 @@
-
- - - - - + + + + \ No newline at end of file From 449450fbb099b42599803566cd18d8c9b9fa8a98 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 12:28:58 +0100 Subject: [PATCH 11/19] affichage partager/j'aime facebook --- Yavsc/Views/Shared/_Layout.cshtml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Yavsc/Views/Shared/_Layout.cshtml b/Yavsc/Views/Shared/_Layout.cshtml index 20412951..73df0232 100755 --- a/Yavsc/Views/Shared/_Layout.cshtml +++ b/Yavsc/Views/Shared/_Layout.cshtml @@ -100,11 +100,13 @@ nav { fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); -
+ data-width="200" + data-show-faces="true" + data-colorscheme="dark">

Yavsc - Copyright © 2016 - 2017 Paul Schneider

From 075515b9da008c6351291771b373ef3bbb1cace6 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 12:29:26 +0100 Subject: [PATCH 12/19] =?UTF-8?q?affichage=20sur=20les=20tr=C3=A8s=20petit?= =?UTF-8?q?s=20=C3=A9crans?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yavsc/wwwroot/css/bootstrap.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Yavsc/wwwroot/css/bootstrap.css b/Yavsc/wwwroot/css/bootstrap.css index b0788fb1..5a38ad50 100644 --- a/Yavsc/wwwroot/css/bootstrap.css +++ b/Yavsc/wwwroot/css/bootstrap.css @@ -3011,7 +3011,8 @@ select[multiple].input-lg { font-weight: normal; line-height: 1.42857143; text-align: center; - white-space: nowrap; + white-space: normal; + max-width: 100%; vertical-align: middle; -ms-touch-action: manipulation; touch-action: manipulation; From d9c23ab3befcd66bcbd3fc24572ad55257bfc333 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 12:29:36 +0100 Subject: [PATCH 13/19] style du prix --- Yavsc/wwwroot/css/site.css | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Yavsc/wwwroot/css/site.css b/Yavsc/wwwroot/css/site.css index dcb256ba..9e387938 100755 --- a/Yavsc/wwwroot/css/site.css +++ b/Yavsc/wwwroot/css/site.css @@ -7,6 +7,27 @@ body { color:#999; } h1,h2,h3{color:#fff;} + +.price { + font-weight: bold; + font-size: x-large; + color: #fff; + border: solid white 1px; + border-radius: 1em; + padding: .2em; + margin: .2em; +} +.total { + font-weight: bold; + font-size: xx-large; + color: #fff; + background-color: #1f1c58; + border: solid white 1px; + border-radius: 1em; + padding: .2em; + margin: .2em; +} + .blog { padding: 1em; } From d09189f830f12e103039e71da3f92829d7295803 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 12:32:15 +0100 Subject: [PATCH 14/19] line-break is not stable ... --- Yavsc/wwwroot/css/bootstrap.css | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Yavsc/wwwroot/css/bootstrap.css b/Yavsc/wwwroot/css/bootstrap.css index 5a38ad50..223c0623 100644 --- a/Yavsc/wwwroot/css/bootstrap.css +++ b/Yavsc/wwwroot/css/bootstrap.css @@ -6060,8 +6060,7 @@ button.close { white-space: normal; filter: alpha(opacity=0); opacity: 0; - - line-break: auto; + line-break: auto; /* experimental */ } .tooltip.in { filter: alpha(opacity=90); @@ -6185,8 +6184,7 @@ button.close { border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - - line-break: auto; + line-break: auto; /* experimental */ } .popover.top { margin-top: -10px; From a2319dd0262543bd881f436e09a5ccd2c9086c77 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 13:25:20 +0100 Subject: [PATCH 15/19] FlatFeeDiscount --- Yavsc/Controllers/HairCutCommandController.cs | 15 +++++++++------ Yavsc/Models/Haircut/BrusherProfile.cs | 3 +++ Yavsc/Models/Haircut/HairCutQuery.cs | 9 ++++++++- Yavsc/ViewModels/Haircut/HairCutView.cs | 12 ------------ Yavsc/Views/BrusherProfile/Edit.cshtml | 10 +++++++++- Yavsc/Views/BrusherProfile/Index.cshtml | 11 +++++++---- Yavsc/Views/HairCutCommand/HairCut.cshtml | 4 ++-- Yavsc/Views/Home/Index.cshtml | 2 +- 8 files changed, 39 insertions(+), 27 deletions(-) delete mode 100644 Yavsc/ViewModels/Haircut/HairCutView.cs diff --git a/Yavsc/Controllers/HairCutCommandController.cs b/Yavsc/Controllers/HairCutCommandController.cs index 2d603259..e0134ab7 100644 --- a/Yavsc/Controllers/HairCutCommandController.cs +++ b/Yavsc/Controllers/HairCutCommandController.cs @@ -116,7 +116,7 @@ namespace Yavsc.Controllers } - [AllowAnonymous,ValidateAntiForgeryToken] + [ValidateAntiForgeryToken] public ActionResult HairCut(string performerId, string activityCode) { HairPrestation pPrestation=null; @@ -136,12 +136,15 @@ namespace Yavsc.Controllers || pPrestation.Tech == HairTechnos.Mech ) ? "":"hidden"; ViewBag.TechClass = ( pPrestation.Gender == HairCutGenders.Women ) ? "":"hidden"; ViewData["PerfPrefs"] = _context.BrusherProfile.Single(p=>p.UserId == performerId); - var result = new HairCutView { - HairBrusher = _context.Performers.Include( + var perfer = _context.Performers.Include( p=>p.Performer - ).Single(p=>p.PerformerId == performerId), - Topic = pPrestation - } ; + ).Single(p=>p.PerformerId == performerId); + var result = new HairCutQuery { + PerformerProfile = perfer, + PerformerId = perfer.PerformerId, + ClientId = User.GetUserId(), + Prestation = pPrestation + }; return View(result); } diff --git a/Yavsc/Models/Haircut/BrusherProfile.cs b/Yavsc/Models/Haircut/BrusherProfile.cs index fe47ad46..845ef59b 100644 --- a/Yavsc/Models/Haircut/BrusherProfile.cs +++ b/Yavsc/Models/Haircut/BrusherProfile.cs @@ -132,5 +132,8 @@ namespace Yavsc.Models.Haircut public decimal CarePrice { get; set; } + [Display(Name="Remise au forfait coupe+technique"),DisplayFormat(DataFormatString="{0:C}")] + + public decimal FlatFeeDiscount { get; set; } } } \ No newline at end of file diff --git a/Yavsc/Models/Haircut/HairCutQuery.cs b/Yavsc/Models/Haircut/HairCutQuery.cs index c4960ffd..1d086e15 100644 --- a/Yavsc/Models/Haircut/HairCutQuery.cs +++ b/Yavsc/Models/Haircut/HairCutQuery.cs @@ -11,7 +11,14 @@ namespace Yavsc.Models.Haircut { [Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long Id { get; set; } - HairPrestation Prestation { get; set; } + + [Required] + public long PrestationId { get; set; } + + [ForeignKey("PrestationId")] + public virtual HairPrestation Prestation { get; set; } + + [Required] public Location Location { get; set; } diff --git a/Yavsc/ViewModels/Haircut/HairCutView.cs b/Yavsc/ViewModels/Haircut/HairCutView.cs deleted file mode 100644 index 7d96f750..00000000 --- a/Yavsc/ViewModels/Haircut/HairCutView.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Yavsc.Models.Haircut; -using Yavsc.Models.Workflow; - -namespace Yavsc.ViewModels.Haircut -{ - public class HairCutView - { - public PerformerProfile HairBrusher { get; set; } - - public HairPrestation Topic { get; set; } - } -} \ No newline at end of file diff --git a/Yavsc/Views/BrusherProfile/Edit.cshtml b/Yavsc/Views/BrusherProfile/Edit.cshtml index b5d94997..f87e18f7 100644 --- a/Yavsc/Views/BrusherProfile/Edit.cshtml +++ b/Yavsc/Views/BrusherProfile/Edit.cshtml @@ -261,13 +261,21 @@ +
+ +
+ + +
+
-model.ShortFoldingPrice
+ + diff --git a/Yavsc/Views/BrusherProfile/Index.cshtml b/Yavsc/Views/BrusherProfile/Index.cshtml index 618382c0..c44b13aa 100644 --- a/Yavsc/Views/BrusherProfile/Index.cshtml +++ b/Yavsc/Views/BrusherProfile/Index.cshtml @@ -36,9 +36,7 @@
-Tarifs hors coiffure ou coupe - - +Tarifs divers
@Html.DisplayNameFor(model => model.ShampooPrice) @@ -53,7 +51,12 @@
@Html.DisplayFor(model => model.CarePrice)
- +
+ @Html.DisplayNameFor(model => model.FlatFeeDiscount) +
+
+ @Html.DisplayFor(model => model.FlatFeeDiscount) +
diff --git a/Yavsc/Views/HairCutCommand/HairCut.cshtml b/Yavsc/Views/HairCutCommand/HairCut.cshtml index 0e9d6ef5..e82245f7 100644 --- a/Yavsc/Views/HairCutCommand/HairCut.cshtml +++ b/Yavsc/Views/HairCutCommand/HairCut.cshtml @@ -1,4 +1,4 @@ -@model HairCutView +@model HairCutQuery @{ ViewData["Title"] = $"{ViewBag.Activity.Name}: Votre commande"; } @await Html.PartialAsync("BrusherProfileScript",ViewData["PerfPrefs"]) @section scripts { @@ -124,7 +124,7 @@

@ViewData["Title"]

-@Html.DisplayFor(m=>m.HairBrusher) +@Html.DisplayFor(m=>m.PerformerProfile)
diff --git a/Yavsc/Views/Home/Index.cshtml b/Yavsc/Views/Home/Index.cshtml index 22327c0d..bf3eff2a 100755 --- a/Yavsc/Views/Home/Index.cshtml +++ b/Yavsc/Views/Home/Index.cshtml @@ -31,7 +31,7 @@ @if (act.Children.Count>0) {

@act.Name
@act.Description

- + @foreach (Activity c in act.Children) { @if (!c.Hidden) { @Html.DisplayFor(subact=>c) } } From b768ff18b1068faeb224aa4feb10c7748b51a417 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 14:47:05 +0100 Subject: [PATCH 16/19] [DONT MERGE] Bug SignalR --- Yavsc/Controllers/HairCutCommandController.cs | 1 - ...01124608_brusherActiondistance.Designer.cs | 1 - .../20170301124608_brusherActiondistance.cs | 2 - .../20170301132531_manbrushing.Designer.cs | 1 - .../Migrations/20170301132531_manbrushing.cs | 2 - .../20170301211317_folding.Designer.cs | 1 - Yavsc/Migrations/20170301211317_folding.cs | 2 - ...2122929_brusherProfileDiscount.Designer.cs | 1409 +++++++++++++++++ .../20170302122929_brusherProfileDiscount.cs | 615 +++++++ .../ApplicationDbContextModelSnapshot.cs | 7 +- Yavsc/Startup/Startup.WebSockets.cs | 1 - Yavsc/Startup/Startup.cs | 7 +- Yavsc/Views/Command/CreateHairCutQuery.cshtml | 0 Yavsc/Views/HairCutCommand/HairCut.cshtml | 90 +- Yavsc/Views/_ViewImports.cshtml | 1 - Yavsc/wwwroot/css/site.min.css | 4 +- 16 files changed, 2083 insertions(+), 61 deletions(-) create mode 100644 Yavsc/Migrations/20170302122929_brusherProfileDiscount.Designer.cs create mode 100644 Yavsc/Migrations/20170302122929_brusherProfileDiscount.cs delete mode 100644 Yavsc/Views/Command/CreateHairCutQuery.cshtml diff --git a/Yavsc/Controllers/HairCutCommandController.cs b/Yavsc/Controllers/HairCutCommandController.cs index e0134ab7..1a68a76a 100644 --- a/Yavsc/Controllers/HairCutCommandController.cs +++ b/Yavsc/Controllers/HairCutCommandController.cs @@ -21,7 +21,6 @@ namespace Yavsc.Controllers using Microsoft.AspNet.Http; using Yavsc.Extensions; using Yavsc.Models.Haircut; - using Yavsc.ViewModels.Haircut; public class HairCutCommandController : CommandController { diff --git a/Yavsc/Migrations/20170301124608_brusherActiondistance.Designer.cs b/Yavsc/Migrations/20170301124608_brusherActiondistance.Designer.cs index dcb9ce95..b82c2e5a 100644 --- a/Yavsc/Migrations/20170301124608_brusherActiondistance.Designer.cs +++ b/Yavsc/Migrations/20170301124608_brusherActiondistance.Designer.cs @@ -1,7 +1,6 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; -using Microsoft.Data.Entity.Metadata; using Microsoft.Data.Entity.Migrations; using Yavsc.Models; diff --git a/Yavsc/Migrations/20170301124608_brusherActiondistance.cs b/Yavsc/Migrations/20170301124608_brusherActiondistance.cs index ee86f502..8d634876 100644 --- a/Yavsc/Migrations/20170301124608_brusherActiondistance.cs +++ b/Yavsc/Migrations/20170301124608_brusherActiondistance.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using Microsoft.Data.Entity.Migrations; namespace Yavsc.Migrations diff --git a/Yavsc/Migrations/20170301132531_manbrushing.Designer.cs b/Yavsc/Migrations/20170301132531_manbrushing.Designer.cs index 48a4e8d9..b6b42261 100644 --- a/Yavsc/Migrations/20170301132531_manbrushing.Designer.cs +++ b/Yavsc/Migrations/20170301132531_manbrushing.Designer.cs @@ -1,7 +1,6 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; -using Microsoft.Data.Entity.Metadata; using Microsoft.Data.Entity.Migrations; using Yavsc.Models; diff --git a/Yavsc/Migrations/20170301132531_manbrushing.cs b/Yavsc/Migrations/20170301132531_manbrushing.cs index cd3c80ab..0573ad22 100644 --- a/Yavsc/Migrations/20170301132531_manbrushing.cs +++ b/Yavsc/Migrations/20170301132531_manbrushing.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using Microsoft.Data.Entity.Migrations; namespace Yavsc.Migrations diff --git a/Yavsc/Migrations/20170301211317_folding.Designer.cs b/Yavsc/Migrations/20170301211317_folding.Designer.cs index 5d7f7b04..df8daba4 100644 --- a/Yavsc/Migrations/20170301211317_folding.Designer.cs +++ b/Yavsc/Migrations/20170301211317_folding.Designer.cs @@ -1,7 +1,6 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; -using Microsoft.Data.Entity.Metadata; using Microsoft.Data.Entity.Migrations; using Yavsc.Models; diff --git a/Yavsc/Migrations/20170301211317_folding.cs b/Yavsc/Migrations/20170301211317_folding.cs index 9a57898e..90bb3d09 100644 --- a/Yavsc/Migrations/20170301211317_folding.cs +++ b/Yavsc/Migrations/20170301211317_folding.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using Microsoft.Data.Entity.Migrations; namespace Yavsc.Migrations diff --git a/Yavsc/Migrations/20170302122929_brusherProfileDiscount.Designer.cs b/Yavsc/Migrations/20170302122929_brusherProfileDiscount.Designer.cs new file mode 100644 index 00000000..d75ee06d --- /dev/null +++ b/Yavsc/Migrations/20170302122929_brusherProfileDiscount.Designer.cs @@ -0,0 +1,1409 @@ +using System; +using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; +using Yavsc.Models; + +namespace Yavsc.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20170302122929_brusherProfileDiscount")] + partial class brusherProfileDiscount + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "7.0.0-rc1-16348"); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b => + { + b.Property("Id"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .HasAnnotation("Relational:Name", "RoleNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasAnnotation("Relational:TableName", "AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasAnnotation("Relational:TableName", "AspNetUserRoles"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.Property("CircleId"); + + b.Property("BlogPostId"); + + b.HasKey("CircleId", "BlogPostId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.Property("UserId"); + + b.Property("ContactCredits"); + + b.Property("Credits"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("Avatar") + .IsRequired() + .HasAnnotation("MaxLength", 512) + .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("BankInfoId"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("DedicatedGoogleCalendar"); + + b.Property("DiskQuota") + .HasAnnotation("Relational:DefaultValue", "524288000") + .HasAnnotation("Relational:DefaultValueType", "System.Int64"); + + b.Property("DiskUsage"); + + b.Property("Email") + .HasAnnotation("MaxLength", 256); + + b.Property("EmailConfirmed"); + + b.Property("FullName") + .HasAnnotation("MaxLength", 512); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedUserName") + .HasAnnotation("MaxLength", 256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("PostalAddressId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasAnnotation("Relational:Name", "EmailIndex"); + + b.HasIndex("NormalizedUserName") + .HasAnnotation("Relational:Name", "UserNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetUsers"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.Client", b => + { + b.Property("Id"); + + b.Property("Active"); + + b.Property("DisplayName"); + + b.Property("LogoutRedirectUri") + .HasAnnotation("MaxLength", 100); + + b.Property("RedirectUri"); + + b.Property("RefreshTokenLifeTime"); + + b.Property("Secret"); + + b.Property("Type"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b => + { + b.Property("Id"); + + b.Property("ClientId") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.Property("ExpiresUtc"); + + b.Property("IssuedUtc"); + + b.Property("ProtectedTicket") + .IsRequired(); + + b.Property("Subject") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BalanceId") + .IsRequired(); + + b.Property("ExecDate"); + + b.Property("Impact"); + + b.Property("Reason") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccountNumber") + .HasAnnotation("MaxLength", 15); + + b.Property("BIC") + .HasAnnotation("MaxLength", 15); + + b.Property("BankCode") + .HasAnnotation("MaxLength", 5); + + b.Property("BankedKey"); + + b.Property("IBAN") + .HasAnnotation("MaxLength", 33); + + b.Property("WicketCode") + .HasAnnotation("MaxLength", 5); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Count"); + + b.Property("Description") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("EstimateId"); + + b.Property("EstimateTemplateId"); + + b.Property("UnitaryCost"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AttachedFilesString"); + + b.Property("AttachedGraphicsString"); + + b.Property("ClientId") + .IsRequired(); + + b.Property("ClientValidationDate"); + + b.Property("CommandId"); + + b.Property("CommandType"); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("ProviderValidationDate"); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b => + { + b.Property("SIREN"); + + b.HasKey("SIREN"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId"); + + b.Property("Content"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("Title"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.Property("ConnectionId"); + + b.Property("ApplicationUserId"); + + b.Property("Connected"); + + b.Property("UserAgent"); + + b.HasKey("ConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Drawing.Color", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Blue"); + + b.Property("Green"); + + b.Property("Name"); + + b.Property("Red"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Forms.Form", b => + { + b.Property("Id"); + + b.Property("Summary"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.Property("UserId"); + + b.Property("ActionDistance"); + + b.Property("CarePrice"); + + b.Property("EndOfTheDay"); + + b.Property("FlatFeeDiscount"); + + b.Property("HalfBalayagePrice"); + + b.Property("HalfBrushingPrice"); + + b.Property("HalfColorPrice"); + + b.Property("HalfDefrisPrice"); + + b.Property("HalfFoldingPrice"); + + b.Property("HalfMechPrice"); + + b.Property("HalfMultiColorPrice"); + + b.Property("HalfPermanentPrice"); + + b.Property("KidCutPrice"); + + b.Property("LongBalayagePrice"); + + b.Property("LongBrushingPrice"); + + b.Property("LongColorPrice"); + + b.Property("LongDefrisPrice"); + + b.Property("LongFoldingPrice"); + + b.Property("LongMechPrice"); + + b.Property("LongMultiColorPrice"); + + b.Property("LongPermanentPrice"); + + b.Property("ManBrushPrice"); + + b.Property("ManCutPrice"); + + b.Property("ShampooPrice"); + + b.Property("ShortBalayagePrice"); + + b.Property("ShortBrushingPrice"); + + b.Property("ShortColorPrice"); + + b.Property("ShortDefrisPrice"); + + b.Property("ShortFoldingPrice"); + + b.Property("ShortMechPrice"); + + b.Property("ShortMultiColorPrice"); + + b.Property("ShortPermanentPrice"); + + b.Property("StartOfTheDay"); + + b.Property("WomenHalfCutPrice"); + + b.Property("WomenLongCutPrice"); + + b.Property("WomenShortCutPrice"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId") + .IsRequired(); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("HairMultiCutQueryId"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Brand"); + + b.Property("ColorId"); + + b.Property("HairPrestationId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.Property("DeviceId"); + + b.Property("DeclarationDate") + .ValueGeneratedOnAdd() + .HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP"); + + b.Property("DeviceOwnerId"); + + b.Property("GCMRegistrationId") + .IsRequired(); + + b.Property("Model"); + + b.Property("Platform"); + + b.Property("Version"); + + b.HasKey("DeviceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Depth"); + + b.Property("Description"); + + b.Property("Height"); + + b.Property("Name"); + + b.Property("Price"); + + b.Property("Public"); + + b.Property("Weight"); + + b.Property("Width"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ContextId"); + + b.Property("Description"); + + b.Property("Name"); + + b.Property("Public"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.Property("UserId"); + + b.Property("Avatar"); + + b.Property("BillingAddressId"); + + b.Property("EMail"); + + b.Property("Phone"); + + b.Property("UserName"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.Property("UserId"); + + b.Property("NotificationId"); + + b.HasKey("UserId", "NotificationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("body") + .IsRequired(); + + b.Property("click_action") + .IsRequired(); + + b.Property("color"); + + b.Property("icon"); + + b.Property("sound"); + + b.Property("tag"); + + b.Property("title") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Instrument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.Property("OwnerProfileId"); + + b.Property("DjSettingsUserId"); + + b.Property("GeneralSettingsUserId"); + + b.Property("Rate"); + + b.Property("TendencyId"); + + b.HasKey("OwnerProfileId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalTendency", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.DjSettings", b => + { + b.Property("UserId"); + + b.Property("SoundCloudId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.GeneralSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.Property("InstrumentId"); + + b.Property("UserId"); + + b.HasKey("InstrumentId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b => + { + b.Property("UserId"); + + b.Property("AccessToken"); + + b.Property("Expiration"); + + b.Property("ExpiresIn"); + + b.Property("RefreshToken"); + + b.Property("TokenType"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ApplicationUserId"); + + b.Property("Name"); + + b.Property("OwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.Property("MemberId"); + + b.Property("CircleId"); + + b.HasKey("MemberId", "CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.Property("OwnerId"); + + b.Property("UserId"); + + b.Property("ApplicationUserId"); + + b.HasKey("OwnerId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Address") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("Latitude"); + + b.Property("Longitude"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.LocationType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.Property("PostId"); + + b.Property("TagId"); + + b.HasKey("PostId", "TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("Rate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.Property("Code") + .HasAnnotation("MaxLength", 512); + + b.Property("ActorDenomination"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("Hidden"); + + b.Property("ModeratorGroupName"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("ParentCode") + .HasAnnotation("MaxLength", 512); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("SettingsClassName"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActionName"); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormationSettingsUserId"); + + b.Property("PerformerId"); + + b.Property("WorkingForId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.Property("PerformerId"); + + b.Property("AcceptNotifications"); + + b.Property("AcceptPublicContact"); + + b.Property("Active"); + + b.Property("MaxDailyCost"); + + b.Property("MinDailyCost"); + + b.Property("OrganizationAddressId"); + + b.Property("Rate"); + + b.Property("SIREN") + .IsRequired() + .HasAnnotation("MaxLength", 14); + + b.Property("UseGeoLocalizationToReduceDistanceWithClients"); + + b.Property("WebSite"); + + b.HasKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Profiles.FormationSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("LocationTypeId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("BlogPostId"); + + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithOne() + .HasForeignKey("Yavsc.Models.AccountBalance", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.HasOne("Yavsc.Models.Bank.BankIdentity") + .WithMany() + .HasForeignKey("BankInfoId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("PostalAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.HasOne("Yavsc.Models.AccountBalance") + .WithMany() + .HasForeignKey("BalanceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.HasOne("Yavsc.Models.Billing.Estimate") + .WithMany() + .HasForeignKey("EstimateId"); + + b.HasOne("Yavsc.Models.Billing.EstimateTemplate") + .WithMany() + .HasForeignKey("EstimateTemplateId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Workflow.RdvQuery") + .WithMany() + .HasForeignKey("CommandId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.Connection", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("HairMultiCutQueryId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.HasOne("Yavsc.Models.Drawing.Color") + .WithMany() + .HasForeignKey("ColorId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("HairPrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("DeviceOwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ContextId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("BillingAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.HasOne("Yavsc.Models.Messaging.Notification") + .WithMany() + .HasForeignKey("NotificationId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.HasOne("Yavsc.Models.Musical.Profiles.DjSettings") + .WithMany() + .HasForeignKey("DjSettingsUserId"); + + b.HasOne("Yavsc.Models.Musical.Profiles.GeneralSettings") + .WithMany() + .HasForeignKey("GeneralSettingsUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.HasOne("Yavsc.Models.Musical.Instrument") + .WithMany() + .HasForeignKey("InstrumentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("MemberId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.PostTag", b => + { + b.HasOne("Yavsc.Models.Blog") + .WithMany() + .HasForeignKey("PostId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ParentCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.HasOne("Yavsc.Models.Workflow.Profiles.FormationSettings") + .WithMany() + .HasForeignKey("FormationSettingsUserId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("WorkingForId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("OrganizationAddressId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("DoesCode"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + } + } +} diff --git a/Yavsc/Migrations/20170302122929_brusherProfileDiscount.cs b/Yavsc/Migrations/20170302122929_brusherProfileDiscount.cs new file mode 100644 index 00000000..2ae0e67f --- /dev/null +++ b/Yavsc/Migrations/20170302122929_brusherProfileDiscount.cs @@ -0,0 +1,615 @@ +using System; +using System.Collections.Generic; +using Microsoft.Data.Entity.Migrations; + +namespace Yavsc.Migrations +{ + public partial class brusherProfileDiscount : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Location_LocationId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_HairPrestation_PrestationId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.AlterColumn( + name: "PrestationId", + table: "HairCutQuery", + nullable: false); + migrationBuilder.AlterColumn( + name: "LocationId", + table: "HairCutQuery", + nullable: false); + migrationBuilder.AddColumn( + name: "FlatFeeDiscount", + table: "BrusherProfile", + nullable: false, + defaultValue: 0m); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Location_LocationId", + table: "HairCutQuery", + column: "LocationId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_HairPrestation_PrestationId", + table: "HairCutQuery", + column: "PrestationId", + principalTable: "HairPrestation", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost"); + migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance"); + migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact"); + migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_Estimate_PerformerProfile_OwnerId", table: "Estimate"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Location_LocationId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_HairPrestation_PrestationId", table: "HairCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery"); + migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked"); + migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember"); + migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag"); + migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity"); + migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity"); + migrationBuilder.DropColumn(name: "FlatFeeDiscount", table: "BrusherProfile"); + migrationBuilder.AlterColumn( + name: "PrestationId", + table: "HairCutQuery", + nullable: true); + migrationBuilder.AlterColumn( + name: "LocationId", + table: "HairCutQuery", + nullable: true); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Blog_BlogPostId", + table: "CircleAuthorizationToBlogPost", + column: "BlogPostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", + table: "CircleAuthorizationToBlogPost", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_AccountBalance_ApplicationUser_UserId", + table: "AccountBalance", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BalanceImpact_AccountBalance_BalanceId", + table: "BalanceImpact", + column: "BalanceId", + principalTable: "AccountBalance", + principalColumn: "UserId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandLine_Estimate_EstimateId", + table: "CommandLine", + column: "EstimateId", + principalTable: "Estimate", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_ApplicationUser_ClientId", + table: "Estimate", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Estimate_PerformerProfile_OwnerId", + table: "Estimate", + column: "OwnerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Activity_ActivityCode", + table: "HairCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_ApplicationUser_ClientId", + table: "HairCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_Location_LocationId", + table: "HairCutQuery", + column: "LocationId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_PerformerProfile_PerformerId", + table: "HairCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairCutQuery_HairPrestation_PrestationId", + table: "HairCutQuery", + column: "PrestationId", + principalTable: "HairPrestation", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_Activity_ActivityCode", + table: "HairMultiCutQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", + table: "HairMultiCutQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", + table: "HairMultiCutQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_HairTaint_Color_ColorId", + table: "HairTaint", + column: "ColorId", + principalTable: "Color", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_Notification_NotificationId", + table: "DimissClicked", + column: "NotificationId", + principalTable: "Notification", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_DimissClicked_ApplicationUser_UserId", + table: "DimissClicked", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_Instrumentation_Instrument_InstrumentId", + table: "Instrumentation", + column: "InstrumentId", + principalTable: "Instrument", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_Circle_CircleId", + table: "CircleMember", + column: "CircleId", + principalTable: "Circle", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleMember_ApplicationUser_MemberId", + table: "CircleMember", + column: "MemberId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PostTag_Blog_PostId", + table: "PostTag", + column: "PostId", + principalTable: "Blog", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CommandForm_Activity_ActivityCode", + table: "CommandForm", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_Location_OrganizationAddressId", + table: "PerformerProfile", + column: "OrganizationAddressId", + principalTable: "Location", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_PerformerProfile_ApplicationUser_PerformerId", + table: "PerformerProfile", + column: "PerformerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_Activity_ActivityCode", + table: "RdvQuery", + column: "ActivityCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_ApplicationUser_ClientId", + table: "RdvQuery", + column: "ClientId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_RdvQuery_PerformerProfile_PerformerId", + table: "RdvQuery", + column: "PerformerId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_Activity_DoesCode", + table: "UserActivity", + column: "DoesCode", + principalTable: "Activity", + principalColumn: "Code", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_UserActivity_PerformerProfile_UserId", + table: "UserActivity", + column: "UserId", + principalTable: "PerformerProfile", + principalColumn: "PerformerId", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs index de6c5933..18ee6304 100644 --- a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs @@ -451,6 +451,8 @@ namespace Yavsc.Migrations b.Property("EndOfTheDay"); + b.Property("FlatFeeDiscount"); + b.Property("HalfBalayagePrice"); b.Property("HalfBrushingPrice"); @@ -535,12 +537,13 @@ namespace Yavsc.Migrations b.Property("EventDate"); - b.Property("LocationId"); + b.Property("LocationId") + .IsRequired(); b.Property("PerformerId") .IsRequired(); - b.Property("PrestationId"); + b.Property("PrestationId"); b.Property("Previsional"); diff --git a/Yavsc/Startup/Startup.WebSockets.cs b/Yavsc/Startup/Startup.WebSockets.cs index 1ceabba7..563131fd 100644 --- a/Yavsc/Startup/Startup.WebSockets.cs +++ b/Yavsc/Startup/Startup.WebSockets.cs @@ -9,7 +9,6 @@ namespace Yavsc SiteSettings siteSettings, IHostingEnvironment env) { app.UseWebSockets(); - app.UseSignalR("/api/signalr"); /* var _sockets = new ConcurrentBag(); diff --git a/Yavsc/Startup/Startup.cs b/Yavsc/Startup/Startup.cs index 37a879ab..9a5e8eef 100755 --- a/Yavsc/Startup/Startup.cs +++ b/Yavsc/Startup/Startup.cs @@ -23,6 +23,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.OptionsModel; using Microsoft.Extensions.PlatformAbstractions; using Microsoft.Net.Http.Headers; +using Yavsc.Extensions; using Yavsc.Formatters; using Yavsc.Models; using Yavsc.Services; @@ -335,7 +336,11 @@ namespace Yavsc ConfigureOAuthApp(app, SiteSetup); ConfigureFileServerApp(app, SiteSetup, env, authorizationService); - ConfigureWebSocketsApp(app, SiteSetup, env); + app.UseWhen(context => context.Request.Path.StartsWithSegments("/api"), + branch => + { + ConfigureWebSocketsApp(app, SiteSetup, env); + }); ConfigureWorkflow(app, SiteSetup); app.UseRequestLocalization(localizationOptions.Value, (RequestCulture) new RequestCulture((string)"fr")); app.UseSession(); diff --git a/Yavsc/Views/Command/CreateHairCutQuery.cshtml b/Yavsc/Views/Command/CreateHairCutQuery.cshtml deleted file mode 100644 index e69de29b..00000000 diff --git a/Yavsc/Views/HairCutCommand/HairCut.cshtml b/Yavsc/Views/HairCutCommand/HairCut.cshtml index e82245f7..0d35744d 100644 --- a/Yavsc/Views/HairCutCommand/HairCut.cshtml +++ b/Yavsc/Views/HairCutCommand/HairCut.cshtml @@ -15,13 +15,13 @@ } function updateTarif () { - var len = $('#Topic_Length').prop('selectedIndex'); + var len = $('#Prestation_Length').prop('selectedIndex'); - var gen = $("#Topic_Gender").prop('selectedIndex'); - var tech = $("#Topic_Tech").prop('selectedIndex'); - var dress = $("#Topic_Dressing").prop('selectedIndex'); + var gen = $("#Prestation_Gender").prop('selectedIndex'); + var tech = $("#Prestation_Tech").prop('selectedIndex'); + var dress = $("#Prestation_Dressing").prop('selectedIndex'); total = 0; - if ($('#Topic_Cut').prop('checked')) { + if ($('#Prestation_Cut').prop('checked')) { var cutprice = (gen==0) ? gtarif.cut[len] : gtarif.cut[0]; total += cutprice; displayTarif('CutPrice', cutprice); @@ -42,15 +42,15 @@ if (dress>0) { total += gtarif.brush[0]; displayTarif('DressPrice', gtarif.brush[0]) } else displayTarif('DressPrice',0); } - if ($('#Topic_Shampoo').prop('checked')) { + if ($('#Prestation_Shampoo').prop('checked')) {  total += gtarif.shampoo; displayTarif('ShampooPrice', gtarif.shampoo); } else displayTarif('ShampooPrice', 0); - if ($('#Topic_Cares').prop('checked')) { + if ($('#Prestation_Cares').prop('checked')) {  total += gtarif.care; displayTarif('CaresPrice', gtarif.care); } else displayTarif('CaresPrice', 0); - + $('.btn-submit').prop('disabled', (total==0)); $('#Total').html( total+"€" ); } @@ -62,41 +62,41 @@ // pas de coupe => technique $(document).ready(function () { - $("#Topic_Tech").on("change", function (ev) { + $("#Prestation_Tech").on("change", function (ev) { var nv = $(this).val(); if (nv == 'Color' || nv == 'Mech') { $("#taintsfs").removeClass('hidden') } else { $("#taintsfs").addClass('hidden') } }); - $("#Topic_Gender").on("change", function(ev) { + $("#Prestation_Gender").on("change", function(ev) { var nv = $(this).val(); if(nv=='Women') { onTarif(tarifs[0]); $("#techfs").removeClass('hidden'); $("#lenfs").removeClass('hidden'); - $('#Topic_Cut').prop('disabled', false); + $('#Prestation_Cut').prop('disabled', false); $('#optbrush').prop('disabled', false); $('#optfold').prop('disabled', false); } else { - var cv = $('#Topic_Dressing').val(); + var cv = $('#Prestation_Dressing').val(); if (nv=='Man') { $('#optfold').prop('disabled', true); $('#optbrush').prop('disabled', false); onTarif(tarifs[1]); - if (cv=='Folding') { $('#Topic_Dressing').val('Coiffage'); } + if (cv=='Folding') { $('#Prestation_Dressing').val('Coiffage'); } } if (nv=='Kid') {  onTarif(tarifs[2]); $('#optbrush').prop('disabled', true); $('#optfold').prop('disabled', true); - if (cv=='Folding' || cv == 'Brushing') { $('#Topic_Dressing').val('Coiffage'); } + if (cv=='Folding' || cv == 'Brushing') { $('#Prestation_Dressing').val('Coiffage'); } } $("#techfs").addClass('hidden'); $("#lenfs").addClass('hidden'); - $('#Topic_Cut').val(true); - $('#Topic_Cut').prop('checked', true); - $('#Topic_Cut').prop('disabled', true); + $('#Prestation_Cut').val(true); + $('#Prestation_Cut').prop('checked', true); + $('#Prestation_Cut').prop('disabled', true); } }); @@ -104,7 +104,7 @@ updateTarif(); }); - var curgen = $("#Topic_Gender").val(); + var curgen = $("#Prestation_Gender").val(); if (curgen=='Women') {  gtarif=tarifs[0]; } else { @@ -131,45 +131,45 @@
- +
- - + +
- +
- - + +
- - + +
- +
- - + +
- +
@foreach (HairTaint color in ViewBag.HairTaints) { } - - + +
@@ -177,14 +177,14 @@
- +
- - +
@@ -192,8 +192,8 @@
- - + +
@@ -201,16 +201,18 @@
- - + +
- + Total: + + + +
- + \ No newline at end of file diff --git a/Yavsc/Views/_ViewImports.cshtml b/Yavsc/Views/_ViewImports.cshtml index 325a5b1c..0ad88fbb 100755 --- a/Yavsc/Views/_ViewImports.cshtml +++ b/Yavsc/Views/_ViewImports.cshtml @@ -29,7 +29,6 @@ @using Yavsc.ViewModels.Auth; @using Yavsc.ViewModels.Administration; @using Yavsc.ViewModels.Relationship; -@using Yavsc.ViewModels.Haircut; @inject IViewLocalizer LocString @addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" diff --git a/Yavsc/wwwroot/css/site.min.css b/Yavsc/wwwroot/css/site.min.css index bd2867d4..442b428b 100644 --- a/Yavsc/wwwroot/css/site.min.css +++ b/Yavsc/wwwroot/css/site.min.css @@ -2,7 +2,7 @@ * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.label,sub,sup{vertical-align:baseline}.btn,.btn-group,.btn-group-vertical,.caret,.checkbox-inline,.radio-inline,img{vertical-align:middle}hr,img{border:0}body,figure{margin:0}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.btn,.ui-button{-moz-user-select:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}sub,sup{position:relative;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}.glyphicon,address{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}.dropdown-menu,.modal-content{-webkit-background-clip:padding-box}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.popover,.tooltip,body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-half:before{content:"\e00a"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-size:14px;line-height:1.42857143}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{text-decoration:none}a:focus,a:hover{color:#303;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:45%;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap;margin-right:2em}.dl-horizontal dd{margin-left:10%}.container{width:750px}}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after,.ui-helper-clearfix:after{clear:both}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-right:15px;padding-left:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{min-width:0;margin:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{position:relative;width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:1px;margin-left:1px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu-right,.dropdown-menu.pull-right{right:0;left:auto}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.btn-group-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{right:auto;left:0}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;cursor:pointer;text-decoration:none}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.close{line-height:1}.panel{margin-bottom:20px;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.popover,.tooltip{font-style:normal;font-weight:400;line-height:1.42857143;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;line-break:auto;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal{position:fixed;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;text-align:left;text-align:start;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;text-align:left;text-align:start;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.left>.arrow:after,.popover.right>.arrow:after{bottom:-10px;content:" "}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{left:50%;width:60%;margin-left:-30%}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:3em;top:1em;left:3em;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.6)}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}@-webkit-keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@-moz-keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@-webkit-keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes pulse{0%,20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@-moz-keyframes pulse{0%,20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@keyframes pulse{0%,20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}.dropzone,.dropzone *{box-sizing:border-box}.dropzone{min-height:150px;border:2px solid rgba(0,0,0,.3);background:#fff;padding:20px}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message *{cursor:pointer}.dropzone.dz-started .dz-message{display:none}.dropzone.dz-drag-hover{border-style:solid}.dropzone.dz-drag-hover .dz-message{opacity:.5}.dropzone .dz-preview.dz-file-preview .dz-details,.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-message{text-align:center;margin:2em 0}.dropzone .dz-preview{position:relative;display:inline-block;vertical-align:top;margin:16px;min-height:100px}.dropzone .dz-preview:hover{z-index:1000}.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:20px;background:#999;background:linear-gradient(to bottom,#eee,#ddd)}.dropzone .dz-preview.dz-image-preview{background:#fff}.dropzone .dz-preview.dz-image-preview .dz-details{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-ms-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.dropzone .dz-preview .dz-remove{font-size:14px;text-align:center;display:block;cursor:pointer;border:none}.dropzone .dz-preview .dz-remove:hover{text-decoration:underline}.dropzone .dz-preview .dz-details{z-index:20;position:absolute;top:0;left:0;opacity:0;font-size:13px;min-width:100%;max-width:100%;padding:2em 1em;text-align:center;color:rgba(0,0,0,.9);line-height:150%}.dropzone .dz-preview .dz-details .dz-size{margin-bottom:1em;font-size:16px}.dropzone .dz-preview .dz-details .dz-filename{white-space:nowrap}.dropzone .dz-preview .dz-details .dz-filename:hover span{border:1px solid rgba(200,200,200,.8);background-color:rgba(255,255,255,.8)}.dropzone .dz-preview .dz-details .dz-filename:not(:hover){overflow:hidden;text-overflow:ellipsis}.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span{border:1px solid transparent}.dropzone .dz-preview .dz-details .dz-filename span,.dropzone .dz-preview .dz-details .dz-size span{background-color:rgba(255,255,255,.4);padding:0 .4em;border-radius:3px}.dropzone .dz-preview:hover .dz-image img{-webkit-transform:scale(1.05,1.05);-moz-transform:scale(1.05,1.05);-ms-transform:scale(1.05,1.05);-o-transform:scale(1.05,1.05);transform:scale(1.05,1.05);-webkit-filter:blur(8px);filter:blur(8px)}.dropzone .dz-preview .dz-image{border-radius:20px;overflow:hidden;width:120px;height:120px;position:relative;display:block;z-index:10}.dropzone .dz-preview .dz-image img{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{-webkit-animation:passing-through 3s cubic-bezier(.77,0,.175,1);-moz-animation:passing-through 3s cubic-bezier(.77,0,.175,1);-ms-animation:passing-through 3s cubic-bezier(.77,0,.175,1);-o-animation:passing-through 3s cubic-bezier(.77,0,.175,1);animation:passing-through 3s cubic-bezier(.77,0,.175,1)}.dropzone .dz-preview.dz-error .dz-error-mark{opacity:1;-webkit-animation:slide-in 3s cubic-bezier(.77,0,.175,1);-moz-animation:slide-in 3s cubic-bezier(.77,0,.175,1);-ms-animation:slide-in 3s cubic-bezier(.77,0,.175,1);-o-animation:slide-in 3s cubic-bezier(.77,0,.175,1);animation:slide-in 3s cubic-bezier(.77,0,.175,1)}.dropzone .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark{pointer-events:none;opacity:0;z-index:500;position:absolute;display:block;top:50%;left:50%;margin-left:-27px;margin-top:-27px}.dropzone .dz-preview .dz-error-mark svg,.dropzone .dz-preview .dz-success-mark svg{display:block;width:54px;height:54px}.dropzone .dz-preview.dz-processing .dz-progress{opacity:1;-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-ms-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.dropzone .dz-preview.dz-complete .dz-progress{opacity:0;-webkit-transition:opacity .4s ease-in;-moz-transition:opacity .4s ease-in;-ms-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.dropzone .dz-preview:not(.dz-processing) .dz-progress{-webkit-animation:pulse 6s ease infinite;-moz-animation:pulse 6s ease infinite;-ms-animation:pulse 6s ease infinite;-o-animation:pulse 6s ease infinite;animation:pulse 6s ease infinite}.dropzone .dz-preview .dz-progress{opacity:1;z-index:1000;pointer-events:none;position:absolute;height:16px;left:50%;top:50%;margin-top:-8px;width:80px;margin-left:-40px;background:rgba(255,255,255,.9);-webkit-transform:scale(1);border-radius:8px;overflow:hidden}.dropzone .dz-preview .dz-progress .dz-upload{background:#333;background:linear-gradient(to bottom,#666,#444);position:absolute;top:0;left:0;bottom:0;width:0;-webkit-transition:width .3s ease-in-out;-moz-transition:width .3s ease-in-out;-ms-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;transition:width .3s ease-in-out}.dropzone .dz-preview.dz-error .dz-error-message{display:block}.dropzone .dz-preview.dz-error:hover .dz-error-message{opacity:1;pointer-events:auto}.ui-checkboxradio-disabled,.ui-state-disabled{pointer-events:none}.dropzone .dz-preview .dz-error-message{pointer-events:none;z-index:1000;position:absolute;display:block;display:none;opacity:0;-webkit-transition:opacity .3s ease;-moz-transition:opacity .3s ease;-ms-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease;border-radius:8px;font-size:13px;top:130px;left:-10px;width:140px;background:#be2626;background:linear-gradient(to bottom,#be2626,#a92222);padding:.5em 1.2em;color:#fff}.dropzone .dz-preview .dz-error-message:after{content:'';position:absolute;top:-6px;left:64px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #be2626}/*! jQuery UI - v1.12.1 - 2016-09-14 + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.label,sub,sup{vertical-align:baseline}.btn,.btn-group,.btn-group-vertical,.caret,.checkbox-inline,.radio-inline,img{vertical-align:middle}hr,img{border:0}body,figure{margin:0}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.btn,.ui-button{-moz-user-select:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}sub,sup{position:relative;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}.glyphicon,address{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.popover,.tooltip,body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-half:before{content:"\e00a"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-size:14px;line-height:1.42857143}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{text-decoration:none}a:focus,a:hover{color:#303;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.btn,.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:45%;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap;margin-right:2em}.dl-horizontal dd{margin-left:10%}.container{width:750px}}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after,.ui-helper-clearfix:after{clear:both}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-right:15px;padding-left:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{min-width:0;margin:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{position:relative;width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:1px;margin-left:1px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;white-space:normal;max-width:100%;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#255625;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#2b8a2b;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#2b8a2b;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu-right,.dropdown-menu.pull-right{right:0;left:auto}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.btn-group-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{right:auto;left:0}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;cursor:pointer;text-decoration:none}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.close{line-height:1}.panel{margin-bottom:20px;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.popover,.tooltip{font-style:normal;font-weight:400;line-height:1.42857143;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;line-break:auto;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal{position:fixed;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;text-align:left;text-align:start;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;text-align:left;text-align:start;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.left>.arrow:after,.popover.right>.arrow:after{bottom:-10px;content:" "}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{bottom:10px;left:50%;width:60%;padding-left:0;margin-left:-30%}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:3em;top:1em;left:3em;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.6)}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}@-webkit-keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@-moz-keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@-webkit-keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes pulse{0%,20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@-moz-keyframes pulse{0%,20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@keyframes pulse{0%,20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}.dropzone,.dropzone *{box-sizing:border-box}.dropzone{min-height:150px;border:2px solid rgba(0,0,0,.3);background:#fff;padding:20px}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message *{cursor:pointer}.dropzone.dz-started .dz-message{display:none}.dropzone.dz-drag-hover{border-style:solid}.dropzone.dz-drag-hover .dz-message{opacity:.5}.dropzone .dz-preview.dz-file-preview .dz-details,.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-message{text-align:center;margin:2em 0}.dropzone .dz-preview{position:relative;display:inline-block;vertical-align:top;margin:16px;min-height:100px}.dropzone .dz-preview:hover{z-index:1000}.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:20px;background:#999;background:linear-gradient(to bottom,#eee,#ddd)}.dropzone .dz-preview.dz-image-preview{background:#fff}.dropzone .dz-preview.dz-image-preview .dz-details{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-ms-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.dropzone .dz-preview .dz-remove{font-size:14px;text-align:center;display:block;cursor:pointer;border:none}.dropzone .dz-preview .dz-remove:hover{text-decoration:underline}.dropzone .dz-preview .dz-details{z-index:20;position:absolute;top:0;left:0;opacity:0;font-size:13px;min-width:100%;max-width:100%;padding:2em 1em;text-align:center;color:rgba(0,0,0,.9);line-height:150%}.dropzone .dz-preview .dz-details .dz-size{margin-bottom:1em;font-size:16px}.dropzone .dz-preview .dz-details .dz-filename{white-space:nowrap}.dropzone .dz-preview .dz-details .dz-filename:hover span{border:1px solid rgba(200,200,200,.8);background-color:rgba(255,255,255,.8)}.dropzone .dz-preview .dz-details .dz-filename:not(:hover){overflow:hidden;text-overflow:ellipsis}.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span{border:1px solid transparent}.dropzone .dz-preview .dz-details .dz-filename span,.dropzone .dz-preview .dz-details .dz-size span{background-color:rgba(255,255,255,.4);padding:0 .4em;border-radius:3px}.dropzone .dz-preview:hover .dz-image img{-webkit-transform:scale(1.05,1.05);-moz-transform:scale(1.05,1.05);-ms-transform:scale(1.05,1.05);-o-transform:scale(1.05,1.05);transform:scale(1.05,1.05);-webkit-filter:blur(8px);filter:blur(8px)}.dropzone .dz-preview .dz-image{border-radius:20px;overflow:hidden;width:120px;height:120px;position:relative;display:block;z-index:10}.dropzone .dz-preview .dz-image img{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{-webkit-animation:passing-through 3s cubic-bezier(.77,0,.175,1);-moz-animation:passing-through 3s cubic-bezier(.77,0,.175,1);-ms-animation:passing-through 3s cubic-bezier(.77,0,.175,1);-o-animation:passing-through 3s cubic-bezier(.77,0,.175,1);animation:passing-through 3s cubic-bezier(.77,0,.175,1)}.dropzone .dz-preview.dz-error .dz-error-mark{opacity:1;-webkit-animation:slide-in 3s cubic-bezier(.77,0,.175,1);-moz-animation:slide-in 3s cubic-bezier(.77,0,.175,1);-ms-animation:slide-in 3s cubic-bezier(.77,0,.175,1);-o-animation:slide-in 3s cubic-bezier(.77,0,.175,1);animation:slide-in 3s cubic-bezier(.77,0,.175,1)}.dropzone .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark{pointer-events:none;opacity:0;z-index:500;position:absolute;display:block;top:50%;left:50%;margin-left:-27px;margin-top:-27px}.dropzone .dz-preview .dz-error-mark svg,.dropzone .dz-preview .dz-success-mark svg{display:block;width:54px;height:54px}.dropzone .dz-preview.dz-processing .dz-progress{opacity:1;-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-ms-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.dropzone .dz-preview.dz-complete .dz-progress{opacity:0;-webkit-transition:opacity .4s ease-in;-moz-transition:opacity .4s ease-in;-ms-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.dropzone .dz-preview:not(.dz-processing) .dz-progress{-webkit-animation:pulse 6s ease infinite;-moz-animation:pulse 6s ease infinite;-ms-animation:pulse 6s ease infinite;-o-animation:pulse 6s ease infinite;animation:pulse 6s ease infinite}.dropzone .dz-preview .dz-progress{opacity:1;z-index:1000;pointer-events:none;position:absolute;height:16px;left:50%;top:50%;margin-top:-8px;width:80px;margin-left:-40px;background:rgba(255,255,255,.9);-webkit-transform:scale(1);border-radius:8px;overflow:hidden}.dropzone .dz-preview .dz-progress .dz-upload{background:#333;background:linear-gradient(to bottom,#666,#444);position:absolute;top:0;left:0;bottom:0;width:0;-webkit-transition:width .3s ease-in-out;-moz-transition:width .3s ease-in-out;-ms-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;transition:width .3s ease-in-out}.dropzone .dz-preview.dz-error .dz-error-message{display:block}.dropzone .dz-preview.dz-error:hover .dz-error-message{opacity:1;pointer-events:auto}.ui-checkboxradio-disabled,.ui-state-disabled{pointer-events:none}.dropzone .dz-preview .dz-error-message{pointer-events:none;z-index:1000;position:absolute;display:block;display:none;opacity:0;-webkit-transition:opacity .3s ease;-moz-transition:opacity .3s ease;-ms-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease;border-radius:8px;font-size:13px;top:130px;left:-10px;width:140px;background:#be2626;background:linear-gradient(to bottom,#be2626,#a92222);padding:.5em 1.2em;color:#fff}.dropzone .dz-preview .dz-error-message:after{content:'';position:absolute;top:-6px;left:64px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #be2626}/*! jQuery UI - v1.12.1 - 2016-09-14 * http://jqueryui.com * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=333333&bgTextureHeader=gloss_wave&bgImgOpacityHeader=25&borderColorHeader=333333&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=000000&bgTextureContent=inset_soft&bgImgOpacityContent=25&borderColorContent=666666&fcContent=ffffff&iconColorContent=cccccc&bgColorDefault=555555&bgTextureDefault=glass&bgImgOpacityDefault=20&borderColorDefault=666666&fcDefault=eeeeee&iconColorDefault=cccccc&bgColorHover=0078a3&bgTextureHover=glass&bgImgOpacityHover=40&borderColorHover=59b4d4&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=f58400&bgTextureActive=inset_soft&bgImgOpacityActive=30&borderColorActive=ffaf0f&fcActive=ffffff&iconColorActive=222222&bgColorHighlight=eeeeee&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=80&borderColorHighlight=cccccc&fcHighlight=2e7db2&iconColorHighlight=4b8e0b&bgColorError=ffc73d&bgTextureError=glass&bgImgOpacityError=40&borderColorError=ffb73d&fcError=111111&iconColorError=a83300&bgColorOverlay=5c5c5c&bgTextureOverlay=flat&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=cccccc&bgTextureShadow=flat&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px @@ -10,4 +10,4 @@ * https://quilljs.com/ * Copyright (c) 2014, Jason Chen * Copyright (c) 2013, salesforce.com - */.ql-image-tooltip{padding:10px;width:300px}.ql-image-tooltip:after{clear:both;content:"";display:table}.ql-image-tooltip a{border:1px solid #000;box-sizing:border-box;display:inline-block;padding:5px;text-align:center;width:50%}.ql-image-tooltip img{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.ql-image-tooltip .input{box-sizing:border-box;width:100%}.ql-image-tooltip .preview{margin:10px 0;position:relative;border:1px dashed #000;height:200px}.ql-image-tooltip .preview span{display:inline-block;position:absolute;text-align:center;top:40%;width:100%}.ql-link-tooltip{padding:5px 10px}.ql-link-tooltip input.input{width:170px}.ql-link-tooltip a.done,.ql-link-tooltip input.input{display:none}.ql-link-tooltip a.change{margin-right:4px}.ql-link-tooltip.editing a.done,.ql-link-tooltip.editing input.input{display:inline-block}.ql-link-tooltip.editing a.change,.ql-link-tooltip.editing a.remove,.ql-link-tooltip.editing a.url{display:none}.ql-multi-cursor{position:absolute;left:0;top:0;z-index:1000}.ql-multi-cursor .cursor{margin-left:-1px;position:absolute}.ql-multi-cursor .cursor-flag{bottom:100%;position:absolute;white-space:nowrap}.ql-multi-cursor .cursor-name{display:inline-block;color:#fff;padding:2px 8px}.ql-editor.ql-ie-10 br,.ql-editor.ql-ie-9 br,.ql-multi-cursor .cursor.hidden .cursor-flag{display:none}.ql-multi-cursor .cursor-caret{height:100%;position:absolute;width:2px}.ql-multi-cursor .cursor.top .cursor-flag{bottom:auto;top:100%}.ql-multi-cursor .cursor.right .cursor-flag{right:-2px}.ql-paste-manager{left:-100000px;position:absolute;top:50%}.ql-toolbar{box-sizing:border-box}.ql-tooltip{background-color:#fff;border:1px solid #000;box-sizing:border-box;position:absolute;top:0;white-space:nowrap;z-index:2000}.ql-tooltip a{text-decoration:none}.ql-container{box-sizing:border-box;cursor:text;height:100%;margin:0;overflow-x:hidden;overflow-y:auto}.ql-editor{box-sizing:border-box;min-height:100%;outline:0;tab-size:4;white-space:pre-wrap}.ql-editor div{margin:0;padding:0}.ql-editor a{text-decoration:underline}.ql-editor b{font-weight:700}.ql-editor i{font-style:italic}.ql-editor s{text-decoration:line-through}.ql-editor u{text-decoration:underline}.ql-editor a,.ql-editor b,.ql-editor i,.ql-editor s,.ql-editor span,.ql-editor u{background-color:inherit}.ql-editor img{max-width:100%}.ql-editor blockquote,.ql-editor ol,.ql-editor ul{margin:0 0 0 2em;padding:0}.ql-editor ol{list-style-type:decimal}.ql-editor ul{list-style-type:disc}.ql-snow .ql-image-tooltip a{border:1px solid #06c}.ql-snow .ql-image-tooltip a.insert{background-color:#06c;color:#fff}.ql-snow .ql-image-tooltip .preview{border-color:#ccc;color:#ccc}.ql-snow .ql-link-tooltip a,.ql-snow .ql-link-tooltip span{line-height:25px}.ql-snow .ql-multi-cursor .cursor-name{border-radius:4px;font-size:11px;font-family:Arial;margin-left:-50%;padding:4px 10px}.ql-snow .ql-multi-cursor .cursor-triangle{border-left:4px solid transparent;border-right:4px solid transparent;height:0;margin-left:-3px;width:0}.ql-snow .ql-multi-cursor .cursor.left .cursor-name{margin-left:-8px}.ql-snow .ql-multi-cursor .cursor.right .cursor-flag{right:auto}.ql-snow .ql-multi-cursor .cursor.right .cursor-name{margin-left:-100%;margin-right:-8px}.ql-snow .ql-multi-cursor .cursor-triangle.bottom{border-top:4px solid transparent;display:block;margin-bottom:-1px}.ql-snow .ql-multi-cursor .cursor-triangle.top{border-bottom:4px solid transparent;display:none;margin-top:-1px}.ql-snow .ql-multi-cursor .cursor.top .cursor-triangle.bottom{display:none}.ql-snow .ql-multi-cursor .cursor.top .cursor-triangle.top{display:block}.ql-snow.ql-toolbar{box-sizing:border-box;padding:8px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border:3px outset grey}.ql-snow.ql-toolbar .ql-format-group{display:inline-block;margin-right:15px;vertical-align:middle}.ql-snow.ql-toolbar .ql-format-separator{box-sizing:border-box;background-color:#ddd;display:inline-block;height:14px;margin-left:4px;margin-right:4px;vertical-align:middle;width:1px}.ql-snow.ql-toolbar .ql-format-button,.ql-snow.ql-toolbar .ql-picker .ql-picker-label{display:inline-block;height:24px;background-repeat:no-repeat;background-size:18px 18px;cursor:pointer;box-sizing:border-box;line-height:24px;vertical-align:middle}.ql-snow.ql-toolbar .ql-format-button{background-position:center center;text-align:center;width:24px}.ql-snow.ql-toolbar .ql-picker{box-sizing:border-box;color:#444;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;position:relative}.ql-snow.ql-toolbar .ql-picker .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker .ql-picker-options .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-options .ql-picker-item:hover{color:#06c}.ql-snow.ql-toolbar .ql-picker .ql-picker-label{background-color:#fff;background-position:right center;border:1px solid transparent;position:relative;width:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAKlBMVEUAAABJSUlAQEBERERFRUVERERERERERERERERFRUVEREREREREREREREQJcW6NAAAADXRSTlMAFRzExcbLzM/Q0dLbKbcyLwAAADVJREFUCNdjYCAeMKYJQFnSdzdCWbl3r0NZvnev4tFre/cKlNV79yaUpXP3EJTFtEqBBHcAAHyoDQk0vM/lAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-picker .ql-picker-options{background-color:#fff;border:1px solid transparent;box-sizing:border-box;display:none;padding:4px 8px;position:absolute;width:100%}.ql-snow.ql-toolbar .ql-picker .ql-picker-options .ql-picker-item{background-position:center center;background-repeat:no-repeat;background-size:18px 18px;box-sizing:border-box;cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow.ql-toolbar .ql-picker.ql-expanded .ql-picker-label{border-color:#ccc;color:#ccc;z-index:2;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAdElEQVR42mP4//8/VfBINGjVqlUMhw4dEj148OBpEAaxQWKkGgQz5BIQ/4fiSyAxkg2CuuQ/Gj5DjkFHsRh0jJwwwooHzCCQ145g8dpRcgw6j8WgCyQbtH//fhmgxttIhtwGiZETRjDDLoIwiA0UG820FGAA5b25+qRqGXcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc;box-shadow:rgba(0,0,0,.2) 0 2px 8px;display:block;margin-top:-1px;z-index:1}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-label{background-position:center center;width:28px}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options{padding:5px;width:152px}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options .ql-picker-item.ql-primary-color{margin-bottom:8px}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options .ql-picker-item:hover{border-color:#000}.ql-snow.ql-toolbar .ql-picker.ql-font{width:105px}.ql-snow.ql-toolbar .ql-picker.ql-size{width:80px}.ql-snow.ql-toolbar .ql-picker.ql-font .ql-picker-label,.ql-snow.ql-toolbar .ql-picker.ql-size .ql-picker-label{padding-left:8px;padding-right:8px}.ql-snow.ql-toolbar .ql-picker.ql-align .ql-picker-label{background-position:center center;width:28px}.ql-snow.ql-toolbar .ql-picker.ql-align .ql-picker-item{box-sizing:border-box;display:inline-block;height:24px;line-height:24px;vertical-align:middle;padding:0;width:28px}.ql-snow.ql-toolbar .ql-picker.ql-align .ql-picker-options{padding:4px 0}.ql-snow.ql-toolbar .ql-picker.ql-active:not(.ql-expanded) .ql-picker-label,.ql-snow.ql-toolbar:not(.ios) .ql-picker:not(.ql-expanded) .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAKlBMVEUAAAAAYc4AZMgAZcwAZs0AZs0AZs0AZ8wAZswAZs0AZswAZswAZswAZsx12LPhAAAADXRSTlMAFRzExcbLzM/Q0dLbKbcyLwAAADVJREFUCNdjYCAeMKYJQFnSdzdCWbl3r0NZvnev4tFre/cKlNV79yaUpXP3EJTFtEqBBHcAAHyoDQk0vM/lAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-bold,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bold],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bold],.ql-snow.ql-toolbar .ql-picker.ql-bold .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAYFBMVEUAAACAgIBAQEA5OTlAQEBERERAQEBERERERERERERDQ0NERERERERERERDQ0NERERERERFRUVERERERERFRUVERERERERERERERERERERERERERERERERERERERERERESN6WzHAAAAH3RSTlMAAggJDA8cQEtTWHF/i4yTpau+xMXX3O7v8/f6+/z+qN9w2AAAAFZJREFUeNqlzMcSgCAMRVEsYO+9vv//S9FhNIYld5HFmSTCqQ66dazkRzA1lPSQGRZGIsDMKMxRW7+2yCIcyf/QUyUGSnc+dkaqoFumM32pf2BqY+HUBfQaCPgVIBc1AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-bold.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bold].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bold].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-bold .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-bold:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=bold]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=bold]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-bold .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAYFBMVEUAAAAAgP8AYL8AccYAatUAZswAZMgAZMsAZswAZcsAZcsAZssAZssAZ80AZswAZs0AZswAZ8wAZswAZcwAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsxCU9XcAAAAH3RSTlMAAggJDA8cQEtTWHF/i4yTpau+xMXX3O7v8/f6+/z+qN9w2AAAAFZJREFUeNqlzMcSgCAMRVEsYO+9vv//S9FhNIYld5HFmSTCqQ66dazkRzA1lPSQGRZGIsDMKMxRW7+2yCIcyf/QUyUGSnc+dkaqoFumM32pf2BqY+HUBfQaCPgVIBc1AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-italic,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=italic],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=italic],.ql-snow.ql-toolbar .ql-picker.ql-italic .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAi0lEQVR42mMYvoARl4SLi0sNkGoAYmY0qf+MjIztu3fvrkYWZGLADZhB8pS4CN1lQUBqLRDvAQJXHMqIstEISp8BEZQYZAIi/v//f5ZSg0xBBCMj4ymyDQKGjxKQEgLiV8DweUS2QUBXGEOZp0EEJV4zgdJnKDLo379/JsS6iJHSFA0DTDhT9CiAAQBbWyIY/pd4rQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-italic.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=italic].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=italic].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-italic .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-italic:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=italic]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=italic]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-italic .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAk0lEQVR42u3SsQ3CMBBA0X/2BozACMQswg4EMQMUdOyQVdggdpagZAc4ihjJjYmU66K8xpZsfdnSsVxCzTFdEW6AB0oKcqdrLhQcNaK+PLc79QfapLTDgz8cU9Tv8ibZQqIBgI8OxhexH29KPz90jltgA7zownN+6C0Nowhg+JqEvCZbSDSHNDJBLBNdctWJXv18Ad5dJL0jVfDhAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-underline,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=underline],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=underline],.ql-snow.ql-toolbar .ql-picker.ql-underline .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAM1BMVEUAAABLS0tFRUVDQ0NERERDQ0NFRUVFRUVERERDQ0NERERFRUVERERERERERERERERERESvCHKbAAAAEHRSTlMAERpMbW6Bgry9xMXh5PP51ZZfkwAAAEdJREFUeNq9yEEKgDAMRNHERDWq6dz/tFLBQUC6KfRtPnzpsh/sC2AHrcRUo0iuDXONI7gMxVW9wIQWPFb5sMgMk5YTdMmvGw2DA8yS9di7AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-underline.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=underline].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=underline].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-underline .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-underline:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=underline]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=underline]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-underline .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAM1BMVEUAAAAAadIAYs4AZc0AZcwAZswAZ84AZswAZs0AZ8wAZcwAZs0AZswAZswAZswAZswAZsycBlETAAAAEHRSTlMAERpMbW6Bgry9xMXh5PP51ZZfkwAAAEdJREFUeNq9yEEKgDAMRNHERDWq6dz/tFLBQUC6KfRtPnzpsh/sC2AHrcRUo0iuDXONI7gMxVW9wIQWPFb5sMgMk5YTdMmvGw2DA8yS9di7AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-strike,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=strike],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=strike],.ql-snow.ql-toolbar .ql-picker.ql-strike .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAn1BMVEUAAAAAAACAgIBAQEA7OztAQEBLS0tHR0dAQEBJSUlGRkZERERCQkJERERDQ0NERERERERDQ0NFRUVERERERERERERERERERERFRUVERERERERERERFRUVDQ0NFRUVERERFRUVFRUVERERFRUVFRUVFRUVERERFRUVFRUVERERERERERERERERERERERERERERERERERERERERERERERERfrjwTAAAANHRSTlMAAQIMDRAREhQVKCk6PEhLT1xkZWZ4e4CCg4SIiZucoaersLK2wcTFydLX2ODi5err8fX3BKZfrQAAAH5JREFUGBmlwOEWgTAYBuC3isgMxCYAmwRh++7/2qRzttP/HnQTZjdjilkALzhR4wBvQiaLk8WXOJwlHVHjYgxnSmbeR0swGEkpxWZ3vt7fL/w9P4/ist+KdZ7zYYiWiCnScFYiRq1HFo4mxaKIKdJw0ooaVQovkaW1pUzQyQ86Agx4yKmWPAAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-strike.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=strike].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=strike].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-strike .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-strike:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=strike]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=strike]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-strike .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAolBMVEUAAAAAAP8AgP8AatUAYsQAYM8AadIAY8YAZswAYc4AZswAZM0AZcoAZswAZ8oAZswAZMsAZ8oAZswAZcoAZ8sAZswAZssAZssAZs0AZswAZ8wAZs0AZ8wAZs0AZswAZ8wAZ8wAZs0AZ8wAZ8wAZs0AZs0AZs0AZcwAZs0AZcwAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsyiCU+yAAAANXRSTlMAAQIMDRAREhQVKCk6PEhLT1xkZWZ4e4CAgoOEiImbnKGnq7CytsHExcnS19jg4uXq6/H190B1i7AAAAB/SURBVBgZpcDhFoEwGAbgt4pIBmImAJsEYfvu/9ZU52yn/z3oxk/vWuczD453psYRzoR0GkaLHzFYSzqhwvgY1pT0vI8WbzASQvDt/nJ7fN6ovb7P/HrYrTdZxoY+WoJEkoK14iEqPTKwFMkkCBJJClZcUqOM4USiMKYQETr5A2SVDLpJv6ZtAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-link,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=link],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=link],.ql-snow.ql-toolbar .ql-picker.ql-link .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAllBMVEUAAAD///9VVVVJSUk5OTlAQEBHR0dFRUVCQkJHR0dBQUFCQkJGRkZDQ0NGRkZFRUVCQkJDQ0NERERDQ0NERERFRUVERERFRUVDQ0NERERFRUVERERERERFRUVERERERERERERERERFRUVERERFRUVFRUVERERERERERERERERERERERERERERERERERERERERERERERETx5KUoAAAAMXRSTlMAAAYHCQwZGiMkJzIzOUJOYGNlfoCJl5ibnaCxtLa8xsfIycrQ1OHi5uvs7e/19vn8NGTYeAAAAJdJREFUeNqN0McOgkAARdGnFJWiKGBhEEFpSn3//3OGjMmQ6MK7PMuLxVe/CXDTPl5DJmk3cOTTmZE7MDQES11RyhBY5vQU9aOB2z3gWVFMsXywYx3t9Q9tXsyDjlOVLQlOyanOL1ibkqB7l5odM01QSJqK6GdXmGwUHVhowImJIr2iMI9sLUWwa5LtFjPCSjSJBUl//HoDlmQPy0DFuCkAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-link.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=link].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=link].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-link .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-link:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=link]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=link]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-link .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAmVBMVEUAAAD///8AVdUAbdsAccYAatUAZswAYs4AZswAY80AacsAZswAZM0AZ8kAZM0AZcsAZcoAZMsAZcoAZcoAZssAZs0AZs0AZ8wAZs0AZswAZs0AZswAZs0AZswAZs0AZs0AZs0AZ8wAZswAZcwAZs0AZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsy/jsjWAAAAMnRSTlMAAAYHCQwZGiMkJzIzOUJOYGNlfoCAiZeYm52gsbS2vMbHyMnK0NTh4ubr7O3v9fb5/BM/koAAAACXSURBVHjajdDbEoFQAIXhpROqiAjaSdGJSq33fzjTbDO7GS78l9/lj9lXvwnw0le8gEzSuufAhzshr2doCpaGopQhoOX0Fb0GE9fbnidFMYV2Z8c62hgfWj6Z7zqOVY4kuCXHuqBgbUmC4Z9rdsx0QSFpLGKQXWCxUbRloQNHJoqMisI6sLUVwalJtitMCHPRJDYk/fHrDdIHECSPJag6AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-image,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=image],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=image],.ql-snow.ql-toolbar .ql-picker.ql-image .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAElBMVEUAAABERERERERFRUVEREREREQbmEZBAAAABXRSTlMAeMTFxj7M9NAAAABBSURBVAjXY2DAD1RDQSAYyAqFABALLANmMRnAWMwODIIMUFnGUAEIS1A0NADMYgTqhLBY4SyEKXCTTcGMEAJuAgBa9RKl6Fva+wAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-image.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=image].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=image].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-image .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-image:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=image]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=image]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-image .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAElBMVEUAAAAAZswAZcwAZs0AZs0AZszYB6XUAAAABXRSTlMAeMTFxj7M9NAAAABBSURBVAjXY2DAD1RDQSAYyAqFABALLANmMRnAWMwODIIMUFnGUAEIS1A0NADMYgTqhLBY4SyEKXCTTcGMEAJuAgBa9RKl6Fva+wAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-list,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=list],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=list],.ql-snow.ql-toolbar .ql-picker.ql-list .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAS1BMVEUAAABCQkJFRUVGRkZFRUVCQkJFRUVDQ0NFRUVFRUVFRUVERERERERERERERERFRUVERERERERERERERERERERERERERERERERERET32eciAAAAGHRSTlMAMjRCQ0lOfYKQlJmaocTFxuHi5OXm9falfyKhAAAATElEQVR42mMgFnCKYIpJMDDwSUABP1yIHyYkABYRlBAmwngucV50IXZGIXTjmQTZ0I0XIcp4DjEedCFWFlF041mZRdCN5xDjZiAdAACXwgbrzvG+ZgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-list.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=list].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=list].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-list .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-list:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=list]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=list]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-list .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAS1BMVEUAAAAAZswAZ8kAZM0AZ8oAZcsAZcsAZswAZswAZ80AZs0AZs0AZ80AZ8wAZcwAZs0AZs0AZswAZswAZswAZswAZswAZswAZswAZswCB3gJAAAAGHRSTlMAMjRCQ0lOfYKQlJmaocTFxuHi5OXm9falfyKhAAAATElEQVR42mMgFnCKYIpJMDDwSUABP1yIHyYkABYRlBAmwngucV50IXZGIXTjmQTZ0I0XIcp4DjEedCFWFlF041mZRdCN5xDjZiAdAACXwgbrzvG+ZgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-bullet,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bullet],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bullet],.ql-snow.ql-toolbar .ql-picker.ql-bullet .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAABxJREFUCNdjYMAPhBhdgMAJyFJmArGcGRgGXAcA/t0ImAOSO9kAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-bullet.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bullet].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bullet].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-bullet .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-bullet:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=bullet]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=bullet]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-bullet .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAAAAZcwAZs0AZs0AZsyEYJIjAAAABHRSTlMAxMXG4b8ciAAAABxJREFUCNdjYMAPhBhdgMAJyFJmArGcGRgGXAcA/t0ImAOSO9kAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-authorship,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=authorship],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=authorship],.ql-snow.ql-toolbar .ql-picker.ql-authorship .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAARVBMVEUAAABFRUVFRUUAAAAAAABERERDQ0NEREQAAABERERERERERERERERERERFRUVERERERERERERERERERERERERERERERERVeSBUAAAAFnRSTlMAMDtOT1JfYmassMfN09Ta6vD4+fz9w8DTTwAAAExJREFUGBmVwEkSgCAMBMBRQUEU4zb/f6oFF5KbNLp4EQ8rkxnWQ76whBRYkYwwxo08ZijDzWJBs7La0ZysLjSJVUKXKSgOhQuKw08fJOYE1SddZQoAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-authorship.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=authorship].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=authorship].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-authorship .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-authorship:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=authorship]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=authorship]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-authorship .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAARVBMVEUAAAAAZcoAaMsAZc4AZ8sAZ8oAZswAZcsAZ80AZs0AZ8wAZ8wAZswAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZszAoUIuAAAAFnRSTlMAMDtOT1JfYmassMfN09Ta6vD4+fz9w8DTTwAAAExJREFUGBmVwEkSgCAMBMBRQUEU4zb/f6oFF5KbNLp4EQ8rkxnWQ76whBRYkYwwxo08ZijDzWJBs7La0ZysLjSJVUKXKSgOhQuKw08fJOYE1SddZQoAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-color,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=color],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=color],.ql-snow.ql-toolbar .ql-picker.ql-color .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAgVBMVEUAAAAAAACAgIBAQEBVVVVDQ0NGRkZGRkZFRUVERERDQ0NDQ0NDQ0NCQkIAAABFRUUAAABDQ0NEREREREREREQAAABDQ0NDQ0NERERFRUVERERERERERERDQ0NERERERERFRUVFRUVERERERERERERERERERERERERERERERERERERLPkdWAAAAKnRSTlMAAQIEBhMWISUtLkVMTU5OT1BTVlpmeX6OkJmdvL3GztTj5/Hy8/b3/f5utmv0AAAAX0lEQVR42pXIRQ6AQABDUdzd3bX3PyCWwAwr+Is2ecyvuKriXmQD5otKoKBFQz+sKkU5khQZKdK8yMoyiQTFOIseEbqLWv6mAPW+bAPvJmN0j/N7nfmTFRI5Jzk0fWwD4sYJPnqIyzwAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-color.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=color].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=color].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-color .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-color:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=color]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=color]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-color .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAgVBMVEUAAAAAAP8AgP8AgL8AVdUAa8kAaNEAZMkAZ8gAZswAZM0AZMsAZc0AZ8oAZcsAZc4AZ8sAZswAZcsAZc0AZswAZ80AZcoAZcoAZs0AZ80AZs0AZs0AZs0AZ8wAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsy3JBcuAAAAKnRSTlMAAQIEBhMWISUtLkVMTU5OT1BTVlpmeX6OkJmdvL3GztTj5/Hy8/b3/f5utmv0AAAAX0lEQVR42pXIRQ6AQABDUdzd3bX3PyCWwAwr+Is2ecyvuKriXmQB5otKoKBFQz+sKkU5khQZKdK8yMoyiQTFOIseEbqLWv6mAPW+bAPvJmN0j/N7nfmTHRI5Jzk0fWwD4foJPqgJbeoAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-background,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=background],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=background],.ql-snow.ql-toolbar .ql-picker.ql-background .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAnFBMVEUAAAAAAACAgIBAQEAAAABVVVUAAAAAAAAAAABDQ0MAAABGRkZGRkYAAABFRUVERERDQ0MAAAAAAAAAAAAAAABDQ0MAAABDQ0MAAABCQkJFRUVDQ0NERERERERERERDQ0NDQ0NERERFRUVERERERERERERDQ0NERERERERFRUVFRUVERERERERERERERERERERERERERERERERERETMTXVbAAAAM3RSTlMAAQIEBgYHCBMTFBYhIyUtLjE2N0JFS0xNTU5QU1ZaeX6OkJmdvL3GztTj5/Hy8/b3/f5Qd6EEAAAAf0lEQVR42o2PRw6DQBRDHVJISCUhvTd69/3vhgT6MLPDmoX15KfRR++c6mdKgVIOTRFoeJ6hE+tCnjXRgUv+oc02jJNyrYk/vj/8jhRxnheLVZHNupn1Yp3nVIgzjhoUDlvxQR/AIOBtKbNjerUB+x7vhZjARPkLyslbYIe+qQDqMQxGJwkBGwAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-background.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=background].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=background].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-background .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-background:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=background]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=background]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-background .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAllBMVEUAAAAAAP8AgP8AgL8AVdUAbbYAYL8Aa8kAZswAaNEAZMkAZswAZ8gAZswAZM0AaMsAaNAAZswAZM0AZMsAZswAZc0AZ8oAZ80AZcsAZswAZcsAZc0AZswAZcoAZcoAZs0AZ80AZs0AZs0AZs0AZ8wAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsy8dW5vAAAAMXRSTlMAAQIEBgcIExQWISMlLS4xNjdCRUtMTU1OUFNWWnl+jpCZnby9xs7U4+fx8vP29/3+dqGBzgAAAH5JREFUeNqNj0cOg0AUQx1CgFQS0nujd9//ckigDzM7rFlYT34afYzOuX2WFCjl0BWBRhAYOnEu5EkTPfjkH9pswzSr15r44/vDr6mI87JarKrCHmbOi22ethDPTDoUT3vxwRDAJOJtKbNjfnUB957uhVjATPkLyslbYIexaQB/ngudkm14XQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-left,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=left],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=left],.ql-snow.ql-toolbar .ql-picker.ql-left .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAAClJREFUCNdjYMAPRFxcnCAsFRcXZwYiAFCHC0STCpjlTJwOJwaYDoIaAKIACBBRNsu4AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-left.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=left].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=left].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-left .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-left:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=left]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=left]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-left .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAAAAZcwAZs0AZs0AZsyEYJIjAAAABHRSTlMAxMXG4b8ciAAAAClJREFUCNdjYMAPRFxcnCAsFRcXZwYiAFCHC0STCpjlTJwOJwaYDoIaAKIACBBRNsu4AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-right,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=right],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=right],.ql-snow.ql-toolbar .ql-picker.ql-right .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAAChJREFUCNdjYCAIRFxcnCAsFRcXZ2KUu0B0qIBZzgzEaXFigGkhpAMAmbwIEMJ9k/cAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-right.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=right].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=right].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-right .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-right:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=right]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=right]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-right .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAAAAZcwAZs0AZs0AZsyEYJIjAAAABHRSTlMAxMXG4b8ciAAAAChJREFUCNdjYCAIRFxcnCAsFRcXZ2KUu0B0qIBZzgzEaXFigGkhpAMAmbwIEMJ9k/cAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-center,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=center],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=center],.ql-snow.ql-toolbar .ql-picker.ql-center .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAAC1JREFUCNdjYCAAGF1cXBTALCYgy4CBIBBxAQEnIEsFzHJmIMYKiCVMYBYhSwCyqQhMfft6AQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-center.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=center].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=center].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-center .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-center:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=center]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=center]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-center .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAAAAZcwAZs0AZs0AZsyEYJIjAAAABHRSTlMAxMXG4b8ciAAAAC1JREFUCNdjYCAAGF1cXBTALCYgy4CBIBBxAQEnIEsFzHJmIMYKiCVMYBYhSwCyqQhMfft6AQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-justify,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=justify],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=justify],.ql-snow.ql-toolbar .ql-picker.ql-justify .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAABpJREFUCNdjYMAPRFxAwAnIUgGznBkYBlwHAJGzCjB/C3owAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-justify.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=justify].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=justify].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-justify .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-justify:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=justify]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=justify]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-justify .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAALklEQVR42mMYvoARzko9cwTIsyZR+zGGWcZgPUwIMUZGShwyGtijgT0a2EMMAADESwwWta/i5QAAAABJRU5ErkJggg==)}@media (-webkit-min-device-pixel-ratio:2){.ql-snow.ql-toolbar .ql-picker .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAIVBMVEUAAABCQkJDQ0NDQ0NERERERERERERERERERERERERERERehmmoAAAACnRSTlMATVRbaeXo6fz+NPhZJgAAAF9JREFUKM9jYBjkQC0JXYS5a4UBmpDFqlXN6IpWrUJTprEKCJpQhLJAQsswhZaiCImDhAJp5kMxkPGJZLjLEiQ0GUWIZdaqVSsdUM33XLVqCpqVLLPQFTEwmAcP9qQAAFUgKabkwE6gAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-picker.ql-expanded .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAJFBMVEWqqqr////AwMDAwMDAwMDBwcHBwcHBwcHBwcHBwcHBwcHBwcEexLCPAAAAC3RSTlMAAE1UW2nl6On8/tZA57EAAABxSURBVHjazc4hFkBAGMTxL3AAp+AGniYiyaLnBETHoKkknbc7l7OrzW7zhP3HX5mRxCskEsknEaZoU6VDNbAyRRugSqICpoVotnT7dBFllnpefPuHUpjGD78aSztRfAK65cUOOIQpPnXrkFSDEFFB0APtK1HCkKpz1wAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-picker.ql-active:not(.ql-expanded) .ql-picker-label,.ql-snow.ql-toolbar:not(.ios) .ql-picker:not(.ql-expanded) .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAIVBMVEUAAAAAZ8oAZMsAZc0AZswAZswAZswAZswAZswAZswAZswhMkyGAAAACnRSTlMATVRbaeXo6fz+NPhZJgAAAF9JREFUKM9jYBjkQC0JXYS5a4UBmpDFqlXN6IpWrUJTprEKCJpQhLJAQsswhZaiCImDhAJp5kMxkPGJZLjLEiQ0GUWIZdaqVSsdUM33XLVqCpqVLLPQFTEwmAcP9qQAAFUgKabkwE6gAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-bold,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bold],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bold],.ql-snow.ql-toolbar .ql-picker.ql-bold .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAxlBMVEUAAABVVVUzMzNVVVVJSUlGRkZAQEBJSUlAQEBAQEBAQEBHR0dCQkJGRkZAQEBGRkZCQkJERERDQ0NDQ0NGRkZERERDQ0NFRUVCQkJFRUVERERDQ0NDQ0NFRUVDQ0NERERERERERERERERERERERERERERERERERERFRUVDQ0NERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERfjmwgAAAAQXRSTlMAAwUGBwsMDhAUGBkbHSAhIykuOUJERUpNUVZYXGRne3yAi4+SmqWmq67R1tfY2dve5ujp7/Dy8/T19vf4+fv8/mUg1b0AAACrSURBVDjL5dPFDgJBEEXRxt3d3d11gPv/P8WCEAgZuno/b1WLk1TqJaWUI1Jc8852Mqz5bdHHALDK2CF+ckgYIHp/0GtypxpHYKlFSqkycJeQD7hIKADMJFQHulrkSrYs2MflCnZZgzKvo7RJmZeSAWIf1V3nihSGAG19BUq1gKmEQsBZQkHAklATmOuQN5zvP4COQQWnmIxuFfERWOTsXmrztWg8qHqUU/IEzOhNFx6Ncl4AAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-bold.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bold].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bold].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-bold .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-bold:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=bold]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=bold]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-bold .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAxlBMVEUAAAAAVaoAZswAVdUAbdsAXdEAatUAbcgAYM8AZswAasoAZswAaNAAasoAaMcAZMkAZswAZM0AZM0AZ8kAZM0AZcsAZMsAZMsAZ8oAZc0AZc0AZcsAZ8oAZswAZssAZssAZcwAZssAZ80AZs0AZ8wAZ80AZswAZ8wAZ8wAZ8wAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsyeO+aMAAAAQXRSTlMAAwUGBwsMDhAUGBkbHSAhIykuOUJERUpNUVZYXGRne3yAi4+SmqWmq67R1tfY2dve5ujp7/Dy8/T19vf4+fv8/mUg1b0AAACrSURBVDjL5dPFDgJBEEXRxt3d3d11gPv/P8WCEAgZuno/b1WLk1TqJaWUI1Jc8852Mqz5bdHHALDK2CF+ckgYIHp/0GtypxpHYKlFSqkycJeQD7hIKADMJFQHulrkSrYs2MflCnZZgzKvo7RJmZeSAWIf1V3nihSGAG19BUq1gKmEQsBZQkHAklATmOuQN5zvP4COQQWnmIxuFfERWOTsXmrztWg8qHqUU/IEzOhNFx6Ncl4AAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-italic,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=italic],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=italic],.ql-snow.ql-toolbar .ql-picker.ql-italic .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAjVBMVEUAAAAAAACAgIBAQEBVVVVAQEBAQEBCQkJCQkJFRUVDQ0NBQUFDQ0NDQ0NDQ0NFRUVERERERERERERDQ0NERERDQ0NERERERERERERFRUVFRUVERERFRUVERERERERDQ0NERERERERERERDQ0NFRUVEREREREREREREREREREREREREREREREREREREREQUqV1+AAAALnRSTlMAAQIEBggMGyMlKisuUFhZXmJmb3R9hIiKjZGTlKWprrG0uL3BxObt8PL19/j9SqrrawAAAIJJREFUOMvl0jUOQgEQRVHc3d1dzv6XRwch+WRq4NYnmVdMKvU35RZXz+7LQiJqe6uXiDrvqJuI8vM7ALd14fOwIabR+i1agUmfUA1QGedMgJrYRZPGGEVoh0ZgMmeUAlTBMbrWwiZCEwwitEc9MNkLigGq4RBda2MVoRn6X/jfv9YDjuYgGnCpSqcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-italic.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=italic].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=italic].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-italic .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-italic:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=italic]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=italic]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-italic .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAjVBMVEUAAAAAAP8AgP8AgL8AVdUAYL8AatUAaNAAZswAZ8gAZ8gAZcoAZM0AZswAZcsAZMsAZMsAZcsAZ8sAZcoAZcoAZswAZs0AZ8wAZs0AZ8wAZswAZs0AZs0AZswAZ8wAZ8wAZs0AZswAZ8wAZ8wAZs0AZcwAZswAZswAZswAZswAZswAZswAZswAZswAZsyyI9XbAAAALnRSTlMAAQIEBggMGyMlKisuUFhZXmJmb3R9hIiKjZGTlKWprrG0uL3BxObt8PL19/j9SqrrawAAAIJJREFUOMvl0jUOQgEQRVHc3d1dzv6XRwch+WRq4NYnmVdMKvU35RZXz+7LQiJqe6uXiDrvqJuI8vM7ALd14fOwIabR+i1agUmfUA1QGedMgJrYRZPGGEVoh0ZgMmeUAlTBMbrWwiZCEwwitEc9MNkLigGq4RBda2MVoRn6X/jfv9YDjuYgGnCpSqcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-underline,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=underline],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=underline],.ql-snow.ql-toolbar .ql-picker.ql-underline .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAWlBMVEUAAAAAAAAzMzNAQEBGRkZERERERERCQkJERERDQ0NFRUVERERERERFRUVERERERERERERFRUVERERERERERERDQ0NFRUVERERERERERERERERERERERERERET15sOLAAAAHXRSTlMAAQUMLC04TU9UVYePkJKkxMXG2Nrf4+jz9/n6/qlZ0HQAAACUSURBVHja7Y3BDsIgEAW3UCmCFatQxLL//5uuiQ0py1EPxs5tHhMW/oMhxoF5TUSMzGuQqH2PfiO60yiLStIHi260qqKKNLDI0XouOpI6Fh1f/x9W6xOpYZHwNM/9u5lJvACGzvSQRiWlOiUkNDSwuMFCi87mkmTbQRvt18aXWwxhXFiW4IyAr3LBJtMmmtrRFT7ME0B0HEswIOSJAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-underline.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=underline].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=underline].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-underline .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-underline:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=underline]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=underline]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-underline .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAWlBMVEUAAAAAAP8AZswAatUAaMsAZswAZM0AZ8oAZMsAZMsAZswAZswAZs0AZ80AZ8wAZ8wAZcwAZs0AZs0AZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZszogqY1AAAAHXRSTlMAAQUMLC04TU9UVYePkJKkxMXG2Nrf4+jz9/n6/qlZ0HQAAACUSURBVHja7Y3BDsIgEAW3UCmCFatQxLL//5uuiQ0py1EPxs5tHhMW/oMhxoF5TUSMzGuQqH2PfiO60yiLStIHi260qqKKNLDI0XouOpI6Fh1f/x9W6xOpYZHwNM/9u5lJvACGzvSQRiWlOiUkNDSwuMFCi87mkmTbQRvt18aXWwxhXFiW4IyAr3LBJtMmmtrRFT7ME0B0HEswIOSJAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-strike,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=strike],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=strike],.ql-snow.ql-toolbar .ql-picker.ql-strike .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAABLFBMVEUAAACAgIBVVVVAQEAzMzNVVVVAQEA5OTlNTU1JSUlERERHR0dDQ0NGRkZDQ0NAQEBCQkJAQEBGRkZAQEBGRkZERERBQUFERERGRkZCQkJGRkZERERFRUVERERDQ0NFRUVERERDQ0NFRUVCQkJDQ0NFRUVCQkJDQ0NERERDQ0NERERERERDQ0NFRUVERERERERERERERERFRUVERERDQ0NFRUVERERERERFRUVERERERERDQ0NDQ0NFRUVERERERERFRUVERERERERFRUVERERERERDQ0NERERFRUVERERERERERERFRUVERERERERERERERERFRUVERERERERERERFRUVERERERERERERERERERERERERERERERERERERERERERERERERERERERET5TTiyAAAAY3RSTlMAAgMEBQYICQoODxITFhcYGxwdICEtLzEzNjc4P0BFRkdISk1YWWBjaWtsdHZ3f4CHiImKjJGSk5SVl5ufo6Smp625uru8vb/BwsPExcbMzs/Q0dPi4+Tl6+zv8PL19vf4+/z2SQ4sAAABE0lEQVQ4y2NgGDmAV8c5PCkxxFGDE6cSDuOEZCiI0WXGroY/OBkJeHJhU8Pkm4wCXBixKFIHyUTqibJzS5lEgNhqWBT5AMWD+CFsHg8gxxuLoniguCyMIwLkxGFRBPKZDKEw8gMqCuAloEgb7HADMTZ8ijisjHTUlCSFOdgFxeVUNPXM7Z38QmJ9EApQxFFCyxeuxhtFPC7U39nBQl9LVV5CiAMpiFDEOYQlldR0jGwM8DmOVVDRLBpkpDIBr/KBXOBKKNSEgYpiMUQjgaLChBQ5A0W94AHO6wXkumEoUgY5NcpUUYCFRUDBNAqHw22T0YAdNp9bo6qxZMLqI4VAhJIgBZwelzZ0D4uLC3M3lB5B5QgAFQdgZ6NzzvYAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-strike.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=strike].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=strike].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-strike .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-strike:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=strike]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=strike]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-strike .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAABLFBMVEUAAAAAgP8AVaoAgL8AZswAVdUAYL8AccYAZswAbcgAZswAY8YAa8kAaNEAZMgAasoAaNAAZMgAasoAaMcAZMkAZswAZ8kAaMsAZM0AaMsAZswAZM0AZcoAZMsAZMsAZswAZc0AZ8oAZMsAZ8oAZcsAZMsAZcoAZMsAZswAZssAZssAZcoAZssAZcwAZssAZs0AZswAZ8wAZs0AZs0AZswAZswAZ8wAZs0AZs0AZ80AZ8wAZswAZ8wAZs0AZ8wAZ8wAZs0AZs0AZswAZ8wAZs0AZs0AZ8wAZcwAZs0AZ8wAZswAZcwAZs0AZs0AZ8wAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswL5dPDAAAAY3RSTlMAAgMEBQYICQoODxITFhcYGxwdICEtLzEzNjc4P0BFRkdISk1YWWBjaWtsdHZ3f4CHiImKjJGSk5SVl5ufo6Smp625uru8vb/BwsPExcbMzs/Q0dPi4+Tl6+zv8PL19vf4+/z2SQ4sAAABE0lEQVQ4y2NgGDmAV8c5PCkxxFGDE6cSDuOEZCiI0WXGroY/OBkJeHJhU8Pkm4wCXBixKFIHyUTqibJzS5lEgNhqWBT5AMWD+CFsHg8gxxuLoniguCyMIwLkxGFRBPKZDKEw8gMqCuAloEgb7HADMTZ8ijisjHTUlCSFOdgFxeVUNPXM7Z38QmJ9EApQxFFCyxeuxhtFPC7U39nBQl9LVV5CiAMpiFDEOYQlldR0jGwM8DmOVVDRLBpkpDIBr/KBXOBKKNSEgYpiMUQjgaLChBQ5A0W94AHO6wXkumEoUgY5NcpUUYCFRUDBNAqHw22T0YAdNp9bo6qxZMLqI4VAhJIgBZwelzZ0D4uLC3M3lB5B5QgAFQdgZ6NzzvYAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-link,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=link],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=link],.ql-snow.ql-toolbar .ql-picker.ql-link .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAABDlBMVEUAAAD///8AAACAgIBVVVVAQEAzMzNVVVVAQEBNTU1HR0dAQEBJSUlGRkZDQ0NAQEBERERHR0dGRkZDQ0NBQUFGRkZERERCQkJGRkZFRUVCQkJFRUVERERDQ0NDQ0NCQkJFRUVDQ0NERERDQ0NFRUVDQ0NFRUVFRUVFRUVFRUVERERDQ0NFRUVERERFRUVERERERERDQ0NFRUVFRUVERERERERERERERERFRUVERERERERERERFRUVDQ0NERERERERFRUVERERERERERERERERERERERERERERERERERERERERFRUVERERERERERERERERERERERERERERERERERERERERERERERERERERERESFPz0UAAAAWXRSTlMAAAECAwQFBggKEhQVFhccHiQoKissLTIzNDpGR0hMTU5QUlRVW12BgoaHjI2PmJmam5ygpKWosbKztLW6vcDD0NLT2Nna3N7g4eLj5Ofo6err7u/w8vn7/A90CXkAAAFqSURBVDjLzdTHUgJREIXho8yo6JgFc0LFjAkVMZAFJYrCzP/+L+JCtJipS5U7Patbt79Vd1dr6BfRHyBJUiie6dSSiwrEh2aeAPAO7cEoUqWXdHgQirQAOh7A46gZzVQBzsfmSgAnRhR6AjiS5OQAd9aE4t9GmqoCCRPKAGe9zzhQDxlQBzpjknab9c2RD2DBgGrgzUlqQnfrHlg3oGug6Eh1oFsAEtvLVhAteUBuSjseP2lfzQf6dARQjY/s9SncY9uH7DQA7+ky/XkI+8YSfvRVC6k3AO4s34BHT90+1N2yYq8A+/5V0Wyi0ac2NJkD3KgfSaGF9QRQ9oCC5JSAiyCStA2k9jzISooCFQNaBlpWrJBdkTThQsOA7DYQ+3pbKeDWgHQFvDiSNJwEWDWheRfIOZKVBLiRCekYoBiZSAHkx83IfgDABXielhkpfAcAkJ/WICTrwAXgZlyDkRS9rDRu1wJL98/u0yeVYHcP1mwWWgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-link.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=link].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=link].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-link .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-link:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=link]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=link]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-link .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAABDlBMVEUAAAD///8AAP8AgP8AVaoAgL8AZswAVdUAYL8AZswAY8YAZswAYc4AaNEAZMgAZMgAZswAY80AZswAZ8gAZcoAaMsAZswAZswAZM0AZ8kAZcoAZswAZc0AZ8oAZc0AZ8oAZcsAZswAZ8oAZMsAZswAZc0AZcsAZ84AZswAZ84AZswAZswAZ8wAZs0AZs0AZs0AZ80AZswAZ8wAZswAZ8wAZswAZs0AZs0AZs0AZ8wAZswAZ8wAZ8wAZ8wAZs0AZswAZs0AZswAZswAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsxCnEEHAAAAWXRSTlMAAAECAwQFBggKEhQVFhccHiQoKissLTIzNDpGR0hMTU5QUlRVW12BgoaHjI2PmJmam5ygpKWosbKztLW6vcDD0NLT2Nna3N7g4eLj5Ofo6err7u/w8vn7/A90CXkAAAFqSURBVDjLzdTHUgJREIXho8yo6JgFc0LFjAkVMZAFJYrCzP/+L+JCtJipS5U7Patbt79Vd1dr6BfRHyBJUiie6dSSiwrEh2aeAPAO7cEoUqWXdHgQirQAOh7A46gZzVQBzsfmSgAnRhR6AjiS5OQAd9aE4t9GmqoCCRPKAGe9zzhQDxlQBzpjknab9c2RD2DBgGrgzUlqQnfrHlg3oGug6Eh1oFsAEtvLVhAteUBuSjseP2lfzQf6dARQjY/s9SncY9uH7DQA7+ky/XkI+8YSfvRVC6k3AO4s34BHT90+1N2yYq8A+/5V0Wyi0ac2NJkD3KgfSaGF9QRQ9oCC5JSAiyCStA2k9jzISooCFQNaBlpWrJBdkTThQsOA7DYQ+3pbKeDWgHQFvDiSNJwEWDWheRfIOZKVBLiRCekYoBiZSAHkx83IfgDABXielhkpfAcAkJ/WICTrwAXgZlyDkRS9rDRu1wJL98/u0yeVYHcP1mwWWgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-image,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=image],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=image],.ql-snow.ql-toolbar .ql-picker.ql-image .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAFVBMVEUAAABCQkJEREREREREREREREREREQL6X1nAAAABnRSTlMATXjl6OmAFiJpAAAAZklEQVR42sXQsQ3AIAxEUeQZoKdyzwg0DALo9h8hiCYXo4R0/MbSK1ycO5EHlScVpj4Jj97p/vtJPi9U+kptXIlMIY2r1b4XIBpSoDJJFIyYtKohAWBIV8Ke9kv8X7WwtEmBKbkDXfWkWdehkaSCAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-image.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=image].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=image].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-image .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-image:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=image]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=image]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-image .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAFVBMVEUAAAAAZ8oAZswAZswAZswAZswAZsx4QzxlAAAABnRSTlMATXjl6OmAFiJpAAAAZklEQVR42sXQsQ3AIAxEUeQZoKdyzwg0DALo9h8hiCYXo4R0/MbSK1ycO5EHlScVpj4Jj97p/vtJPi9U+kptXIlMIY2r1b4XIBpSoDJJFIyYtKohAWBIV8Ke9kv8X7WwtEmBKbkDXfWkWdehkaSCAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-list,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=list],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=list],.ql-snow.ql-toolbar .ql-picker.ql-list .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAw1BMVEUAAAAAAABVVVVAQEBERERAQEBJSUlGRkZHR0dFRUVCQkJERERAQEBGRkZDQ0NFRUVDQ0NCQkJGRkZDQ0NCQkJERERDQ0NFRUVERERFRUVERERDQ0NERERERERDQ0NFRUVERERERERERERERERERERERERERERFRUVERERERERERERFRUVERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERESFbZw4AAAAQHRSTlMAAQYIDxAVFhkaGx4gKCo0NTY3OU10fYKIiYqMj56fo6SmqKmvtLe6vr/ExcbLz9fh4uXm5+jp7O/w8vP3+vv9Z7IwDAAAAK1JREFUOMvV0scOglAQQFGwYO+oiIq9YldEFPX+/1e5cGEii2FFdNY3b/JORlF+dAqNrS1GQyDEW+9Id/gaRw9EgQacMNEhuO4caD7rlgDS/2yAVWTiia53HWeEaMLzwUKIdvt08n4TxLMptc1UEo/38YqCuGZzKknimxDi6jpa8Vjn6I4kcQNgLkSmVSvjizeeb9ITbzxXxxLETatSxRfEWwAzicC4uANN+at5AdptTQ0Ubk4LAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-list.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=list].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=list].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-list .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-list:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=list]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=list]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-list .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAw1BMVEUAAAAAAP8AVdUAYL8AZswAYM8AYc4AaNEAZswAYs4AaNAAZswAaMcAZswAZ8gAZ8kAZcoAaMsAZswAZ8kAZ8oAZcoAZswAZswAZ8wAZs0AZs0AZswAZs0AZs0AZ8wAZs0AZ8wAZ8wAZs0AZ8wAZswAZswAZs0AZ8wAZswAZcwAZcwAZs0AZs0AZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZszno9YmAAAAQHRSTlMAAQYIDxAVFhkaGx4gKCo0NTY3OU10fYKIiYqMj56fo6SmqKmvtLe6vr/ExcbLz9fh4uXm5+jp7O/w8vP3+vv9Z7IwDAAAAK1JREFUOMvV0scOglAQQFGwYO+oiIq9YldEFPX+/1e5cGEii2FFdNY3b/JORlF+dAqNrS1GQyDEW+9Id/gaRw9EgQacMNEhuO4caD7rlgDS/2yAVWTiia53HWeEaMLzwUKIdvt08n4TxLMptc1UEo/38YqCuGZzKknimxDi6jpa8Vjn6I4kcQNgLkSmVSvjizeeb9ITbzxXxxLETatSxRfEWwAzicC4uANN+at5AdptTQ0Ubk4LAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-bullet,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bullet],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bullet],.ql-snow.ql-toolbar .ql-picker.ql-bullet .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAAAzSURBVCjPY2AYACBsyCAcCgOGYCHTYAZTuFAwRCgISSgILCSiyCACF1JkGBgw6voBcj0AFsUtDasGrUcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-bullet.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bullet].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bullet].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-bullet .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-bullet:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=bullet]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=bullet]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-bullet .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAAAzSURBVCjPY2AYACBsyCAcCgOGYCHTYAZTuFAwRCgISSgILCSiyCACF1JkGBgw6voBcj0AFsUtDasGrUcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-authorship,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=authorship],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=authorship],.ql-snow.ql-toolbar .ql-picker.ql-authorship .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAllBMVEUAAACAgIBAQEBCQkIAAABCQkJAQEBGRkZERERERERCQkJGRkZDQ0NDQ0NDQ0MAAAAAAAAAAABDQ0NFRUVERERFRUVERERFRUVERERFRUVERERERERERERERERERERERERERERFRUVEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREQe3JVeAAAAMXRSTlMAAhgbHx8gIS0xMjM5VFdcXWZyd3yChImPkKy4yMrO0tPj5ebq7e7v8PLz9/j6/P3+mEwo9QAAAJxJREFUGBnVwNcOgjAYBeCj4l7FjeAGUZzn/V9O0kikSftf44c/0A+Tc9iFqHll7tKEJKAWQLKjtockpZZC8qL2hiSjlkESUYsgmVNbQtKhNoCgNrwz95w14NTe8Os2gUP9wJ8p7NYsebRg06NhAZsVDRFstjQksMlogs2Rhhg2o5glpxGqz1O+g/JQUL6TQkH5TmMUPOU7jD1U1AdG8S1kERvjygAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-authorship.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=authorship].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=authorship].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-authorship .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-authorship:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=authorship]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=authorship]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-authorship .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAllBMVEUAAAAAgP8AasoAaNAAY84AaMcAZMkAZswAaMsAZswAZM0AZ8kAZMsAZ8oAZ8oAZcsAZc4AZ80AZcwAZcwAZcwAZswAZs0AZs0AZs0AZ80AZs0AZ8wAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsyCDIYeAAAAMXRSTlMAAhgbHyAhLTEyMzlUV1xdXWZyd3yChImPkKy4yMrO0tPj5ebq7e7v8PLz9/j6/P3+PxHOPAAAAJxJREFUGBnVwNcOgjAYBeCj1j0q7oEbRHGe9385SSORJu1/jR/+QGcdn9ctiNSVmYuCZEljCcmOxh6ShEYCyYvGG5KURgpJSCOEZEpjDkmTRheCSu/OzHNSg1djw6/bCB7VA3/GcFux4FGHS5uWGVwWtIRw2dISwyWlDS5HWiK49CMWnPooP6UDD62Q04GXRk4HXgPk1DDwGCiU1AcZWy1RmD8CRQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-color,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=color],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=color],.ql-snow.ql-toolbar .ql-picker.ql-color .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAz1BMVEUAAAAAAACAgIBVVVVAQEBVVVU5OTk7OztLS0tHR0dGRkZCQkIAAABERERDQ0NDQ0NDQ0NDQ0NGRkZERERERERCQkJFRUVERERFRUVEREQAAAAAAABDQ0NFRUVEREQAAABERERFRUVERERDQ0NDQ0NERERERERERERERERERERERERERERERERERERFRUVFRUVERERERERERERERERERERDQ0NERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERbYaT1AAAARHRSTlMAAQIDBAYJDRESFhsfIiYqNUFCREtNVVZZWlxdY2RlZm1zdXZ9hI6Tl6Sws7nExcnS09XY2d/g5ejp6+zt8PP09/n9/idH/qoAAADKSURBVBgZ1cDXUsJAAIXhg2KMGruxsGoUe8cWoij1f/9nYiZDGJjsLrfwaRHEWRZrhuAXWoH8zgBO5VVpADTktU9uVz5P5B7lsdUn19+U2x3w+gbcyilsA0cnwP+qXOpAWl1pAhdyqKZAXboGvpZkdwi0Q2m9CxzI7oUJz7LaYdJgWzYPTLmXxUaPKZ01ld0A7xXllr+BK5VlwLlGLoFPlWXQCjQSduBDZfFPM9bY8V+6p7kXmcTBRCqYxMmoYBKnmgqRSRxqkebUEKsKOlxMa6IbAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-color.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=color].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=color].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-color .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-color:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=color]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=color]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-color .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAA0lBMVEUAAAAAAP8AgP8AVaoAgL8AVdUAccYAYsQAadIAY8YAaNEAaNAAY84AacsAZckAZ8gAZcoAZswAZM0AZcsAZswAZ8oAZswAZc0AZMsAZswAZ8oAZcsAZc4AZMsAZswAZcoAZ80AZcwAZswAZssAZssAZswAZs0AZs0AZs0AZ8wAZ8wAZ8wAZ8wAZswAZcwAZs0AZcwAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswVaivDAAAARXRSTlMAAQIDBAYJDRESFhsfIiYqNUFCREtNVVZZWlxdXWNkZWZtc3V2fYSOk5eksLO5xMXJ0tPV2Nnf4OXo6evs7fDz9Pf5/f6Y2SWXAAAAy0lEQVQYGdXA11LCQACF4YNijBq7sbCWKPaOLURREPjf/5WYyRAGJrvLLXyaB3GWxZoi+IFWIL9TgBN5VRoADXntktuWzyO5B3ls9Mj11uV2C7y8AjdyCtvAwRHwtyyXOpBWl5rAuRyqKVCXroDPBdntA+1QWv0H9mT3zJgnWW0xrr8pm3sm3MlircuEzorKroG3inKLX8ClyjLgTEMXwIfKMmgFGgo78K6y+LsZa+TwN93RzItM4mAiFUziZFQwiVNNheg4cahFmlEDFzs7cwmPHM8AAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-background,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=background],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=background],.ql-snow.ql-toolbar .ql-picker.ql-background .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAA4VBMVEUAAAAAAACAgIBVVVVAQEBVVVU5OTk7OztLS0tHR0dGRkZCQkJERERDQ0NDQ0NDQ0NDQ0NERERCQkJEREQAAAADAwMGBgZDQ0NEREQODg5ERERDQ0NFRUVERERERERERERDQ0MiIiJDQ0MmJiZEREQrKytEREREREQyMjIyMjJEREREREREREQ4ODhERERERERFRUVFRUVERERERERERERERERAQEBERERERERBQUFERERERERERERBQUFERERERERERERBQUFERERERERERERDQ0NERERERERDQ0NERERERESZD8GyAAAASnRSTlMAAQIDBAYJDRESFhsiJio1QURJS01QU1RWWVpjZGVtdXZ4fYCEiI6TnZ6ksLO3ucTFydLT193g4OLl5ebn6enq6+7w8vP39/n+/rihcb4AAADbSURBVHjazZPFDsMwEERdZkpTZmbmpszd//+grhpFSaS1e+khc1jbmrG1z7KZdSXLgvo79M9ziKCkKJIeoUPJA8AxKT6H5QGVE3dlmwJqKqaLwVdRIV1fDfVEdKGXGnoFBXQtDIwnWJp8uswd/XQWy8XD7aqD9srp2uJQ5NElVuiWGKvisLFz6Bpo3ryM+R84iXO6GoFBQ5ouAka9wyRdF0waUHSBpzl09xF0dTRmNnXu2OOiTNDtAKCg7W3jYk7QnQGObu0KvVeAJUFXU9aS/h5Sp0VFtui/s6w+XSJAbiVJ3G0AAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-background.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=background].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=background].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-background .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-background:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=background]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=background]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-background .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAA5FBMVEUAAAAAAP8AgP8AVaoAgL8AZswAVdUAYL8AccYAYsQAadIAY8YAaNEAasoAZswAYsQAaNAAacsAZckAadEAZ8gAZcoAZswAZswAZMkAZM0AZcsAZ8sAZswAaM0AZ8oAZ80AZswAZc0AZMsAZswAZMsAZswAZcoAZcwAZswAZssAZssAZswAZs0AZs0AZs0AZ8wAZ8wAZ8wAZ8wAZswAZcwAZs0AZcwAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsxJPDLdAAAAS3RSTlMAAQIDBAUGCAkNERIWGBkaGyImJyo1N0FCQkRFS0xNTVVWWVpjZGVtc3V2fYSOk5eksLO5xMXJ0tPV2Nnf4OXo6evs7fDz9Pf5/f60OfwzAAABG0lEQVR42s2T6VKDQBCEGyUJoqgSjcYg8dZ43/EieCUa5/3fx661qMAu7O98P4bZnq5lZlkwvXS7k1hf1BTdZFEsFpvUMU15IU7TuKiYJu9d5MODZZ8WcCBk39ZVAKcvpG+ZrgNsimIdTtV0TeBGFNewdBWORTFesUx3QcP9A8N59XT+kPWdPYavOQQVXfVYTtz6gI8jvfUsdRNWe8ApHy8z5ftgm8WhDyx8M4nKumoBd5LjVkkaAdYkz+8qpQLqtK+kwKU5XRPLP1JgNF8y3RkLjw4Us69cnMDb0qdLqR9myjEXz2brNPG2NSKQqOGPRJ5gEr8NYoT/9yHE7mfShoarovYptDw7kiWLyZTbNZBa9saK33tDWZlPK39U3ELkzhssBgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-left,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=left],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=left],.ql-snow.ql-toolbar .ql-picker.ql-left .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYACAcCgaGSEKmEKFgTKEgJCERiJAiw0ACqOuR/WCKLBSMKRSE7PqB9YMwuttRnBqMKRSEGvYD6HYAD8opyeJDvUUAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-left.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=left].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=left].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-left .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-left:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=left]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=left]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-left .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYACAcCgaGSEKmEKFgTKEgJCERiJAiw0ACqOuR/WCKLBSMKRSE7PqB9YMwuttRnBqMKRSEGvYD6HYAD8opyeJDvUUAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-right,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=right],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=right],.ql-snow.ql-toolbar .ql-picker.ql-right .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYMCAcCgaGSEKmEKFgTKEgJCERiJDiwLob2fWmyELBmEJByO4eWNejuN8QNZCRw94U3fUo7h8Q1wMAuRspyVIXC2UAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-right.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=right].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=right].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-right .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-right:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=right]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=right]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-right .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYMCAcCgaGSEKmEKFgTKEgJCERiJDiwLob2fWmyELBmEJByO4eWNejuN8QNZCRw94U3fUo7h8Q1wMAuRspyVIXC2UAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-center,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=center],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=center],.ql-snow.ql-toolbar .ql-picker.ql-center .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYGCAcCgaGSEKmEKFgTKEgJCERiJAiw4ABqNORPWCKLBSMKRSE7PQB9oAwuuNR3BqMKRSEGvID53gA5GspyQ9EElMAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-center.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=center].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=center].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-center .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-center:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=center]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=center]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-center .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYGCAcCgaGSEKmEKFgTKEgJCERiJAiw4ABqNORPWCKLBSMKRSE7PQB9oAwuuNR3BqMKRSEGvID53gA5GspyQ9EElMAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-justify,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=justify],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=justify],.ql-snow.ql-toolbar .ql-picker.ql-justify .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAAAoSURBVCjPY2AYACAcigQMwUKmyELBmEJBYCERZCFFhoEBo64fINcDAAcQNGkJNhVcAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-justify.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=justify].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=justify].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-justify .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-justify:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=justify]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=justify]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-justify .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAAAoSURBVCjPY2AYACAcigQMwUKmyELBmEJBYCERZCFFhoEBo64fINcDAAcQNGkJNhVcAAAAAElFTkSuQmCC)}}.ql-snow .ql-tooltip{border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#222}.ql-snow .ql-tooltip a,.ql-snow a{color:#06c}.ql-snow .ql-tooltip .input{border:1px solid #ccc;margin:0;padding:5px}.blog,.panel{padding:1em}body{background-color:#210912;color:#999}h1,h2,h3{color:#fff}.blog a{color:#9f9;font-weight:900}.blog a:active,.blog a:hover{outline:0;color:#6C6}tr.vpost{background-color:#306020;max-height:3em}tr.ipost{background-color:#303030;font-size:smaller;max-height:2em}tr.vpost a{font-weight:700;color:#fff;text-shadow:3px 3px 8px #000}tr.ipost a{font-style:bold;color:#b0b0b0;text-shadow:3px 3px 5px #505050}.panel{float:left;margin:1em;color:#fff;background-color:#421824}button,input,select,textarea{background-color:#999;color:#333}a{font-weight:900;color:#9f9}a:active,a:hover{color:#6C6}.jumbotron{background-color:#502020;padding:.5em}.carousel-caption-s p{font-family:jubilat;font-weight:600;font-size:large;line-height:1.1;text-decoration:overline;text-decoration-line:overline;text-shadow:3px 3px 7px rgba(0,0,0,.8);-webkit-text-shadow:inset 0 3px 5px #000;color:#000;margin:.5em;padding:.5em;animation:mymove 3s infinite;background-color:rgba(256,256,256,.4)}.carousel-caption-s{right:3em;top:1em;left:3em;z-index:10;padding-top:20px;padding-bottom:20px;text-align:center;text-shadow:0 4px 8px rgba(0,0,0,.6);height:16em;overflow:auto}.carousel-inner .item{background-color:#301010;color:#FF8}.carousel-indicators{position:absolute;z-index:15;padding-left:0;text-align:center;list-style:none;bottom:1em;top:initial}@-webkit-keyframes mymove{from,to{text-decoration-color:red}50%{text-decoration-color:#00f}}@keyframes mymove{from,to{text-decoration-color:red}50%{text-decoration-color:#00f}}ul.actiongroup li{display:inline}ul.actiongroup li a:hover{background-color:rgba(128,128,128,.2);color:red}.display-field{font-kerning:none;display:inline-flex}.display-label{font-family:'Lucida Sans','Lucida Sans Regular','Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif;font-stretch:condensed;display:inline-flex;color:#7f7f7f;background-color:rgba(200,256,200,.4)}footer{vertical-align:bottom;padding:1.5em;color:grey;font-weight:bolder;font-size:x-small}.meta{color:#A0A0A0;font-style:italic;font-size:smaller}.activity{font-family:fantasy}.blogtitle{display:inline-block;font-size:x-large}.blogphoto{float:left;margin:1em} \ No newline at end of file + */.ql-image-tooltip{padding:10px;width:300px}.ql-image-tooltip:after{clear:both;content:"";display:table}.ql-image-tooltip a{border:1px solid #000;box-sizing:border-box;display:inline-block;padding:5px;text-align:center;width:50%}.ql-image-tooltip img{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.ql-image-tooltip .input{box-sizing:border-box;width:100%}.ql-image-tooltip .preview{margin:10px 0;position:relative;border:1px dashed #000;height:200px}.ql-image-tooltip .preview span{display:inline-block;position:absolute;text-align:center;top:40%;width:100%}.ql-link-tooltip{padding:5px 10px}.ql-link-tooltip input.input{width:170px}.ql-link-tooltip a.done,.ql-link-tooltip input.input{display:none}.ql-link-tooltip a.change{margin-right:4px}.ql-link-tooltip.editing a.done,.ql-link-tooltip.editing input.input{display:inline-block}.ql-link-tooltip.editing a.change,.ql-link-tooltip.editing a.remove,.ql-link-tooltip.editing a.url{display:none}.ql-multi-cursor{position:absolute;left:0;top:0;z-index:1000}.ql-multi-cursor .cursor{margin-left:-1px;position:absolute}.ql-multi-cursor .cursor-flag{bottom:100%;position:absolute;white-space:nowrap}.ql-multi-cursor .cursor-name{display:inline-block;color:#fff;padding:2px 8px}.ql-editor.ql-ie-10 br,.ql-editor.ql-ie-9 br,.ql-multi-cursor .cursor.hidden .cursor-flag{display:none}.ql-multi-cursor .cursor-caret{height:100%;position:absolute;width:2px}.ql-multi-cursor .cursor.top .cursor-flag{bottom:auto;top:100%}.ql-multi-cursor .cursor.right .cursor-flag{right:-2px}.ql-paste-manager{left:-100000px;position:absolute;top:50%}.ql-toolbar{box-sizing:border-box}.ql-tooltip{background-color:#fff;border:1px solid #000;box-sizing:border-box;position:absolute;top:0;white-space:nowrap;z-index:2000}.ql-tooltip a{text-decoration:none}.ql-container{box-sizing:border-box;cursor:text;height:100%;margin:0;overflow-x:hidden;overflow-y:auto}.ql-editor{box-sizing:border-box;min-height:100%;outline:0;tab-size:4;white-space:pre-wrap}.ql-editor div{margin:0;padding:0}.ql-editor a{text-decoration:underline}.ql-editor b{font-weight:700}.ql-editor i{font-style:italic}.ql-editor s{text-decoration:line-through}.ql-editor u{text-decoration:underline}.ql-editor a,.ql-editor b,.ql-editor i,.ql-editor s,.ql-editor span,.ql-editor u{background-color:inherit}.ql-editor img{max-width:100%}.ql-editor blockquote,.ql-editor ol,.ql-editor ul{margin:0 0 0 2em;padding:0}.ql-editor ol{list-style-type:decimal}.ql-editor ul{list-style-type:disc}.ql-snow .ql-image-tooltip a{border:1px solid #06c}.ql-snow .ql-image-tooltip a.insert{background-color:#06c;color:#fff}.ql-snow .ql-image-tooltip .preview{border-color:#ccc;color:#ccc}.ql-snow .ql-link-tooltip a,.ql-snow .ql-link-tooltip span{line-height:25px}.ql-snow .ql-multi-cursor .cursor-name{border-radius:4px;font-size:11px;font-family:Arial;margin-left:-50%;padding:4px 10px}.ql-snow .ql-multi-cursor .cursor-triangle{border-left:4px solid transparent;border-right:4px solid transparent;height:0;margin-left:-3px;width:0}.ql-snow .ql-multi-cursor .cursor.left .cursor-name{margin-left:-8px}.ql-snow .ql-multi-cursor .cursor.right .cursor-flag{right:auto}.ql-snow .ql-multi-cursor .cursor.right .cursor-name{margin-left:-100%;margin-right:-8px}.ql-snow .ql-multi-cursor .cursor-triangle.bottom{border-top:4px solid transparent;display:block;margin-bottom:-1px}.ql-snow .ql-multi-cursor .cursor-triangle.top{border-bottom:4px solid transparent;display:none;margin-top:-1px}.ql-snow .ql-multi-cursor .cursor.top .cursor-triangle.bottom{display:none}.ql-snow .ql-multi-cursor .cursor.top .cursor-triangle.top{display:block}.ql-snow.ql-toolbar{box-sizing:border-box;padding:8px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border:3px outset grey}.ql-snow.ql-toolbar .ql-format-group{display:inline-block;margin-right:15px;vertical-align:middle}.ql-snow.ql-toolbar .ql-format-separator{box-sizing:border-box;background-color:#ddd;display:inline-block;height:14px;margin-left:4px;margin-right:4px;vertical-align:middle;width:1px}.ql-snow.ql-toolbar .ql-format-button,.ql-snow.ql-toolbar .ql-picker .ql-picker-label{display:inline-block;height:24px;background-repeat:no-repeat;background-size:18px 18px;cursor:pointer;box-sizing:border-box;line-height:24px;vertical-align:middle}.ql-snow.ql-toolbar .ql-format-button{background-position:center center;text-align:center;width:24px}.ql-snow.ql-toolbar .ql-picker{box-sizing:border-box;color:#444;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;position:relative}.ql-snow.ql-toolbar .ql-picker .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker .ql-picker-options .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-options .ql-picker-item:hover{color:#06c}.ql-snow.ql-toolbar .ql-picker .ql-picker-label{background-color:#fff;background-position:right center;border:1px solid transparent;position:relative;width:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAKlBMVEUAAABJSUlAQEBERERFRUVERERERERERERERERFRUVEREREREREREREREQJcW6NAAAADXRSTlMAFRzExcbLzM/Q0dLbKbcyLwAAADVJREFUCNdjYCAeMKYJQFnSdzdCWbl3r0NZvnev4tFre/cKlNV79yaUpXP3EJTFtEqBBHcAAHyoDQk0vM/lAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-picker .ql-picker-options{background-color:#fff;border:1px solid transparent;box-sizing:border-box;display:none;padding:4px 8px;position:absolute;width:100%}.ql-snow.ql-toolbar .ql-picker .ql-picker-options .ql-picker-item{background-position:center center;background-repeat:no-repeat;background-size:18px 18px;box-sizing:border-box;cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow.ql-toolbar .ql-picker.ql-expanded .ql-picker-label{border-color:#ccc;color:#ccc;z-index:2;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAdElEQVR42mP4//8/VfBINGjVqlUMhw4dEj148OBpEAaxQWKkGgQz5BIQ/4fiSyAxkg2CuuQ/Gj5DjkFHsRh0jJwwwooHzCCQ145g8dpRcgw6j8WgCyQbtH//fhmgxttIhtwGiZETRjDDLoIwiA0UG820FGAA5b25+qRqGXcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc;box-shadow:rgba(0,0,0,.2) 0 2px 8px;display:block;margin-top:-1px;z-index:1}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-label{background-position:center center;width:28px}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options{padding:5px;width:152px}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options .ql-picker-item.ql-primary-color{margin-bottom:8px}.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker.ql-color-picker .ql-picker-options .ql-picker-item:hover{border-color:#000}.ql-snow.ql-toolbar .ql-picker.ql-font{width:105px}.ql-snow.ql-toolbar .ql-picker.ql-size{width:80px}.ql-snow.ql-toolbar .ql-picker.ql-font .ql-picker-label,.ql-snow.ql-toolbar .ql-picker.ql-size .ql-picker-label{padding-left:8px;padding-right:8px}.ql-snow.ql-toolbar .ql-picker.ql-align .ql-picker-label{background-position:center center;width:28px}.ql-snow.ql-toolbar .ql-picker.ql-align .ql-picker-item{box-sizing:border-box;display:inline-block;height:24px;line-height:24px;vertical-align:middle;padding:0;width:28px}.ql-snow.ql-toolbar .ql-picker.ql-align .ql-picker-options{padding:4px 0}.ql-snow.ql-toolbar .ql-picker.ql-active:not(.ql-expanded) .ql-picker-label,.ql-snow.ql-toolbar:not(.ios) .ql-picker:not(.ql-expanded) .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAKlBMVEUAAAAAYc4AZMgAZcwAZs0AZs0AZs0AZ8wAZswAZs0AZswAZswAZswAZsx12LPhAAAADXRSTlMAFRzExcbLzM/Q0dLbKbcyLwAAADVJREFUCNdjYCAeMKYJQFnSdzdCWbl3r0NZvnev4tFre/cKlNV79yaUpXP3EJTFtEqBBHcAAHyoDQk0vM/lAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-bold,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bold],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bold],.ql-snow.ql-toolbar .ql-picker.ql-bold .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAYFBMVEUAAACAgIBAQEA5OTlAQEBERERAQEBERERERERERERDQ0NERERERERERERDQ0NERERERERFRUVERERERERFRUVERERERERERERERERERERERERERERERERERERERERERESN6WzHAAAAH3RSTlMAAggJDA8cQEtTWHF/i4yTpau+xMXX3O7v8/f6+/z+qN9w2AAAAFZJREFUeNqlzMcSgCAMRVEsYO+9vv//S9FhNIYld5HFmSTCqQ66dazkRzA1lPSQGRZGIsDMKMxRW7+2yCIcyf/QUyUGSnc+dkaqoFumM32pf2BqY+HUBfQaCPgVIBc1AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-bold.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bold].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bold].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-bold .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-bold:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=bold]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=bold]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-bold .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAYFBMVEUAAAAAgP8AYL8AccYAatUAZswAZMgAZMsAZswAZcsAZcsAZssAZssAZ80AZswAZs0AZswAZ8wAZswAZcwAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsxCU9XcAAAAH3RSTlMAAggJDA8cQEtTWHF/i4yTpau+xMXX3O7v8/f6+/z+qN9w2AAAAFZJREFUeNqlzMcSgCAMRVEsYO+9vv//S9FhNIYld5HFmSTCqQ66dazkRzA1lPSQGRZGIsDMKMxRW7+2yCIcyf/QUyUGSnc+dkaqoFumM32pf2BqY+HUBfQaCPgVIBc1AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-italic,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=italic],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=italic],.ql-snow.ql-toolbar .ql-picker.ql-italic .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAi0lEQVR42mMYvoARl4SLi0sNkGoAYmY0qf+MjIztu3fvrkYWZGLADZhB8pS4CN1lQUBqLRDvAQJXHMqIstEISp8BEZQYZAIi/v//f5ZSg0xBBCMj4ymyDQKGjxKQEgLiV8DweUS2QUBXGEOZp0EEJV4zgdJnKDLo379/JsS6iJHSFA0DTDhT9CiAAQBbWyIY/pd4rQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-italic.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=italic].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=italic].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-italic .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-italic:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=italic]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=italic]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-italic .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAk0lEQVR42u3SsQ3CMBBA0X/2BozACMQswg4EMQMUdOyQVdggdpagZAc4ihjJjYmU66K8xpZsfdnSsVxCzTFdEW6AB0oKcqdrLhQcNaK+PLc79QfapLTDgz8cU9Tv8ibZQqIBgI8OxhexH29KPz90jltgA7zownN+6C0Nowhg+JqEvCZbSDSHNDJBLBNdctWJXv18Ad5dJL0jVfDhAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-underline,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=underline],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=underline],.ql-snow.ql-toolbar .ql-picker.ql-underline .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAM1BMVEUAAABLS0tFRUVDQ0NERERDQ0NFRUVFRUVERERDQ0NERERFRUVERERERERERERERERERESvCHKbAAAAEHRSTlMAERpMbW6Bgry9xMXh5PP51ZZfkwAAAEdJREFUeNq9yEEKgDAMRNHERDWq6dz/tFLBQUC6KfRtPnzpsh/sC2AHrcRUo0iuDXONI7gMxVW9wIQWPFb5sMgMk5YTdMmvGw2DA8yS9di7AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-underline.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=underline].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=underline].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-underline .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-underline:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=underline]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=underline]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-underline .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAM1BMVEUAAAAAadIAYs4AZc0AZcwAZswAZ84AZswAZs0AZ8wAZcwAZs0AZswAZswAZswAZswAZsycBlETAAAAEHRSTlMAERpMbW6Bgry9xMXh5PP51ZZfkwAAAEdJREFUeNq9yEEKgDAMRNHERDWq6dz/tFLBQUC6KfRtPnzpsh/sC2AHrcRUo0iuDXONI7gMxVW9wIQWPFb5sMgMk5YTdMmvGw2DA8yS9di7AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-strike,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=strike],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=strike],.ql-snow.ql-toolbar .ql-picker.ql-strike .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAn1BMVEUAAAAAAACAgIBAQEA7OztAQEBLS0tHR0dAQEBJSUlGRkZERERCQkJERERDQ0NERERERERDQ0NFRUVERERERERERERERERERERFRUVERERERERERERFRUVDQ0NFRUVERERFRUVFRUVERERFRUVFRUVFRUVERERFRUVFRUVERERERERERERERERERERERERERERERERERERERERERERERERfrjwTAAAANHRSTlMAAQIMDRAREhQVKCk6PEhLT1xkZWZ4e4CCg4SIiZucoaersLK2wcTFydLX2ODi5err8fX3BKZfrQAAAH5JREFUGBmlwOEWgTAYBuC3isgMxCYAmwRh++7/2qRzttP/HnQTZjdjilkALzhR4wBvQiaLk8WXOJwlHVHjYgxnSmbeR0swGEkpxWZ3vt7fL/w9P4/ist+KdZ7zYYiWiCnScFYiRq1HFo4mxaKIKdJw0ooaVQovkaW1pUzQyQ86Agx4yKmWPAAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-strike.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=strike].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=strike].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-strike .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-strike:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=strike]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=strike]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-strike .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAolBMVEUAAAAAAP8AgP8AatUAYsQAYM8AadIAY8YAZswAYc4AZswAZM0AZcoAZswAZ8oAZswAZMsAZ8oAZswAZcoAZ8sAZswAZssAZssAZs0AZswAZ8wAZs0AZ8wAZs0AZswAZ8wAZ8wAZs0AZ8wAZ8wAZs0AZs0AZs0AZcwAZs0AZcwAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsyiCU+yAAAANXRSTlMAAQIMDRAREhQVKCk6PEhLT1xkZWZ4e4CAgoOEiImbnKGnq7CytsHExcnS19jg4uXq6/H190B1i7AAAAB/SURBVBgZpcDhFoEwGAbgt4pIBmImAJsEYfvu/9ZU52yn/z3oxk/vWuczD453psYRzoR0GkaLHzFYSzqhwvgY1pT0vI8WbzASQvDt/nJ7fN6ovb7P/HrYrTdZxoY+WoJEkoK14iEqPTKwFMkkCBJJClZcUqOM4USiMKYQETr5A2SVDLpJv6ZtAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-link,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=link],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=link],.ql-snow.ql-toolbar .ql-picker.ql-link .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAllBMVEUAAAD///9VVVVJSUk5OTlAQEBHR0dFRUVCQkJHR0dBQUFCQkJGRkZDQ0NGRkZFRUVCQkJDQ0NERERDQ0NERERFRUVERERFRUVDQ0NERERFRUVERERERERFRUVERERERERERERERERFRUVERERFRUVFRUVERERERERERERERERERERERERERERERERERERERERERERERETx5KUoAAAAMXRSTlMAAAYHCQwZGiMkJzIzOUJOYGNlfoCJl5ibnaCxtLa8xsfIycrQ1OHi5uvs7e/19vn8NGTYeAAAAJdJREFUeNqN0McOgkAARdGnFJWiKGBhEEFpSn3//3OGjMmQ6MK7PMuLxVe/CXDTPl5DJmk3cOTTmZE7MDQES11RyhBY5vQU9aOB2z3gWVFMsXywYx3t9Q9tXsyDjlOVLQlOyanOL1ibkqB7l5odM01QSJqK6GdXmGwUHVhowImJIr2iMI9sLUWwa5LtFjPCSjSJBUl//HoDlmQPy0DFuCkAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-link.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=link].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=link].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-link .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-link:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=link]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=link]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-link .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAmVBMVEUAAAD///8AVdUAbdsAccYAatUAZswAYs4AZswAY80AacsAZswAZM0AZ8kAZM0AZcsAZcoAZMsAZcoAZcoAZssAZs0AZs0AZ8wAZs0AZswAZs0AZswAZs0AZswAZs0AZs0AZs0AZ8wAZswAZcwAZs0AZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsy/jsjWAAAAMnRSTlMAAAYHCQwZGiMkJzIzOUJOYGNlfoCAiZeYm52gsbS2vMbHyMnK0NTh4ubr7O3v9fb5/BM/koAAAACXSURBVHjajdDbEoFQAIXhpROqiAjaSdGJSq33fzjTbDO7GS78l9/lj9lXvwnw0le8gEzSuufAhzshr2doCpaGopQhoOX0Fb0GE9fbnidFMYV2Z8c62hgfWj6Z7zqOVY4kuCXHuqBgbUmC4Z9rdsx0QSFpLGKQXWCxUbRloQNHJoqMisI6sLUVwalJtitMCHPRJDYk/fHrDdIHECSPJag6AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-image,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=image],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=image],.ql-snow.ql-toolbar .ql-picker.ql-image .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAElBMVEUAAABERERERERFRUVEREREREQbmEZBAAAABXRSTlMAeMTFxj7M9NAAAABBSURBVAjXY2DAD1RDQSAYyAqFABALLANmMRnAWMwODIIMUFnGUAEIS1A0NADMYgTqhLBY4SyEKXCTTcGMEAJuAgBa9RKl6Fva+wAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-image.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=image].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=image].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-image .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-image:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=image]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=image]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-image .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAElBMVEUAAAAAZswAZcwAZs0AZs0AZszYB6XUAAAABXRSTlMAeMTFxj7M9NAAAABBSURBVAjXY2DAD1RDQSAYyAqFABALLANmMRnAWMwODIIMUFnGUAEIS1A0NADMYgTqhLBY4SyEKXCTTcGMEAJuAgBa9RKl6Fva+wAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-list,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=list],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=list],.ql-snow.ql-toolbar .ql-picker.ql-list .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAS1BMVEUAAABCQkJFRUVGRkZFRUVCQkJFRUVDQ0NFRUVFRUVFRUVERERERERERERERERFRUVERERERERERERERERERERERERERERERERERET32eciAAAAGHRSTlMAMjRCQ0lOfYKQlJmaocTFxuHi5OXm9falfyKhAAAATElEQVR42mMgFnCKYIpJMDDwSUABP1yIHyYkABYRlBAmwngucV50IXZGIXTjmQTZ0I0XIcp4DjEedCFWFlF041mZRdCN5xDjZiAdAACXwgbrzvG+ZgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-list.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=list].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=list].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-list .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-list:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=list]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=list]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-list .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAS1BMVEUAAAAAZswAZ8kAZM0AZ8oAZcsAZcsAZswAZswAZ80AZs0AZs0AZ80AZ8wAZcwAZs0AZs0AZswAZswAZswAZswAZswAZswAZswAZswCB3gJAAAAGHRSTlMAMjRCQ0lOfYKQlJmaocTFxuHi5OXm9falfyKhAAAATElEQVR42mMgFnCKYIpJMDDwSUABP1yIHyYkABYRlBAmwngucV50IXZGIXTjmQTZ0I0XIcp4DjEedCFWFlF041mZRdCN5xDjZiAdAACXwgbrzvG+ZgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-bullet,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bullet],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bullet],.ql-snow.ql-toolbar .ql-picker.ql-bullet .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAABxJREFUCNdjYMAPhBhdgMAJyFJmArGcGRgGXAcA/t0ImAOSO9kAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-bullet.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bullet].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bullet].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-bullet .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-bullet:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=bullet]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=bullet]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-bullet .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAAAAZcwAZs0AZs0AZsyEYJIjAAAABHRSTlMAxMXG4b8ciAAAABxJREFUCNdjYMAPhBhdgMAJyFJmArGcGRgGXAcA/t0ImAOSO9kAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-authorship,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=authorship],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=authorship],.ql-snow.ql-toolbar .ql-picker.ql-authorship .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAARVBMVEUAAABFRUVFRUUAAAAAAABERERDQ0NEREQAAABERERERERERERERERERERFRUVERERERERERERERERERERERERERERERERVeSBUAAAAFnRSTlMAMDtOT1JfYmassMfN09Ta6vD4+fz9w8DTTwAAAExJREFUGBmVwEkSgCAMBMBRQUEU4zb/f6oFF5KbNLp4EQ8rkxnWQ76whBRYkYwwxo08ZijDzWJBs7La0ZysLjSJVUKXKSgOhQuKw08fJOYE1SddZQoAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-authorship.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=authorship].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=authorship].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-authorship .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-authorship:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=authorship]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=authorship]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-authorship .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAARVBMVEUAAAAAZcoAaMsAZc4AZ8sAZ8oAZswAZcsAZ80AZs0AZ8wAZ8wAZswAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZszAoUIuAAAAFnRSTlMAMDtOT1JfYmassMfN09Ta6vD4+fz9w8DTTwAAAExJREFUGBmVwEkSgCAMBMBRQUEU4zb/f6oFF5KbNLp4EQ8rkxnWQ76whBRYkYwwxo08ZijDzWJBs7La0ZysLjSJVUKXKSgOhQuKw08fJOYE1SddZQoAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-color,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=color],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=color],.ql-snow.ql-toolbar .ql-picker.ql-color .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAgVBMVEUAAAAAAACAgIBAQEBVVVVDQ0NGRkZGRkZFRUVERERDQ0NDQ0NDQ0NCQkIAAABFRUUAAABDQ0NEREREREREREQAAABDQ0NDQ0NERERFRUVERERERERERERDQ0NERERERERFRUVFRUVERERERERERERERERERERERERERERERERERERLPkdWAAAAKnRSTlMAAQIEBhMWISUtLkVMTU5OT1BTVlpmeX6OkJmdvL3GztTj5/Hy8/b3/f5utmv0AAAAX0lEQVR42pXIRQ6AQABDUdzd3bX3PyCWwAwr+Is2ecyvuKriXmQD5otKoKBFQz+sKkU5khQZKdK8yMoyiQTFOIseEbqLWv6mAPW+bAPvJmN0j/N7nfmTFRI5Jzk0fWwD4sYJPnqIyzwAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-color.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=color].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=color].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-color .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-color:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=color]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=color]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-color .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAgVBMVEUAAAAAAP8AgP8AgL8AVdUAa8kAaNEAZMkAZ8gAZswAZM0AZMsAZc0AZ8oAZcsAZc4AZ8sAZswAZcsAZc0AZswAZ80AZcoAZcoAZs0AZ80AZs0AZs0AZs0AZ8wAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsy3JBcuAAAAKnRSTlMAAQIEBhMWISUtLkVMTU5OT1BTVlpmeX6OkJmdvL3GztTj5/Hy8/b3/f5utmv0AAAAX0lEQVR42pXIRQ6AQABDUdzd3bX3PyCWwAwr+Is2ecyvuKriXmQB5otKoKBFQz+sKkU5khQZKdK8yMoyiQTFOIseEbqLWv6mAPW+bAPvJmN0j/N7nfmTHRI5Jzk0fWwD4foJPqgJbeoAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-background,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=background],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=background],.ql-snow.ql-toolbar .ql-picker.ql-background .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAnFBMVEUAAAAAAACAgIBAQEAAAABVVVUAAAAAAAAAAABDQ0MAAABGRkZGRkYAAABFRUVERERDQ0MAAAAAAAAAAAAAAABDQ0MAAABDQ0MAAABCQkJFRUVDQ0NERERERERERERDQ0NDQ0NERERFRUVERERERERERERDQ0NERERERERFRUVFRUVERERERERERERERERERERERERERERERERERETMTXVbAAAAM3RSTlMAAQIEBgYHCBMTFBYhIyUtLjE2N0JFS0xNTU5QU1ZaeX6OkJmdvL3GztTj5/Hy8/b3/f5Qd6EEAAAAf0lEQVR42o2PRw6DQBRDHVJISCUhvTd69/3vhgT6MLPDmoX15KfRR++c6mdKgVIOTRFoeJ6hE+tCnjXRgUv+oc02jJNyrYk/vj/8jhRxnheLVZHNupn1Yp3nVIgzjhoUDlvxQR/AIOBtKbNjerUB+x7vhZjARPkLyslbYIe+qQDqMQxGJwkBGwAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-background.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=background].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=background].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-background .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-background:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=background]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=background]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-background .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAllBMVEUAAAAAAP8AgP8AgL8AVdUAbbYAYL8Aa8kAZswAaNEAZMkAZswAZ8gAZswAZM0AaMsAaNAAZswAZM0AZMsAZswAZc0AZ8oAZ80AZcsAZswAZcsAZc0AZswAZcoAZcoAZs0AZ80AZs0AZs0AZs0AZ8wAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsy8dW5vAAAAMXRSTlMAAQIEBgcIExQWISMlLS4xNjdCRUtMTU1OUFNWWnl+jpCZnby9xs7U4+fx8vP29/3+dqGBzgAAAH5JREFUeNqNj0cOg0AUQx1CgFQS0nujd9//ckigDzM7rFlYT34afYzOuX2WFCjl0BWBRhAYOnEu5EkTPfjkH9pswzSr15r44/vDr6mI87JarKrCHmbOi22ethDPTDoUT3vxwRDAJOJtKbNjfnUB957uhVjATPkLyslbYIexaQB/ngudkm14XQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-left,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=left],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=left],.ql-snow.ql-toolbar .ql-picker.ql-left .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAAClJREFUCNdjYMAPRFxcnCAsFRcXZwYiAFCHC0STCpjlTJwOJwaYDoIaAKIACBBRNsu4AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-left.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=left].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=left].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-left .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-left:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=left]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=left]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-left .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAAAAZcwAZs0AZs0AZsyEYJIjAAAABHRSTlMAxMXG4b8ciAAAAClJREFUCNdjYMAPRFxcnCAsFRcXZwYiAFCHC0STCpjlTJwOJwaYDoIaAKIACBBRNsu4AAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-right,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=right],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=right],.ql-snow.ql-toolbar .ql-picker.ql-right .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAAChJREFUCNdjYCAIRFxcnCAsFRcXZ2KUu0B0qIBZzgzEaXFigGkhpAMAmbwIEMJ9k/cAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-right.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=right].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=right].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-right .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-right:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=right]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=right]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-right .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAAAAZcwAZs0AZs0AZsyEYJIjAAAABHRSTlMAxMXG4b8ciAAAAChJREFUCNdjYCAIRFxcnCAsFRcXZ2KUu0B0qIBZzgzEaXFigGkhpAMAmbwIEMJ9k/cAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-center,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=center],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=center],.ql-snow.ql-toolbar .ql-picker.ql-center .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAAC1JREFUCNdjYCAAGF1cXBTALCYgy4CBIBBxAQEnIEsFzHJmIMYKiCVMYBYhSwCyqQhMfft6AQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-center.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=center].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=center].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-center .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-center:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=center]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=center]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-center .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAAAAZcwAZs0AZs0AZsyEYJIjAAAABHRSTlMAxMXG4b8ciAAAAC1JREFUCNdjYCAAGF1cXBTALCYgy4CBIBBxAQEnIEsFzHJmIMYKiCVMYBYhSwCyqQhMfft6AQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-justify,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=justify],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=justify],.ql-snow.ql-toolbar .ql-picker.ql-justify .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAD1BMVEUAAABERERFRUVERERERETRGyWnAAAABHRSTlMAxMXG4b8ciAAAABpJREFUCNdjYMAPRFxAwAnIUgGznBkYBlwHAJGzCjB/C3owAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-justify.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=justify].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=justify].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-justify .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-justify:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=justify]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=justify]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-justify .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAALklEQVR42mMYvoARzko9cwTIsyZR+zGGWcZgPUwIMUZGShwyGtijgT0a2EMMAADESwwWta/i5QAAAABJRU5ErkJggg==)}@media (-webkit-min-device-pixel-ratio:2){.ql-snow.ql-toolbar .ql-picker .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAIVBMVEUAAABCQkJDQ0NDQ0NERERERERERERERERERERERERERERehmmoAAAACnRSTlMATVRbaeXo6fz+NPhZJgAAAF9JREFUKM9jYBjkQC0JXYS5a4UBmpDFqlXN6IpWrUJTprEKCJpQhLJAQsswhZaiCImDhAJp5kMxkPGJZLjLEiQ0GUWIZdaqVSsdUM33XLVqCpqVLLPQFTEwmAcP9qQAAFUgKabkwE6gAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-picker.ql-expanded .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAJFBMVEWqqqr////AwMDAwMDAwMDBwcHBwcHBwcHBwcHBwcHBwcHBwcEexLCPAAAAC3RSTlMAAE1UW2nl6On8/tZA57EAAABxSURBVHjazc4hFkBAGMTxL3AAp+AGniYiyaLnBETHoKkknbc7l7OrzW7zhP3HX5mRxCskEsknEaZoU6VDNbAyRRugSqICpoVotnT7dBFllnpefPuHUpjGD78aSztRfAK65cUOOIQpPnXrkFSDEFFB0APtK1HCkKpz1wAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-picker.ql-active:not(.ql-expanded) .ql-picker-label,.ql-snow.ql-toolbar:not(.ios) .ql-picker:not(.ql-expanded) .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAIVBMVEUAAAAAZ8oAZMsAZc0AZswAZswAZswAZswAZswAZswAZswhMkyGAAAACnRSTlMATVRbaeXo6fz+NPhZJgAAAF9JREFUKM9jYBjkQC0JXYS5a4UBmpDFqlXN6IpWrUJTprEKCJpQhLJAQsswhZaiCImDhAJp5kMxkPGJZLjLEiQ0GUWIZdaqVSsdUM33XLVqCpqVLLPQFTEwmAcP9qQAAFUgKabkwE6gAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-bold,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bold],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bold],.ql-snow.ql-toolbar .ql-picker.ql-bold .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAxlBMVEUAAABVVVUzMzNVVVVJSUlGRkZAQEBJSUlAQEBAQEBAQEBHR0dCQkJGRkZAQEBGRkZCQkJERERDQ0NDQ0NGRkZERERDQ0NFRUVCQkJFRUVERERDQ0NDQ0NFRUVDQ0NERERERERERERERERERERERERERERERERERERFRUVDQ0NERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERfjmwgAAAAQXRSTlMAAwUGBwsMDhAUGBkbHSAhIykuOUJERUpNUVZYXGRne3yAi4+SmqWmq67R1tfY2dve5ujp7/Dy8/T19vf4+fv8/mUg1b0AAACrSURBVDjL5dPFDgJBEEXRxt3d3d11gPv/P8WCEAgZuno/b1WLk1TqJaWUI1Jc8852Mqz5bdHHALDK2CF+ckgYIHp/0GtypxpHYKlFSqkycJeQD7hIKADMJFQHulrkSrYs2MflCnZZgzKvo7RJmZeSAWIf1V3nihSGAG19BUq1gKmEQsBZQkHAklATmOuQN5zvP4COQQWnmIxuFfERWOTsXmrztWg8qHqUU/IEzOhNFx6Ncl4AAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-bold.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bold].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bold].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-bold .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-bold:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=bold]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=bold]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-bold .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAxlBMVEUAAAAAVaoAZswAVdUAbdsAXdEAatUAbcgAYM8AZswAasoAZswAaNAAasoAaMcAZMkAZswAZM0AZM0AZ8kAZM0AZcsAZMsAZMsAZ8oAZc0AZc0AZcsAZ8oAZswAZssAZssAZcwAZssAZ80AZs0AZ8wAZ80AZswAZ8wAZ8wAZ8wAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsyeO+aMAAAAQXRSTlMAAwUGBwsMDhAUGBkbHSAhIykuOUJERUpNUVZYXGRne3yAi4+SmqWmq67R1tfY2dve5ujp7/Dy8/T19vf4+fv8/mUg1b0AAACrSURBVDjL5dPFDgJBEEXRxt3d3d11gPv/P8WCEAgZuno/b1WLk1TqJaWUI1Jc8852Mqz5bdHHALDK2CF+ckgYIHp/0GtypxpHYKlFSqkycJeQD7hIKADMJFQHulrkSrYs2MflCnZZgzKvo7RJmZeSAWIf1V3nihSGAG19BUq1gKmEQsBZQkHAklATmOuQN5zvP4COQQWnmIxuFfERWOTsXmrztWg8qHqUU/IEzOhNFx6Ncl4AAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-italic,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=italic],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=italic],.ql-snow.ql-toolbar .ql-picker.ql-italic .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAjVBMVEUAAAAAAACAgIBAQEBVVVVAQEBAQEBCQkJCQkJFRUVDQ0NBQUFDQ0NDQ0NDQ0NFRUVERERERERERERDQ0NERERDQ0NERERERERERERFRUVFRUVERERFRUVERERERERDQ0NERERERERERERDQ0NFRUVEREREREREREREREREREREREREREREREREREREREQUqV1+AAAALnRSTlMAAQIEBggMGyMlKisuUFhZXmJmb3R9hIiKjZGTlKWprrG0uL3BxObt8PL19/j9SqrrawAAAIJJREFUOMvl0jUOQgEQRVHc3d1dzv6XRwch+WRq4NYnmVdMKvU35RZXz+7LQiJqe6uXiDrvqJuI8vM7ALd14fOwIabR+i1agUmfUA1QGedMgJrYRZPGGEVoh0ZgMmeUAlTBMbrWwiZCEwwitEc9MNkLigGq4RBda2MVoRn6X/jfv9YDjuYgGnCpSqcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-italic.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=italic].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=italic].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-italic .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-italic:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=italic]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=italic]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-italic .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAjVBMVEUAAAAAAP8AgP8AgL8AVdUAYL8AatUAaNAAZswAZ8gAZ8gAZcoAZM0AZswAZcsAZMsAZMsAZcsAZ8sAZcoAZcoAZswAZs0AZ8wAZs0AZ8wAZswAZs0AZs0AZswAZ8wAZ8wAZs0AZswAZ8wAZ8wAZs0AZcwAZswAZswAZswAZswAZswAZswAZswAZswAZsyyI9XbAAAALnRSTlMAAQIEBggMGyMlKisuUFhZXmJmb3R9hIiKjZGTlKWprrG0uL3BxObt8PL19/j9SqrrawAAAIJJREFUOMvl0jUOQgEQRVHc3d1dzv6XRwch+WRq4NYnmVdMKvU35RZXz+7LQiJqe6uXiDrvqJuI8vM7ALd14fOwIabR+i1agUmfUA1QGedMgJrYRZPGGEVoh0ZgMmeUAlTBMbrWwiZCEwwitEc9MNkLigGq4RBda2MVoRn6X/jfv9YDjuYgGnCpSqcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-underline,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=underline],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=underline],.ql-snow.ql-toolbar .ql-picker.ql-underline .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAWlBMVEUAAAAAAAAzMzNAQEBGRkZERERERERCQkJERERDQ0NFRUVERERERERFRUVERERERERERERFRUVERERERERERERDQ0NFRUVERERERERERERERERERERERERERET15sOLAAAAHXRSTlMAAQUMLC04TU9UVYePkJKkxMXG2Nrf4+jz9/n6/qlZ0HQAAACUSURBVHja7Y3BDsIgEAW3UCmCFatQxLL//5uuiQ0py1EPxs5tHhMW/oMhxoF5TUSMzGuQqH2PfiO60yiLStIHi260qqKKNLDI0XouOpI6Fh1f/x9W6xOpYZHwNM/9u5lJvACGzvSQRiWlOiUkNDSwuMFCi87mkmTbQRvt18aXWwxhXFiW4IyAr3LBJtMmmtrRFT7ME0B0HEswIOSJAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-underline.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=underline].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=underline].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-underline .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-underline:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=underline]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=underline]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-underline .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAWlBMVEUAAAAAAP8AZswAatUAaMsAZswAZM0AZ8oAZMsAZMsAZswAZswAZs0AZ80AZ8wAZ8wAZcwAZs0AZs0AZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZszogqY1AAAAHXRSTlMAAQUMLC04TU9UVYePkJKkxMXG2Nrf4+jz9/n6/qlZ0HQAAACUSURBVHja7Y3BDsIgEAW3UCmCFatQxLL//5uuiQ0py1EPxs5tHhMW/oMhxoF5TUSMzGuQqH2PfiO60yiLStIHi260qqKKNLDI0XouOpI6Fh1f/x9W6xOpYZHwNM/9u5lJvACGzvSQRiWlOiUkNDSwuMFCi87mkmTbQRvt18aXWwxhXFiW4IyAr3LBJtMmmtrRFT7ME0B0HEswIOSJAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-strike,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=strike],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=strike],.ql-snow.ql-toolbar .ql-picker.ql-strike .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAABLFBMVEUAAACAgIBVVVVAQEAzMzNVVVVAQEA5OTlNTU1JSUlERERHR0dDQ0NGRkZDQ0NAQEBCQkJAQEBGRkZAQEBGRkZERERBQUFERERGRkZCQkJGRkZERERFRUVERERDQ0NFRUVERERDQ0NFRUVCQkJDQ0NFRUVCQkJDQ0NERERDQ0NERERERERDQ0NFRUVERERERERERERERERFRUVERERDQ0NFRUVERERERERFRUVERERERERDQ0NDQ0NFRUVERERERERFRUVERERERERFRUVERERERERDQ0NERERFRUVERERERERERERFRUVERERERERERERERERFRUVERERERERERERFRUVERERERERERERERERERERERERERERERERERERERERERERERERERERERET5TTiyAAAAY3RSTlMAAgMEBQYICQoODxITFhcYGxwdICEtLzEzNjc4P0BFRkdISk1YWWBjaWtsdHZ3f4CHiImKjJGSk5SVl5ufo6Smp625uru8vb/BwsPExcbMzs/Q0dPi4+Tl6+zv8PL19vf4+/z2SQ4sAAABE0lEQVQ4y2NgGDmAV8c5PCkxxFGDE6cSDuOEZCiI0WXGroY/OBkJeHJhU8Pkm4wCXBixKFIHyUTqibJzS5lEgNhqWBT5AMWD+CFsHg8gxxuLoniguCyMIwLkxGFRBPKZDKEw8gMqCuAloEgb7HADMTZ8ijisjHTUlCSFOdgFxeVUNPXM7Z38QmJ9EApQxFFCyxeuxhtFPC7U39nBQl9LVV5CiAMpiFDEOYQlldR0jGwM8DmOVVDRLBpkpDIBr/KBXOBKKNSEgYpiMUQjgaLChBQ5A0W94AHO6wXkumEoUgY5NcpUUYCFRUDBNAqHw22T0YAdNp9bo6qxZMLqI4VAhJIgBZwelzZ0D4uLC3M3lB5B5QgAFQdgZ6NzzvYAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-strike.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=strike].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=strike].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-strike .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-strike:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=strike]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=strike]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-strike .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAABLFBMVEUAAAAAgP8AVaoAgL8AZswAVdUAYL8AccYAZswAbcgAZswAY8YAa8kAaNEAZMgAasoAaNAAZMgAasoAaMcAZMkAZswAZ8kAaMsAZM0AaMsAZswAZM0AZcoAZMsAZMsAZswAZc0AZ8oAZMsAZ8oAZcsAZMsAZcoAZMsAZswAZssAZssAZcoAZssAZcwAZssAZs0AZswAZ8wAZs0AZs0AZswAZswAZ8wAZs0AZs0AZ80AZ8wAZswAZ8wAZs0AZ8wAZ8wAZs0AZs0AZswAZ8wAZs0AZs0AZ8wAZcwAZs0AZ8wAZswAZcwAZs0AZs0AZ8wAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswL5dPDAAAAY3RSTlMAAgMEBQYICQoODxITFhcYGxwdICEtLzEzNjc4P0BFRkdISk1YWWBjaWtsdHZ3f4CHiImKjJGSk5SVl5ufo6Smp625uru8vb/BwsPExcbMzs/Q0dPi4+Tl6+zv8PL19vf4+/z2SQ4sAAABE0lEQVQ4y2NgGDmAV8c5PCkxxFGDE6cSDuOEZCiI0WXGroY/OBkJeHJhU8Pkm4wCXBixKFIHyUTqibJzS5lEgNhqWBT5AMWD+CFsHg8gxxuLoniguCyMIwLkxGFRBPKZDKEw8gMqCuAloEgb7HADMTZ8ijisjHTUlCSFOdgFxeVUNPXM7Z38QmJ9EApQxFFCyxeuxhtFPC7U39nBQl9LVV5CiAMpiFDEOYQlldR0jGwM8DmOVVDRLBpkpDIBr/KBXOBKKNSEgYpiMUQjgaLChBQ5A0W94AHO6wXkumEoUgY5NcpUUYCFRUDBNAqHw22T0YAdNp9bo6qxZMLqI4VAhJIgBZwelzZ0D4uLC3M3lB5B5QgAFQdgZ6NzzvYAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-link,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=link],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=link],.ql-snow.ql-toolbar .ql-picker.ql-link .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAABDlBMVEUAAAD///8AAACAgIBVVVVAQEAzMzNVVVVAQEBNTU1HR0dAQEBJSUlGRkZDQ0NAQEBERERHR0dGRkZDQ0NBQUFGRkZERERCQkJGRkZFRUVCQkJFRUVERERDQ0NDQ0NCQkJFRUVDQ0NERERDQ0NFRUVDQ0NFRUVFRUVFRUVFRUVERERDQ0NFRUVERERFRUVERERERERDQ0NFRUVFRUVERERERERERERERERFRUVERERERERERERFRUVDQ0NERERERERFRUVERERERERERERERERERERERERERERERERERERERERFRUVERERERERERERERERERERERERERERERERERERERERERERERERERERERESFPz0UAAAAWXRSTlMAAAECAwQFBggKEhQVFhccHiQoKissLTIzNDpGR0hMTU5QUlRVW12BgoaHjI2PmJmam5ygpKWosbKztLW6vcDD0NLT2Nna3N7g4eLj5Ofo6err7u/w8vn7/A90CXkAAAFqSURBVDjLzdTHUgJREIXho8yo6JgFc0LFjAkVMZAFJYrCzP/+L+JCtJipS5U7Patbt79Vd1dr6BfRHyBJUiie6dSSiwrEh2aeAPAO7cEoUqWXdHgQirQAOh7A46gZzVQBzsfmSgAnRhR6AjiS5OQAd9aE4t9GmqoCCRPKAGe9zzhQDxlQBzpjknab9c2RD2DBgGrgzUlqQnfrHlg3oGug6Eh1oFsAEtvLVhAteUBuSjseP2lfzQf6dARQjY/s9SncY9uH7DQA7+ky/XkI+8YSfvRVC6k3AO4s34BHT90+1N2yYq8A+/5V0Wyi0ac2NJkD3KgfSaGF9QRQ9oCC5JSAiyCStA2k9jzISooCFQNaBlpWrJBdkTThQsOA7DYQ+3pbKeDWgHQFvDiSNJwEWDWheRfIOZKVBLiRCekYoBiZSAHkx83IfgDABXielhkpfAcAkJ/WICTrwAXgZlyDkRS9rDRu1wJL98/u0yeVYHcP1mwWWgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-link.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=link].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=link].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-link .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-link:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=link]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=link]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-link .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAABDlBMVEUAAAD///8AAP8AgP8AVaoAgL8AZswAVdUAYL8AZswAY8YAZswAYc4AaNEAZMgAZMgAZswAY80AZswAZ8gAZcoAaMsAZswAZswAZM0AZ8kAZcoAZswAZc0AZ8oAZc0AZ8oAZcsAZswAZ8oAZMsAZswAZc0AZcsAZ84AZswAZ84AZswAZswAZ8wAZs0AZs0AZs0AZ80AZswAZ8wAZswAZ8wAZswAZs0AZs0AZs0AZ8wAZswAZ8wAZ8wAZ8wAZs0AZswAZs0AZswAZswAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsxCnEEHAAAAWXRSTlMAAAECAwQFBggKEhQVFhccHiQoKissLTIzNDpGR0hMTU5QUlRVW12BgoaHjI2PmJmam5ygpKWosbKztLW6vcDD0NLT2Nna3N7g4eLj5Ofo6err7u/w8vn7/A90CXkAAAFqSURBVDjLzdTHUgJREIXho8yo6JgFc0LFjAkVMZAFJYrCzP/+L+JCtJipS5U7Patbt79Vd1dr6BfRHyBJUiie6dSSiwrEh2aeAPAO7cEoUqWXdHgQirQAOh7A46gZzVQBzsfmSgAnRhR6AjiS5OQAd9aE4t9GmqoCCRPKAGe9zzhQDxlQBzpjknab9c2RD2DBgGrgzUlqQnfrHlg3oGug6Eh1oFsAEtvLVhAteUBuSjseP2lfzQf6dARQjY/s9SncY9uH7DQA7+ky/XkI+8YSfvRVC6k3AO4s34BHT90+1N2yYq8A+/5V0Wyi0ac2NJkD3KgfSaGF9QRQ9oCC5JSAiyCStA2k9jzISooCFQNaBlpWrJBdkTThQsOA7DYQ+3pbKeDWgHQFvDiSNJwEWDWheRfIOZKVBLiRCekYoBiZSAHkx83IfgDABXielhkpfAcAkJ/WICTrwAXgZlyDkRS9rDRu1wJL98/u0yeVYHcP1mwWWgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-image,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=image],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=image],.ql-snow.ql-toolbar .ql-picker.ql-image .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAFVBMVEUAAABCQkJEREREREREREREREREREQL6X1nAAAABnRSTlMATXjl6OmAFiJpAAAAZklEQVR42sXQsQ3AIAxEUeQZoKdyzwg0DALo9h8hiCYXo4R0/MbSK1ycO5EHlScVpj4Jj97p/vtJPi9U+kptXIlMIY2r1b4XIBpSoDJJFIyYtKohAWBIV8Ke9kv8X7WwtEmBKbkDXfWkWdehkaSCAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-image.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=image].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=image].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-image .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-image:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=image]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=image]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-image .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAFVBMVEUAAAAAZ8oAZswAZswAZswAZswAZsx4QzxlAAAABnRSTlMATXjl6OmAFiJpAAAAZklEQVR42sXQsQ3AIAxEUeQZoKdyzwg0DALo9h8hiCYXo4R0/MbSK1ycO5EHlScVpj4Jj97p/vtJPi9U+kptXIlMIY2r1b4XIBpSoDJJFIyYtKohAWBIV8Ke9kv8X7WwtEmBKbkDXfWkWdehkaSCAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-list,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=list],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=list],.ql-snow.ql-toolbar .ql-picker.ql-list .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAw1BMVEUAAAAAAABVVVVAQEBERERAQEBJSUlGRkZHR0dFRUVCQkJERERAQEBGRkZDQ0NFRUVDQ0NCQkJGRkZDQ0NCQkJERERDQ0NFRUVERERFRUVERERDQ0NERERERERDQ0NFRUVERERERERERERERERERERERERERERFRUVERERERERERERFRUVERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERESFbZw4AAAAQHRSTlMAAQYIDxAVFhkaGx4gKCo0NTY3OU10fYKIiYqMj56fo6SmqKmvtLe6vr/ExcbLz9fh4uXm5+jp7O/w8vP3+vv9Z7IwDAAAAK1JREFUOMvV0scOglAQQFGwYO+oiIq9YldEFPX+/1e5cGEii2FFdNY3b/JORlF+dAqNrS1GQyDEW+9Id/gaRw9EgQacMNEhuO4caD7rlgDS/2yAVWTiia53HWeEaMLzwUKIdvt08n4TxLMptc1UEo/38YqCuGZzKknimxDi6jpa8Vjn6I4kcQNgLkSmVSvjizeeb9ITbzxXxxLETatSxRfEWwAzicC4uANN+at5AdptTQ0Ubk4LAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-list.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=list].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=list].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-list .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-list:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=list]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=list]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-list .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAw1BMVEUAAAAAAP8AVdUAYL8AZswAYM8AYc4AaNEAZswAYs4AaNAAZswAaMcAZswAZ8gAZ8kAZcoAaMsAZswAZ8kAZ8oAZcoAZswAZswAZ8wAZs0AZs0AZswAZs0AZs0AZ8wAZs0AZ8wAZ8wAZs0AZ8wAZswAZswAZs0AZ8wAZswAZcwAZcwAZs0AZs0AZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZszno9YmAAAAQHRSTlMAAQYIDxAVFhkaGx4gKCo0NTY3OU10fYKIiYqMj56fo6SmqKmvtLe6vr/ExcbLz9fh4uXm5+jp7O/w8vP3+vv9Z7IwDAAAAK1JREFUOMvV0scOglAQQFGwYO+oiIq9YldEFPX+/1e5cGEii2FFdNY3b/JORlF+dAqNrS1GQyDEW+9Id/gaRw9EgQacMNEhuO4caD7rlgDS/2yAVWTiia53HWeEaMLzwUKIdvt08n4TxLMptc1UEo/38YqCuGZzKknimxDi6jpa8Vjn6I4kcQNgLkSmVSvjizeeb9ITbzxXxxLETatSxRfEWwAzicC4uANN+at5AdptTQ0Ubk4LAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-bullet,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bullet],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bullet],.ql-snow.ql-toolbar .ql-picker.ql-bullet .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAAAzSURBVCjPY2AYACBsyCAcCgOGYCHTYAZTuFAwRCgISSgILCSiyCACF1JkGBgw6voBcj0AFsUtDasGrUcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-bullet.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=bullet].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=bullet].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-bullet .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-bullet:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=bullet]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=bullet]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-bullet .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAAAzSURBVCjPY2AYACBsyCAcCgOGYCHTYAZTuFAwRCgISSgILCSiyCACF1JkGBgw6voBcj0AFsUtDasGrUcAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-authorship,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=authorship],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=authorship],.ql-snow.ql-toolbar .ql-picker.ql-authorship .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAllBMVEUAAACAgIBAQEBCQkIAAABCQkJAQEBGRkZERERERERCQkJGRkZDQ0NDQ0NDQ0MAAAAAAAAAAABDQ0NFRUVERERFRUVERERFRUVERERFRUVERERERERERERERERERERERERERERFRUVEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREQe3JVeAAAAMXRSTlMAAhgbHx8gIS0xMjM5VFdcXWZyd3yChImPkKy4yMrO0tPj5ebq7e7v8PLz9/j6/P3+mEwo9QAAAJxJREFUGBnVwNcOgjAYBeCj4l7FjeAGUZzn/V9O0kikSftf44c/0A+Tc9iFqHll7tKEJKAWQLKjtockpZZC8qL2hiSjlkESUYsgmVNbQtKhNoCgNrwz95w14NTe8Os2gUP9wJ8p7NYsebRg06NhAZsVDRFstjQksMlogs2Rhhg2o5glpxGqz1O+g/JQUL6TQkH5TmMUPOU7jD1U1AdG8S1kERvjygAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-authorship.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=authorship].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=authorship].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-authorship .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-authorship:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=authorship]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=authorship]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-authorship .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAllBMVEUAAAAAgP8AasoAaNAAY84AaMcAZMkAZswAaMsAZswAZM0AZ8kAZMsAZ8oAZ8oAZcsAZc4AZ80AZcwAZcwAZcwAZswAZs0AZs0AZs0AZ80AZs0AZ8wAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsyCDIYeAAAAMXRSTlMAAhgbHyAhLTEyMzlUV1xdXWZyd3yChImPkKy4yMrO0tPj5ebq7e7v8PLz9/j6/P3+PxHOPAAAAJxJREFUGBnVwNcOgjAYBeCj1j0q7oEbRHGe9385SSORJu1/jR/+QGcdn9ctiNSVmYuCZEljCcmOxh6ShEYCyYvGG5KURgpJSCOEZEpjDkmTRheCSu/OzHNSg1djw6/bCB7VA3/GcFux4FGHS5uWGVwWtIRw2dISwyWlDS5HWiK49CMWnPooP6UDD62Q04GXRk4HXgPk1DDwGCiU1AcZWy1RmD8CRQAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-color,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=color],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=color],.ql-snow.ql-toolbar .ql-picker.ql-color .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAz1BMVEUAAAAAAACAgIBVVVVAQEBVVVU5OTk7OztLS0tHR0dGRkZCQkIAAABERERDQ0NDQ0NDQ0NDQ0NGRkZERERERERCQkJFRUVERERFRUVEREQAAAAAAABDQ0NFRUVEREQAAABERERFRUVERERDQ0NDQ0NERERERERERERERERERERERERERERERERERERFRUVFRUVERERERERERERERERERERDQ0NERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERbYaT1AAAARHRSTlMAAQIDBAYJDRESFhsfIiYqNUFCREtNVVZZWlxdY2RlZm1zdXZ9hI6Tl6Sws7nExcnS09XY2d/g5ejp6+zt8PP09/n9/idH/qoAAADKSURBVBgZ1cDXUsJAAIXhg2KMGruxsGoUe8cWoij1f/9nYiZDGJjsLrfwaRHEWRZrhuAXWoH8zgBO5VVpADTktU9uVz5P5B7lsdUn19+U2x3w+gbcyilsA0cnwP+qXOpAWl1pAhdyqKZAXboGvpZkdwi0Q2m9CxzI7oUJz7LaYdJgWzYPTLmXxUaPKZ01ld0A7xXllr+BK5VlwLlGLoFPlWXQCjQSduBDZfFPM9bY8V+6p7kXmcTBRCqYxMmoYBKnmgqRSRxqkebUEKsKOlxMa6IbAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-color.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=color].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=color].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-color .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-color:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=color]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=color]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-color .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAA0lBMVEUAAAAAAP8AgP8AVaoAgL8AVdUAccYAYsQAadIAY8YAaNEAaNAAY84AacsAZckAZ8gAZcoAZswAZM0AZcsAZswAZ8oAZswAZc0AZMsAZswAZ8oAZcsAZc4AZMsAZswAZcoAZ80AZcwAZswAZssAZssAZswAZs0AZs0AZs0AZ8wAZ8wAZ8wAZ8wAZswAZcwAZs0AZcwAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswVaivDAAAARXRSTlMAAQIDBAYJDRESFhsfIiYqNUFCREtNVVZZWlxdXWNkZWZtc3V2fYSOk5eksLO5xMXJ0tPV2Nnf4OXo6evs7fDz9Pf5/f6Y2SWXAAAAy0lEQVQYGdXA11LCQACF4YNijBq7sbCWKPaOLURREPjf/5WYyRAGJrvLLXyaB3GWxZoi+IFWIL9TgBN5VRoADXntktuWzyO5B3ls9Mj11uV2C7y8AjdyCtvAwRHwtyyXOpBWl5rAuRyqKVCXroDPBdntA+1QWv0H9mT3zJgnWW0xrr8pm3sm3MlircuEzorKroG3inKLX8ClyjLgTEMXwIfKMmgFGgo78K6y+LsZa+TwN93RzItM4mAiFUziZFQwiVNNheg4cahFmlEDFzs7cwmPHM8AAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-background,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=background],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=background],.ql-snow.ql-toolbar .ql-picker.ql-background .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAA4VBMVEUAAAAAAACAgIBVVVVAQEBVVVU5OTk7OztLS0tHR0dGRkZCQkJERERDQ0NDQ0NDQ0NDQ0NERERCQkJEREQAAAADAwMGBgZDQ0NEREQODg5ERERDQ0NFRUVERERERERERERDQ0MiIiJDQ0MmJiZEREQrKytEREREREQyMjIyMjJEREREREREREQ4ODhERERERERFRUVFRUVERERERERERERERERAQEBERERERERBQUFERERERERERERBQUFERERERERERERBQUFERERERERERERDQ0NERERERERDQ0NERERERESZD8GyAAAASnRSTlMAAQIDBAYJDRESFhsiJio1QURJS01QU1RWWVpjZGVtdXZ4fYCEiI6TnZ6ksLO3ucTFydLT193g4OLl5ebn6enq6+7w8vP39/n+/rihcb4AAADbSURBVHjazZPFDsMwEERdZkpTZmbmpszd//+grhpFSaS1e+khc1jbmrG1z7KZdSXLgvo79M9ziKCkKJIeoUPJA8AxKT6H5QGVE3dlmwJqKqaLwVdRIV1fDfVEdKGXGnoFBXQtDIwnWJp8uswd/XQWy8XD7aqD9srp2uJQ5NElVuiWGKvisLFz6Bpo3ryM+R84iXO6GoFBQ5ouAka9wyRdF0waUHSBpzl09xF0dTRmNnXu2OOiTNDtAKCg7W3jYk7QnQGObu0KvVeAJUFXU9aS/h5Sp0VFtui/s6w+XSJAbiVJ3G0AAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-background.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=background].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=background].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-background .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-background:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=background]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=background]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-background .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAA5FBMVEUAAAAAAP8AgP8AVaoAgL8AZswAVdUAYL8AccYAYsQAadIAY8YAaNEAasoAZswAYsQAaNAAacsAZckAadEAZ8gAZcoAZswAZswAZMkAZM0AZcsAZ8sAZswAaM0AZ8oAZ80AZswAZc0AZMsAZswAZMsAZswAZcoAZcwAZswAZssAZssAZswAZs0AZs0AZs0AZ8wAZ8wAZ8wAZ8wAZswAZcwAZs0AZcwAZswAZswAZs0AZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZswAZsxJPDLdAAAAS3RSTlMAAQIDBAUGCAkNERIWGBkaGyImJyo1N0FCQkRFS0xNTVVWWVpjZGVtc3V2fYSOk5eksLO5xMXJ0tPV2Nnf4OXo6evs7fDz9Pf5/f60OfwzAAABG0lEQVR42s2T6VKDQBCEGyUJoqgSjcYg8dZ43/EieCUa5/3fx661qMAu7O98P4bZnq5lZlkwvXS7k1hf1BTdZFEsFpvUMU15IU7TuKiYJu9d5MODZZ8WcCBk39ZVAKcvpG+ZrgNsimIdTtV0TeBGFNewdBWORTFesUx3QcP9A8N59XT+kPWdPYavOQQVXfVYTtz6gI8jvfUsdRNWe8ApHy8z5ftgm8WhDyx8M4nKumoBd5LjVkkaAdYkz+8qpQLqtK+kwKU5XRPLP1JgNF8y3RkLjw4Us69cnMDb0qdLqR9myjEXz2brNPG2NSKQqOGPRJ5gEr8NYoT/9yHE7mfShoarovYptDw7kiWLyZTbNZBa9saK33tDWZlPK39U3ELkzhssBgAAAABJRU5ErkJggg==)}.ql-snow.ql-toolbar .ql-format-button.ql-left,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=left],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=left],.ql-snow.ql-toolbar .ql-picker.ql-left .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYACAcCgaGSEKmEKFgTKEgJCERiJAiw0ACqOuR/WCKLBSMKRSE7PqB9YMwuttRnBqMKRSEGvYD6HYAD8opyeJDvUUAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-left.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=left].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=left].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-left .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-left:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=left]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=left]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-left .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYACAcCgaGSEKmEKFgTKEgJCERiJAiw0ACqOuR/WCKLBSMKRSE7PqB9YMwuttRnBqMKRSEGvYD6HYAD8opyeJDvUUAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-right,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=right],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=right],.ql-snow.ql-toolbar .ql-picker.ql-right .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYMCAcCgaGSEKmEKFgTKEgJCERiJDiwLob2fWmyELBmEJByO4eWNejuN8QNZCRw94U3fUo7h8Q1wMAuRspyVIXC2UAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-right.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=right].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=right].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-right .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-right:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=right]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=right]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-right .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYMCAcCgaGSEKmEKFgTKEgJCERiJDiwLob2fWmyELBmEJByO4eWNejuN8QNZCRw94U3fUo7h8Q1wMAuRspyVIXC2UAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-center,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=center],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=center],.ql-snow.ql-toolbar .ql-picker.ql-center .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYGCAcCgaGSEKmEKFgTKEgJCERiJAiw4ABqNORPWCKLBSMKRSE7PQB9oAwuuNR3BqMKRSEGvID53gA5GspyQ9EElMAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-center.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=center].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=center].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-center .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-center:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=center]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=center]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-center .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAABCSURBVCjPY2AYGCAcCgaGSEKmEKFgTKEgJCERiJAiw4ABqNORPWCKLBSMKRSE7PQB9oAwuuNR3BqMKRSEGvID53gA5GspyQ9EElMAAAAASUVORK5CYII=)}.ql-snow.ql-toolbar .ql-format-button.ql-justify,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=justify],.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=justify],.ql-snow.ql-toolbar .ql-picker.ql-justify .ql-picker-label{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAABCQkJEREREREREREREREQc4xmxAAAABXRSTlMATeXo6UtNtyIAAAAoSURBVCjPY2AYACAcigQMwUKmyELBmEJBYCERZCFFhoEBo64fINcDAAcQNGkJNhVcAAAAAElFTkSuQmCC)}.ql-snow.ql-toolbar .ql-format-button.ql-justify.ql-active,.ql-snow.ql-toolbar .ql-picker .ql-picker-item[data-value=justify].ql-selected,.ql-snow.ql-toolbar .ql-picker .ql-picker-label[data-value=justify].ql-active,.ql-snow.ql-toolbar .ql-picker.ql-justify .ql-picker-label.ql-active,.ql-snow.ql-toolbar:not(.ios) .ql-format-button.ql-justify:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-item[data-value=justify]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker .ql-picker-label[data-value=justify]:hover,.ql-snow.ql-toolbar:not(.ios) .ql-picker.ql-justify .ql-picker-label:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAElBMVEUAAAAAZ8oAZswAZswAZswAZsxixJGvAAAABXRSTlMATeXo6UtNtyIAAAAoSURBVCjPY2AYACAcigQMwUKmyELBmEJBYCERZCFFhoEBo64fINcDAAcQNGkJNhVcAAAAAElFTkSuQmCC)}}.ql-snow .ql-tooltip{border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#222}.ql-snow .ql-tooltip a,.ql-snow a{color:#06c}.ql-snow .ql-tooltip .input{border:1px solid #ccc;margin:0;padding:5px}.price,.total{font-weight:700;padding:.2em;margin:.2em}body{background-color:#210912;color:#999}.price,.total,h1,h2,h3{color:#fff}.price{font-size:x-large;border:1px solid #fff;border-radius:1em}.total{font-size:xx-large;background-color:#1f1c58;border:1px solid #fff;border-radius:1em}.blog,.panel{padding:1em}.blog a{color:#9f9;font-weight:900}.blog a:active,.blog a:hover{outline:0;color:#6C6}tr.vpost{background-color:#306020;max-height:3em}tr.ipost{background-color:#303030;font-size:smaller;max-height:2em}tr.vpost a{font-weight:700;color:#fff;text-shadow:3px 3px 8px #000}tr.ipost a{font-style:bold;color:#b0b0b0;text-shadow:3px 3px 5px #505050}.panel{float:left;margin:1em;color:#fff;background-color:#421824}button,input,select,textarea{background-color:#999;color:#333}a{font-weight:900;color:#9f9}a:active,a:hover{color:#6C6}.jumbotron{background-color:#502020;padding:.5em}.carousel-caption-s p{font-family:jubilat;font-weight:600;font-size:large;line-height:1.1;text-decoration:overline;text-decoration-line:overline;text-shadow:3px 3px 7px rgba(0,0,0,.8);-webkit-text-shadow:inset 0 3px 5px #000;color:#000;margin:.5em;padding:.5em;animation:mymove 3s infinite;background-color:rgba(256,256,256,.4)}.carousel-caption-s{right:3em;top:1em;left:3em;z-index:10;padding-top:20px;padding-bottom:20px;text-align:center;text-shadow:0 4px 8px rgba(0,0,0,.6);height:16em;overflow:auto}.carousel-inner .item{background-color:#301010;color:#FF8}.carousel-indicators{position:absolute;z-index:15;padding:0;text-align:center;list-style:none;top:.1em;height:1em}@-webkit-keyframes mymove{from,to{text-decoration-color:red}50%{text-decoration-color:#00f}}@keyframes mymove{from,to{text-decoration-color:red}50%{text-decoration-color:#00f}}ul.actiongroup li{display:inline}ul.actiongroup li a:hover{background-color:rgba(128,128,128,.2);color:red}.display-field{font-kerning:none;display:inline-flex}.display-label{font-family:'Lucida Sans','Lucida Sans Regular','Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif;font-stretch:condensed;display:inline-flex;color:#7f7f7f;background-color:rgba(200,256,200,.4)}footer{vertical-align:bottom;padding:1.5em;color:grey;font-weight:bolder;font-size:x-small}.meta{color:#A0A0A0;font-style:italic;font-size:smaller}.activity{font-family:fantasy}.blogtitle{display:inline-block;font-size:x-large}.blogphoto{float:left;margin:1em} \ No newline at end of file From 6268b71ab0eba3eeec8b658946dd1e6f08e3ab6c Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 16:27:25 +0100 Subject: [PATCH 17/19] Fixes SignalR bug ... but without any explanation --- Yavsc/Hubs/ChatHub.cs | 13 ++++++++----- Yavsc/Startup/Startup.cs | 12 ++++-------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Yavsc/Hubs/ChatHub.cs b/Yavsc/Hubs/ChatHub.cs index 957bc13c..a5f0522b 100644 --- a/Yavsc/Hubs/ChatHub.cs +++ b/Yavsc/Hubs/ChatHub.cs @@ -38,6 +38,7 @@ namespace Yavsc if (Context.User != null) { isAuth = Context.User.Identity.IsAuthenticated; + userName = Context.User.Identity.Name; var group = isAuth ? "authenticated" : "anonymous"; // Log ("Cx: " + group); @@ -54,8 +55,9 @@ namespace Yavsc UserAgent = Context.Request.Headers["User-Agent"], Connected = true }); - db.SaveChanges(user.Id); + db.SaveChanges(); } + } } else Groups.Add(Context.ConnectionId, "anonymous"); @@ -76,16 +78,16 @@ namespace Yavsc var cx = db.Connections.SingleOrDefault(c => c.ConnectionId == Context.ConnectionId); if (cx != null) { - var user = db.Users.Single(u => u.UserName == userName); if (stopCalled) { + var user = db.Users.Single(u => u.UserName == userName); user.Connections.Remove(cx); } else { cx.Connected = false; } - db.SaveChanges(user.Id); + db.SaveChanges(); } } } @@ -108,7 +110,7 @@ namespace Yavsc if (cx != null) { cx.Connected = true; - db.SaveChanges(user.Id); + db.SaveChanges(); } else cx = new Connection { ConnectionId = Context.ConnectionId, UserAgent = Context.Request.Headers["User-Agent"], @@ -145,9 +147,10 @@ namespace Yavsc var cx = db.Connections.SingleOrDefault(c=>c.ConnectionId == Context.ConnectionId); if (cx!=null) { db.Connections.Remove(cx); - db.SaveChanges(cx.ApplicationUserId); + db.SaveChanges(); } } + } } diff --git a/Yavsc/Startup/Startup.cs b/Yavsc/Startup/Startup.cs index 9a5e8eef..39f587c9 100755 --- a/Yavsc/Startup/Startup.cs +++ b/Yavsc/Startup/Startup.cs @@ -16,6 +16,7 @@ using Microsoft.AspNet.Localization; using Microsoft.AspNet.Mvc; using Microsoft.AspNet.Mvc.Filters; using Microsoft.AspNet.Mvc.Razor; +using Microsoft.AspNet.Http.Extensions; using Microsoft.Data.Entity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -23,7 +24,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.OptionsModel; using Microsoft.Extensions.PlatformAbstractions; using Microsoft.Net.Http.Headers; -using Yavsc.Extensions; using Yavsc.Formatters; using Yavsc.Models; using Yavsc.Services; @@ -232,7 +232,6 @@ namespace Yavsc IOptions localizationOptions, IOptions oauth2SettingsContainer, RoleManager roleManager, - UserManager userManager, IAuthorizationService authorizationService, ILoggerFactory loggerFactory) { @@ -321,7 +320,7 @@ namespace Yavsc { foreach (var c in db.Connections) db.Connections.Remove(c); - db.SaveChanges("Startup"); + db.SaveChanges(); } }); @@ -336,14 +335,11 @@ namespace Yavsc ConfigureOAuthApp(app, SiteSetup); ConfigureFileServerApp(app, SiteSetup, env, authorizationService); - app.UseWhen(context => context.Request.Path.StartsWithSegments("/api"), - branch => - { - ConfigureWebSocketsApp(app, SiteSetup, env); - }); + ConfigureWebSocketsApp(app, SiteSetup, env); ConfigureWorkflow(app, SiteSetup); app.UseRequestLocalization(localizationOptions.Value, (RequestCulture) new RequestCulture((string)"fr")); app.UseSession(); + app.UseMvc(routes => { routes.MapRoute( From 53ad230b594161c37ff965a6f0c732710ea6f711 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 20:25:49 +0100 Subject: [PATCH 18/19] refactoring --- Yavsc/Models/Messaging/RdvQueryEvent.cs | 2 +- Yavsc/Views/FrontOffice/Profiles.cshtml | 2 +- Yavsc/wwwroot/css/bootstrap.css | 6 +++--- YavscLib/{ => Blogspot}/IBlog.cs | 0 YavscLib/{ => IT}/ICode.cs | 0 YavscLib/{ => Identity}/IApplicationUser.cs | 0 YavscLib/{ => Identity}/IChatUserInfo.cs | 0 YavscLib/{ => Identity}/ICircle.cs | 0 YavscLib/{ => Identity}/ICircleMember.cs | 0 YavscLib/{ => Identity/Security}/ICircleAuthorization.cs | 0 YavscLib/{ => Identity/Security}/ICircleAuthorized.cs | 0 YavscLib/{ => Workflow}/IAccountBalance.cs | 0 YavscLib/{ => Workflow}/IActivity.cs | 0 YavscLib/{ => Workflow}/IBlackListed.cs | 0 YavscLib/{ => Workflow}/ICoWorking.cs | 0 YavscLib/{ => Workflow}/ICommandForm.cs | 0 YavscLib/{ => Workflow}/IContact.cs | 0 YavscLib/{ => Workflow}/IGoogleCloudMobileDeclaration.cs | 0 YavscLib/{ => Workflow}/ILocation.cs | 0 YavscLib/{ => Workflow}/IPosition.cs | 0 YavscLib/{ => Workflow}/ISpecializationSettings.cs | 0 21 files changed, 5 insertions(+), 5 deletions(-) rename YavscLib/{ => Blogspot}/IBlog.cs (100%) rename YavscLib/{ => IT}/ICode.cs (100%) rename YavscLib/{ => Identity}/IApplicationUser.cs (100%) rename YavscLib/{ => Identity}/IChatUserInfo.cs (100%) rename YavscLib/{ => Identity}/ICircle.cs (100%) rename YavscLib/{ => Identity}/ICircleMember.cs (100%) rename YavscLib/{ => Identity/Security}/ICircleAuthorization.cs (100%) rename YavscLib/{ => Identity/Security}/ICircleAuthorized.cs (100%) rename YavscLib/{ => Workflow}/IAccountBalance.cs (100%) rename YavscLib/{ => Workflow}/IActivity.cs (100%) rename YavscLib/{ => Workflow}/IBlackListed.cs (100%) rename YavscLib/{ => Workflow}/ICoWorking.cs (100%) rename YavscLib/{ => Workflow}/ICommandForm.cs (100%) rename YavscLib/{ => Workflow}/IContact.cs (100%) rename YavscLib/{ => Workflow}/IGoogleCloudMobileDeclaration.cs (100%) rename YavscLib/{ => Workflow}/ILocation.cs (100%) rename YavscLib/{ => Workflow}/IPosition.cs (100%) rename YavscLib/{ => Workflow}/ISpecializationSettings.cs (100%) diff --git a/Yavsc/Models/Messaging/RdvQueryEvent.cs b/Yavsc/Models/Messaging/RdvQueryEvent.cs index 234529e6..4ed600ed 100644 --- a/Yavsc/Models/Messaging/RdvQueryEvent.cs +++ b/Yavsc/Models/Messaging/RdvQueryEvent.cs @@ -29,7 +29,7 @@ public class RdvQueryEvent: RdvQueryProviderInfo, IEvent { public RdvQueryEvent() { - Topic = "BookQuery"; + Topic = "RdvQuery"; } public string Message diff --git a/Yavsc/Views/FrontOffice/Profiles.cshtml b/Yavsc/Views/FrontOffice/Profiles.cshtml index 888e734b..3eae3277 100644 --- a/Yavsc/Views/FrontOffice/Profiles.cshtml +++ b/Yavsc/Views/FrontOffice/Profiles.cshtml @@ -8,7 +8,7 @@ @foreach (var profile in Model) {
- @Html.DisplayFor(m=>m) + @Html.DisplayFor(m=>profile)
diff --git a/Yavsc/wwwroot/css/bootstrap.css b/Yavsc/wwwroot/css/bootstrap.css index 223c0623..658f50a7 100644 --- a/Yavsc/wwwroot/css/bootstrap.css +++ b/Yavsc/wwwroot/css/bootstrap.css @@ -5119,9 +5119,9 @@ a.thumbnail.active { color: #2b542c; } .alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; + color: #f4ebc9; + background-color: #1d698f; + border-color: #0a4563; } .alert-info hr { border-top-color: #a6e1ec; diff --git a/YavscLib/IBlog.cs b/YavscLib/Blogspot/IBlog.cs similarity index 100% rename from YavscLib/IBlog.cs rename to YavscLib/Blogspot/IBlog.cs diff --git a/YavscLib/ICode.cs b/YavscLib/IT/ICode.cs similarity index 100% rename from YavscLib/ICode.cs rename to YavscLib/IT/ICode.cs diff --git a/YavscLib/IApplicationUser.cs b/YavscLib/Identity/IApplicationUser.cs similarity index 100% rename from YavscLib/IApplicationUser.cs rename to YavscLib/Identity/IApplicationUser.cs diff --git a/YavscLib/IChatUserInfo.cs b/YavscLib/Identity/IChatUserInfo.cs similarity index 100% rename from YavscLib/IChatUserInfo.cs rename to YavscLib/Identity/IChatUserInfo.cs diff --git a/YavscLib/ICircle.cs b/YavscLib/Identity/ICircle.cs similarity index 100% rename from YavscLib/ICircle.cs rename to YavscLib/Identity/ICircle.cs diff --git a/YavscLib/ICircleMember.cs b/YavscLib/Identity/ICircleMember.cs similarity index 100% rename from YavscLib/ICircleMember.cs rename to YavscLib/Identity/ICircleMember.cs diff --git a/YavscLib/ICircleAuthorization.cs b/YavscLib/Identity/Security/ICircleAuthorization.cs similarity index 100% rename from YavscLib/ICircleAuthorization.cs rename to YavscLib/Identity/Security/ICircleAuthorization.cs diff --git a/YavscLib/ICircleAuthorized.cs b/YavscLib/Identity/Security/ICircleAuthorized.cs similarity index 100% rename from YavscLib/ICircleAuthorized.cs rename to YavscLib/Identity/Security/ICircleAuthorized.cs diff --git a/YavscLib/IAccountBalance.cs b/YavscLib/Workflow/IAccountBalance.cs similarity index 100% rename from YavscLib/IAccountBalance.cs rename to YavscLib/Workflow/IAccountBalance.cs diff --git a/YavscLib/IActivity.cs b/YavscLib/Workflow/IActivity.cs similarity index 100% rename from YavscLib/IActivity.cs rename to YavscLib/Workflow/IActivity.cs diff --git a/YavscLib/IBlackListed.cs b/YavscLib/Workflow/IBlackListed.cs similarity index 100% rename from YavscLib/IBlackListed.cs rename to YavscLib/Workflow/IBlackListed.cs diff --git a/YavscLib/ICoWorking.cs b/YavscLib/Workflow/ICoWorking.cs similarity index 100% rename from YavscLib/ICoWorking.cs rename to YavscLib/Workflow/ICoWorking.cs diff --git a/YavscLib/ICommandForm.cs b/YavscLib/Workflow/ICommandForm.cs similarity index 100% rename from YavscLib/ICommandForm.cs rename to YavscLib/Workflow/ICommandForm.cs diff --git a/YavscLib/IContact.cs b/YavscLib/Workflow/IContact.cs similarity index 100% rename from YavscLib/IContact.cs rename to YavscLib/Workflow/IContact.cs diff --git a/YavscLib/IGoogleCloudMobileDeclaration.cs b/YavscLib/Workflow/IGoogleCloudMobileDeclaration.cs similarity index 100% rename from YavscLib/IGoogleCloudMobileDeclaration.cs rename to YavscLib/Workflow/IGoogleCloudMobileDeclaration.cs diff --git a/YavscLib/ILocation.cs b/YavscLib/Workflow/ILocation.cs similarity index 100% rename from YavscLib/ILocation.cs rename to YavscLib/Workflow/ILocation.cs diff --git a/YavscLib/IPosition.cs b/YavscLib/Workflow/IPosition.cs similarity index 100% rename from YavscLib/IPosition.cs rename to YavscLib/Workflow/IPosition.cs diff --git a/YavscLib/ISpecializationSettings.cs b/YavscLib/Workflow/ISpecializationSettings.cs similarity index 100% rename from YavscLib/ISpecializationSettings.cs rename to YavscLib/Workflow/ISpecializationSettings.cs From 8edb579a856a2c93eb88173bfc0d5d4aa1a788f5 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 2 Mar 2017 23:47:44 +0100 Subject: [PATCH 19/19] refactoring --- ...2122929_brusherProfileDiscount.Designer.cs | 1 - .../20170302122929_brusherProfileDiscount.cs | 2 - .../ApplicationDbContextModelSnapshot.cs | 2 - Yavsc/Models/Billing/CommandLine.cs | 3 +- Yavsc/Models/Billing/Estimate.cs | 2 +- Yavsc/Models/Messaging/EstimationEvent.cs | 4 +- Yavsc/Startup/Startup.cs | 1 - Yavsc/project.json | 1 + Yavsc/project.lock.json | 5752 +++++++++++++++++ .../{Workflow => Billing}/IAccountBalance.cs | 0 .../Billing}/IEstimate.cs | 4 +- YavscLib/Billing/IcommandLine.cs | 13 + YavscLib/project.json | 2 + YavscLib/project.lock.json | 18 +- 14 files changed, 5785 insertions(+), 20 deletions(-) rename YavscLib/{Workflow => Billing}/IAccountBalance.cs (100%) rename {Yavsc/Interfaces/Workflow => YavscLib/Billing}/IEstimate.cs (80%) create mode 100644 YavscLib/Billing/IcommandLine.cs diff --git a/Yavsc/Migrations/20170302122929_brusherProfileDiscount.Designer.cs b/Yavsc/Migrations/20170302122929_brusherProfileDiscount.Designer.cs index d75ee06d..4e050e69 100644 --- a/Yavsc/Migrations/20170302122929_brusherProfileDiscount.Designer.cs +++ b/Yavsc/Migrations/20170302122929_brusherProfileDiscount.Designer.cs @@ -1,7 +1,6 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; -using Microsoft.Data.Entity.Metadata; using Microsoft.Data.Entity.Migrations; using Yavsc.Models; diff --git a/Yavsc/Migrations/20170302122929_brusherProfileDiscount.cs b/Yavsc/Migrations/20170302122929_brusherProfileDiscount.cs index 2ae0e67f..56d7aada 100644 --- a/Yavsc/Migrations/20170302122929_brusherProfileDiscount.cs +++ b/Yavsc/Migrations/20170302122929_brusherProfileDiscount.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using Microsoft.Data.Entity.Migrations; namespace Yavsc.Migrations diff --git a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs index 18ee6304..07ac23be 100644 --- a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs @@ -1,8 +1,6 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; -using Microsoft.Data.Entity.Metadata; -using Microsoft.Data.Entity.Migrations; using Yavsc.Models; namespace Yavsc.Migrations diff --git a/Yavsc/Models/Billing/CommandLine.cs b/Yavsc/Models/Billing/CommandLine.cs index f7df4b13..59488fb8 100644 --- a/Yavsc/Models/Billing/CommandLine.cs +++ b/Yavsc/Models/Billing/CommandLine.cs @@ -5,8 +5,9 @@ using Newtonsoft.Json; namespace Yavsc.Models.Billing { + using YavscLib.Billing; - public class CommandLine { + public class CommandLine : ICommandLine { [Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long Id { get; set; } diff --git a/Yavsc/Models/Billing/Estimate.cs b/Yavsc/Models/Billing/Estimate.cs index 8cfa34cf..b53764a6 100644 --- a/Yavsc/Models/Billing/Estimate.cs +++ b/Yavsc/Models/Billing/Estimate.cs @@ -7,9 +7,9 @@ using System.Linq; namespace Yavsc.Models.Billing { - using Interfaces; using Models.Workflow; using Newtonsoft.Json; + using YavscLib.Workflow; public partial class Estimate : IEstimate { diff --git a/Yavsc/Models/Messaging/EstimationEvent.cs b/Yavsc/Models/Messaging/EstimationEvent.cs index 1425f708..3266e03a 100644 --- a/Yavsc/Models/Messaging/EstimationEvent.cs +++ b/Yavsc/Models/Messaging/EstimationEvent.cs @@ -26,8 +26,8 @@ namespace Yavsc.Models.Messaging Avatar = perfer.Performer.Avatar, UserId = perfer.PerformerId }; - ((IEvent)this).Sender = perfer.Performer.UserName; - ((IEvent)this).Message = string.Format(SR["EstimationMessageToClient"],perfer.Performer.UserName, + Sender = perfer.Performer.UserName; + Message = string.Format(SR["EstimationMessageToClient"],perfer.Performer.UserName, estimate.Title,estimate.GetTotal()); } ProviderClientInfo ProviderInfo { get; set; } diff --git a/Yavsc/Startup/Startup.cs b/Yavsc/Startup/Startup.cs index 39f587c9..c2f0eb16 100755 --- a/Yavsc/Startup/Startup.cs +++ b/Yavsc/Startup/Startup.cs @@ -16,7 +16,6 @@ using Microsoft.AspNet.Localization; using Microsoft.AspNet.Mvc; using Microsoft.AspNet.Mvc.Filters; using Microsoft.AspNet.Mvc.Razor; -using Microsoft.AspNet.Http.Extensions; using Microsoft.Data.Entity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; diff --git a/Yavsc/project.json b/Yavsc/project.json index 2a74d5e4..9a0d1245 100755 --- a/Yavsc/project.json +++ b/Yavsc/project.json @@ -81,6 +81,7 @@ "Microsoft.Extensions.Logging": "1.0.0-rc1-final", "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final", "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.TraceSource": "1.0.0-rc1-final", "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", "Microsoft.Extensions.Globalization.CultureInfoCache": "1.0.0-rc1-final", "Microsoft.Extensions.Localization": "1.0.0-rc1-final", diff --git a/Yavsc/project.lock.json b/Yavsc/project.lock.json index d9fd394c..8f69d1c9 100644 --- a/Yavsc/project.lock.json +++ b/Yavsc/project.lock.json @@ -2068,6 +2068,5741 @@ "lib/net451/Microsoft.Extensions.Logging.Debug.dll": {} } }, + "Microsoft.Extensions.Logging.TraceSource/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections.Concurrent", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.TraceSource.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.TraceSource.dll": {} + } + }, + "Microsoft.Extensions.MemoryPool/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.MemoryPool.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.MemoryPool.dll": {} + } + }, + "Microsoft.Extensions.Options/0.0.1-alpha": { + "type": "package" + }, + "Microsoft.Extensions.OptionsModel/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.OptionsModel.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.OptionsModel.dll": {} + } + }, + "Microsoft.Extensions.PlatformAbstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.PlatformAbstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.PlatformAbstractions.dll": {} + } + }, + "Microsoft.Extensions.Primitives/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Primitives.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Primitives.dll": {} + } + }, + "Microsoft.Extensions.WebEncoders/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.WebEncoders.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.WebEncoders.dll": {} + } + }, + "Microsoft.Extensions.WebEncoders.Core/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.WebEncoders.Core.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.WebEncoders.Core.dll": {} + } + }, + "Microsoft.Framework.Configuration/1.0.0-beta8": { + "type": "package", + "dependencies": { + "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.dll": {} + } + }, + "Microsoft.Framework.Configuration.Abstractions/1.0.0-beta8": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.Abstractions.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.Abstractions.dll": {} + } + }, + "Microsoft.Framework.Configuration.Binder/1.0.0-beta8": { + "type": "package", + "dependencies": { + "Microsoft.Framework.Configuration": "1.0.0-beta8" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.Binder.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.Binder.dll": {} + } + }, + "Microsoft.Framework.Configuration.FileExtensions/1.0.0-beta8": { + "type": "package", + "dependencies": { + "Microsoft.Framework.Configuration": "1.0.0-beta8" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.FileExtensions.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.FileExtensions.dll": {} + } + }, + "Microsoft.Framework.Configuration.Json/1.0.0-beta8": { + "type": "package", + "dependencies": { + "Microsoft.Framework.Configuration": "1.0.0-beta8", + "Microsoft.Framework.Configuration.FileExtensions": "1.0.0-beta8", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.Json.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.Json.dll": {} + } + }, + "Microsoft.Framework.ConfigurationModel/1.0.0-beta4": { + "type": "package", + "dependencies": { + "Microsoft.Framework.ConfigurationModel.Interfaces": "1.0.0-beta4", + "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.dll": {} + } + }, + "Microsoft.Framework.ConfigurationModel.Interfaces/1.0.0-beta4": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.dll": {} + } + }, + "Microsoft.Framework.ConfigurationModel.Json/1.0.0-beta4": { + "type": "package", + "dependencies": { + "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.Json.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.Json.dll": {} + } + }, + "Microsoft.Framework.Runtime.Interfaces/1.0.0-beta4": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll": {} + } + }, + "Microsoft.IdentityModel.Logging/1.0.0-rc1-211161024": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.IdentityModel.Logging.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.IdentityModel.Logging.dll": {} + } + }, + "Microsoft.IdentityModel.Protocols/2.0.0-rc1-211161024": { + "type": "package", + "dependencies": { + "System.IdentityModel.Tokens.Jwt": "5.0.0-rc1-211161024" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/net451/Microsoft.IdentityModel.Protocols.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.IdentityModel.Protocols.dll": {} + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/2.0.0-rc1-211161024": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "2.0.0-rc1-211161024" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {} + } + }, + "Microsoft.Net.Http.Headers/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Net.Http.Headers.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Net.Http.Headers.dll": {} + } + }, + "Microsoft.Net.Http.Server/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final", + "Microsoft.Net.WebSockets": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Net.Http.Server.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Net.Http.Server.dll": {} + } + }, + "Microsoft.Net.WebSockets/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Net.WebSockets.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Net.WebSockets.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.0.1-beta-23516": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Targets": "1.0.1-beta-23516" + } + }, + "Microsoft.NETCore.Targets/1.0.1-beta-23516": { + "type": "package" + }, + "Microsoft.Owin/2.1.0": { + "type": "package", + "dependencies": { + "Owin": "1.0.0" + }, + "compile": { + "lib/net45/Microsoft.Owin.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.Owin.dll": {} + } + }, + "Microsoft.Owin.Security/2.1.0": { + "type": "package", + "dependencies": { + "Microsoft.Owin": "2.1.0", + "Owin": "1.0.0" + }, + "compile": { + "lib/net45/Microsoft.Owin.Security.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.Owin.Security.dll": {} + } + }, + "Microsoft.Web.Infrastructure/1.0.0": { + "type": "package", + "compile": { + "lib/net40/Microsoft.Web.Infrastructure.dll": {} + }, + "runtime": { + "lib/net40/Microsoft.Web.Infrastructure.dll": {} + } + }, + "MimeKit/1.3.0-beta7": { + "type": "package", + "frameworkAssemblies": [ + "System", + "System.Core", + "System.Data", + "System.Security" + ], + "compile": { + "lib/net451/BouncyCastle.dll": {}, + "lib/net451/MimeKit.dll": {} + }, + "runtime": { + "lib/net451/BouncyCastle.dll": {}, + "lib/net451/MimeKit.dll": {} + } + }, + "Newtonsoft.Json/7.0.1": { + "type": "package", + "compile": { + "lib/net45/Newtonsoft.Json.dll": {} + }, + "runtime": { + "lib/net45/Newtonsoft.Json.dll": {} + } + }, + "Npgsql/3.1.0-alpha6": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net45/Npgsql.dll": {} + }, + "runtime": { + "lib/net45/Npgsql.dll": {} + } + }, + "Owin/1.0.0": { + "type": "package", + "compile": { + "lib/net40/Owin.dll": {} + }, + "runtime": { + "lib/net40/Owin.dll": {} + } + }, + "PayPalCoreSDK/1.7.1": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "7.0.1" + }, + "compile": { + "lib/net451/PayPalCoreSDK.dll": {} + }, + "runtime": { + "lib/net451/PayPalCoreSDK.dll": {} + } + }, + "PayPalMerchantSDK/2.16.204": { + "type": "package", + "dependencies": { + "PayPalCoreSDK": "1.7.1" + }, + "compile": { + "lib/net20/PayPalMerchantSDK.dll": {} + }, + "runtime": { + "lib/net20/PayPalMerchantSDK.dll": {} + } + }, + "Remotion.Linq/2.0.1": { + "type": "package", + "compile": { + "lib/net45/Remotion.Linq.dll": {} + }, + "runtime": { + "lib/net45/Remotion.Linq.dll": {} + } + }, + "System.Collections/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Diagnostics.DiagnosticSource/4.0.0-beta-23516": { + "type": "package", + "dependencies": { + "System.Diagnostics.Tracing": "4.0.0", + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet5.2/System.Diagnostics.DiagnosticSource.dll": {} + }, + "runtime": { + "lib/dotnet5.2/System.Diagnostics.DiagnosticSource.dll": {} + } + }, + "System.Diagnostics.Tracing/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Globalization/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.IdentityModel.Tokens/5.0.0-rc1-211161024": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "1.0.0-rc1-211161024", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Xml" + ], + "compile": { + "lib/net451/System.IdentityModel.Tokens.dll": {} + }, + "runtime": { + "lib/net451/System.IdentityModel.Tokens.dll": {} + } + }, + "System.IdentityModel.Tokens.Jwt/5.0.0-rc1-211161024": { + "type": "package", + "dependencies": { + "System.IdentityModel.Tokens": "5.0.0-rc1-211161024" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/System.IdentityModel.Tokens.Jwt.dll": {} + }, + "runtime": { + "lib/net451/System.IdentityModel.Tokens.Jwt.dll": {} + } + }, + "System.IO/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Json/4.0.20126.16343": { + "type": "package", + "compile": { + "lib/net40/System.Json.dll": {} + }, + "runtime": { + "lib/net40/System.Json.dll": {} + } + }, + "System.Linq/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Numerics.Vectors/4.1.1-beta-23516": { + "type": "package", + "compile": { + "lib/portable-net45+win8/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/portable-net45+win8/System.Numerics.Vectors.dll": {} + } + }, + "System.Reflection/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Reflection.Metadata/1.1.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet5.2/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet5.2/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Runtime/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Runtime.Extensions/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Runtime.InteropServices/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Text.Encoding/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Text.Encoding.Extensions/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Threading/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "WebGrease/1.5.2": { + "type": "package", + "dependencies": { + "Antlr": "3.4.1.9004", + "Newtonsoft.Json": "5.0.4" + }, + "compile": { + "lib/WebGrease.dll": {} + }, + "runtime": { + "lib/WebGrease.dll": {} + } + }, + "YavscLib/1.0.0": { + "type": "project", + "framework": ".NETFramework,Version=v4.5.1" + }, + "Zlib.Portable.Signed/1.11.0": { + "type": "package", + "compile": { + "lib/portable-net4+sl5+wp8+win8+wpa81+MonoTouch+MonoAndroid/Zlib.Portable.dll": {} + }, + "runtime": { + "lib/portable-net4+sl5+wp8+win8+wpa81+MonoTouch+MonoAndroid/Zlib.Portable.dll": {} + } + } + }, + "DNX,Version=v4.5.1/debian.8-x86": { + "Antlr/3.4.1.9004": { + "type": "package", + "compile": { + "lib/Antlr3.Runtime.dll": {} + }, + "runtime": { + "lib/Antlr3.Runtime.dll": {} + } + }, + "EntityFramework.Commands/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational.Design": "7.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/EntityFramework.Commands.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework.Commands.dll": {} + } + }, + "EntityFramework.Core/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Ix-Async": "1.2.5", + "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Remotion.Linq": "2.0.1", + "System.Collections.Immutable": "1.1.36" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections", + "System.ComponentModel.DataAnnotations", + "System.Core", + "System.Diagnostics.Debug", + "System.Diagnostics.Tools", + "System.Globalization", + "System.Linq", + "System.Linq.Expressions", + "System.Linq.Queryable", + "System.ObjectModel", + "System.Reflection", + "System.Reflection.Extensions", + "System.Resources.ResourceManager", + "System.Runtime", + "System.Runtime.Extensions", + "System.Threading" + ], + "compile": { + "lib/dnx451/EntityFramework.Core.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework.Core.dll": {} + } + }, + "EntityFramework.MicrosoftSqlServer/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational": "7.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/EntityFramework.MicrosoftSqlServer.dll": {} + }, + "runtime": { + "lib/net451/EntityFramework.MicrosoftSqlServer.dll": {} + } + }, + "EntityFramework.Relational/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Core": "7.0.0-rc1-final", + "System.Diagnostics.DiagnosticSource": "4.0.0-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Data", + "System.Transactions" + ], + "compile": { + "lib/net451/EntityFramework.Relational.dll": {} + }, + "runtime": { + "lib/net451/EntityFramework.Relational.dll": {} + } + }, + "EntityFramework.Relational.Design/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational": "7.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.ComponentModel.DataAnnotations", + "System.Core", + "System.IO", + "System.Text.Encoding", + "System.Threading.Tasks" + ], + "compile": { + "lib/dnx451/EntityFramework.Relational.Design.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework.Relational.Design.dll": {} + } + }, + "EntityFramework7.Npgsql/3.1.0-rc1-3": { + "type": "package", + "dependencies": { + "EntityFramework.Core": "7.0.0-rc1-final", + "EntityFramework.Relational": "7.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Npgsql": "3.1.0-alpha6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections", + "System.Core", + "System.Diagnostics.Contracts", + "System.Linq.Expressions", + "System.Reflection", + "System.Runtime" + ], + "compile": { + "lib/dnx451/EntityFramework7.Npgsql.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework7.Npgsql.dll": {} + } + }, + "EntityFramework7.Npgsql.Design/3.1.0-rc1-5": { + "type": "package", + "dependencies": { + "EntityFramework.Core": "7.0.0-rc1-final", + "EntityFramework.Relational": "7.0.0-rc1-final", + "EntityFramework.Relational.Design": "7.0.0-rc1-final", + "EntityFramework7.Npgsql": "3.1.0-rc1-3", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Npgsql": "3.1.0-alpha6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections", + "System.Core", + "System.Diagnostics.Contracts", + "System.Linq.Expressions", + "System.Reflection", + "System.Runtime" + ], + "compile": { + "lib/dnx451/EntityFramework7.Npgsql.Design.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework7.Npgsql.Design.dll": {} + } + }, + "Extensions.AspNet.Authentication.Instagram/1.0.0-t150809211713": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication.OAuth": "1.0.0-beta7-12765" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Extensions.AspNet.Authentication.Instagram.dll": {} + }, + "runtime": { + "lib/dnx451/Extensions.AspNet.Authentication.Instagram.dll": {} + } + }, + "Google.Apis/1.11.1": { + "type": "package", + "dependencies": { + "Google.Apis.Core": "1.11.1", + "log4net": "2.0.3", + "Zlib.Portable.Signed": "1.11.0" + }, + "compile": { + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} + }, + "runtime": { + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} + } + }, + "Google.Apis.Core/1.11.1": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "7.0.1" + }, + "compile": { + "lib/net45/Google.Apis.Core.dll": {} + }, + "runtime": { + "lib/net45/Google.Apis.Core.dll": {} + } + }, + "Ix-Async/1.2.5": { + "type": "package", + "frameworkAssemblies": [ + "System", + "System.Core" + ], + "compile": { + "lib/net45/System.Interactive.Async.dll": {} + }, + "runtime": { + "lib/net45/System.Interactive.Async.dll": {} + } + }, + "jQuery/1.6.4": { + "type": "package" + }, + "log4net/2.0.3": { + "type": "package", + "compile": { + "lib/net40-full/log4net.dll": {} + }, + "runtime": { + "lib/net40-full/log4net.dll": {} + } + }, + "MailKit/1.3.0-beta7": { + "type": "package", + "dependencies": { + "MimeKit": "1.3.0-beta7" + }, + "frameworkAssemblies": [ + "System", + "System.Core", + "System.Data" + ], + "compile": { + "lib/net451/MailKit.dll": {} + }, + "runtime": { + "lib/net451/MailKit.dll": {} + } + }, + "MarkdownDeep-av.NET/1.5.4": { + "type": "package", + "compile": { + "lib/net451/MarkdownDeep.dll": {} + }, + "runtime": { + "lib/net451/MarkdownDeep.dll": {} + } + }, + "Microsoft.AspNet.Antiforgery/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.DataProtection": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.WebUtilities": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Antiforgery.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Antiforgery.dll": {} + } + }, + "Microsoft.AspNet.Authentication/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.DataProtection": "1.0.0-rc1-final", + "Microsoft.AspNet.Http": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.dll": {} + } + }, + "Microsoft.AspNet.Authentication.Cookies/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.Cookies.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.Cookies.dll": {} + } + }, + "Microsoft.AspNet.Authentication.Facebook/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication.OAuth": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.Facebook.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.Facebook.dll": {} + } + }, + "Microsoft.AspNet.Authentication.JwtBearer/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "2.0.0-rc1-211161024" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/dnx451/Microsoft.AspNet.Authentication.JwtBearer.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.AspNet.Authentication.JwtBearer.dll": {} + } + }, + "Microsoft.AspNet.Authentication.OAuth/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.OAuth.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.OAuth.dll": {} + } + }, + "Microsoft.AspNet.Authentication.Twitter/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.Twitter.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.Twitter.dll": {} + } + }, + "Microsoft.AspNet.Authorization/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Features": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authorization.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authorization.dll": {} + } + }, + "Microsoft.AspNet.Cors/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Cors.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Cors.dll": {} + } + }, + "Microsoft.AspNet.Cryptography.Internal/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Cryptography.Internal.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Cryptography.Internal.dll": {} + } + }, + "Microsoft.AspNet.Cryptography.KeyDerivation/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Cryptography.Internal": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Cryptography.KeyDerivation.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Cryptography.KeyDerivation.dll": {} + } + }, + "Microsoft.AspNet.DataProtection/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Cryptography.Internal": "1.0.0-rc1-final", + "Microsoft.AspNet.DataProtection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.IO", + "System.Security", + "System.Xml", + "System.Xml.Linq" + ], + "compile": { + "lib/net451/Microsoft.AspNet.DataProtection.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.DataProtection.dll": {} + } + }, + "Microsoft.AspNet.DataProtection.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.DataProtection.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.DataProtection.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.DataProtection.SystemWeb/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.DataProtection": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Configuration", + "System.Core", + "System.Security", + "System.Web" + ], + "compile": { + "lib/net451/Microsoft.AspNet.DataProtection.SystemWeb.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.DataProtection.SystemWeb.dll": {} + } + }, + "Microsoft.AspNet.Diagnostics/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Diagnostics.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.FileProviders.Physical": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.AspNet.WebUtilities": "1.0.0-rc1-final", + "Microsoft.Dnx.Compilation.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final", + "System.Diagnostics.DiagnosticSource": "4.0.0-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Diagnostics.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Diagnostics.dll": {} + } + }, + "Microsoft.AspNet.Diagnostics.Abstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Diagnostics.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Diagnostics.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Diagnostics.Entity/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational": "7.0.0-rc1-final", + "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Configuration", + "System.Core", + "System.Threading.Tasks" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Diagnostics.Entity.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Diagnostics.Entity.dll": {} + } + }, + "Microsoft.AspNet.FileProviders.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.FileProviders.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.FileProviders.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.FileProviders.Physical/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.FileProviders.Physical.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.FileProviders.Physical.dll": {} + } + }, + "Microsoft.AspNet.Hosting/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Physical": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Server.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Http": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Dnx.Compilation.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final", + "System.Diagnostics.DiagnosticSource": "4.0.0-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime" + ], + "compile": { + "lib/dnx451/Microsoft.AspNet.Hosting.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.AspNet.Hosting.dll": {} + } + }, + "Microsoft.AspNet.Hosting.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Hosting.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Hosting.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Hosting.Server.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Features": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Hosting.Server.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Hosting.Server.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Html.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Html.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Html.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Http/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.WebUtilities": "1.0.0-rc1-final", + "Microsoft.Net.Http.Headers": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Http.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Http.dll": {} + } + }, + "Microsoft.AspNet.Http.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Features": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Http.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Http.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Http.Extensions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final", + "Microsoft.Net.Http.Headers": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Http.Extensions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Http.Extensions.dll": {} + } + }, + "Microsoft.AspNet.Http.Features/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Http.Features.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Http.Features.dll": {} + } + }, + "Microsoft.AspNet.Identity/3.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final", + "Microsoft.AspNet.Cryptography.KeyDerivation": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Identity.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Identity.dll": {} + } + }, + "Microsoft.AspNet.Identity.EntityFramework/3.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational": "7.0.0-rc1-final", + "Microsoft.AspNet.Identity": "3.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime", + "System.Threading.Tasks" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Identity.EntityFramework.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Identity.EntityFramework.dll": {} + } + }, + "Microsoft.AspNet.IISPlatformHandler/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.IISPlatformHandler.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.IISPlatformHandler.dll": {} + } + }, + "Microsoft.AspNet.JsonPatch/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.JsonPatch.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.JsonPatch.dll": {} + } + }, + "Microsoft.AspNet.Localization/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Globalization.CultureInfoCache": "1.0.0-rc1-final", + "Microsoft.Extensions.Localization.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Localization.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Localization.dll": {} + } + }, + "Microsoft.AspNet.Mvc/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.ApiExplorer": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Cors": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.DataAnnotations": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Formatters.Json": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Localization": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Razor": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.ViewFeatures": "6.0.0-rc1-final", + "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Abstractions/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Routing": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Mvc.ApiExplorer/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.ApiExplorer.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.ApiExplorer.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Core/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authorization": "1.0.0-rc1-final", + "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Abstractions": "6.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.MemoryPool": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final", + "System.Diagnostics.DiagnosticSource": "4.0.0-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Core.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Core.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Cors/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Cors": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Cors.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Cors.dll": {} + } + }, + "Microsoft.AspNet.Mvc.DataAnnotations/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final", + "Microsoft.Extensions.Localization": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.ComponentModel.DataAnnotations", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.DataAnnotations.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.DataAnnotations.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Formatters.Json/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.JsonPatch": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Formatters.Json.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Formatters.Json.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Localization/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Localization": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Razor": "6.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.Localization": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Localization.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Localization.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Razor/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.Razor.Host": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.ViewFeatures": "6.0.0-rc1-final", + "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces": "1.0.0-rc1-final", + "Microsoft.AspNet.Razor.Runtime.Precompilation": "4.0.0-rc1-final", + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final", + "Microsoft.Dnx.Compilation.CSharp.Common": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections", + "System.Core", + "System.IO", + "System.Runtime", + "System.Text.Encoding", + "System.Threading.Tasks" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Razor.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Razor.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Razor.Host/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Physical": "1.0.0-rc1-final", + "Microsoft.AspNet.Razor.Runtime": "4.0.0-rc1-final", + "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Razor.Host.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Razor.Host.dll": {} + } + }, + "Microsoft.AspNet.Mvc.TagHelpers/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.Razor": "6.0.0-rc1-final", + "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final", + "Microsoft.Extensions.FileSystemGlobbing": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.TagHelpers.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.TagHelpers.dll": {} + } + }, + "Microsoft.AspNet.Mvc.ViewFeatures/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Antiforgery": "1.0.0-rc1-final", + "Microsoft.AspNet.Diagnostics.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Html.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.DataAnnotations": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Formatters.Json": "6.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.ViewFeatures.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.ViewFeatures.dll": {} + } + }, + "Microsoft.AspNet.OWin/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Owin.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Owin.dll": {} + } + }, + "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll": {} + } + }, + "Microsoft.AspNet.Razor/4.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Razor.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Razor.dll": {} + } + }, + "Microsoft.AspNet.Razor.Runtime/4.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Html.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Razor": "4.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Xml", + "System.Xml.Linq" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Razor.Runtime.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Razor.Runtime.dll": {} + } + }, + "Microsoft.AspNet.Razor.Runtime.Precompilation/4.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Razor.Runtime": "4.0.0-rc1-final", + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Razor.Runtime.Precompilation.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Razor.Runtime.Precompilation.dll": {} + } + }, + "Microsoft.AspNet.Routing/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Routing.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Routing.dll": {} + } + }, + "Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Hosting": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "System.Numerics.Vectors": "4.1.1-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.AspNet.Server.Kestrel.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.AspNet.Server.Kestrel.dll": {} + } + }, + "Microsoft.AspNet.Server.WebListener/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Hosting": "1.0.0-rc1-final", + "Microsoft.Net.Http.Headers": "1.0.0-rc1-final", + "Microsoft.Net.Http.Server": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.AspNet.Server.WebListener.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.AspNet.Server.WebListener.dll": {} + } + }, + "Microsoft.AspNet.Session/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Session.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Session.dll": {} + } + }, + "Microsoft.AspNet.SignalR.Core/2.2.1": { + "type": "package", + "dependencies": { + "Microsoft.Owin": "2.1.0", + "Microsoft.Owin.Security": "2.1.0", + "Newtonsoft.Json": "6.0.4", + "Owin": "1.0.0" + }, + "compile": { + "lib/net45/Microsoft.AspNet.SignalR.Core.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.AspNet.SignalR.Core.dll": {} + } + }, + "Microsoft.AspNet.SignalR.JS/2.2.1": { + "type": "package", + "dependencies": { + "jQuery": "1.6.4" + } + }, + "Microsoft.AspNet.StaticFiles/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.StaticFiles.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.StaticFiles.dll": {} + } + }, + "Microsoft.AspNet.Tooling.Razor/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Razor.Runtime": "4.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Tooling.Razor.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Tooling.Razor.dll": {} + } + }, + "Microsoft.AspNet.Web.Optimization/1.1.3": { + "type": "package", + "dependencies": { + "Microsoft.Web.Infrastructure": "1.0.0", + "WebGrease": "1.5.2" + }, + "compile": { + "lib/net40/System.Web.Optimization.dll": {} + }, + "runtime": { + "lib/net40/System.Web.Optimization.dll": {} + } + }, + "Microsoft.AspNet.WebSockets.Protocol/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.WebSockets.Protocol.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.WebSockets.Protocol.dll": {} + } + }, + "Microsoft.AspNet.WebSockets.Server/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.AspNet.WebSockets.Protocol": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.WebSockets.Server.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.WebSockets.Server.dll": {} + } + }, + "Microsoft.AspNet.WebUtilities/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.WebUtilities.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.WebUtilities.dll": {} + } + }, + "Microsoft.CodeAnalysis.Analyzers/1.0.0": { + "type": "package", + "frameworkAssemblies": [ + "System" + ] + }, + "Microsoft.CodeAnalysis.Common/1.1.0-rc1-20151109-01": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "[1.0.0, 1.2.0)", + "System.Collections.Immutable": "1.1.37", + "System.Reflection.Metadata": "1.1.0" + }, + "compile": { + "lib/net45/Microsoft.CodeAnalysis.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.CodeAnalysis.dll": {} + } + }, + "Microsoft.CodeAnalysis.CSharp/1.1.0-rc1-20151109-01": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[1.1.0-rc1-20151109-01]" + }, + "compile": { + "lib/net45/Microsoft.CodeAnalysis.CSharp.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.CodeAnalysis.CSharp.dll": {} + } + }, + "Microsoft.Dnx.Compilation.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Dnx.Compilation.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Dnx.Compilation.Abstractions.dll": {} + } + }, + "Microsoft.Dnx.Compilation.CSharp.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "1.1.0-rc1-20151109-01", + "Microsoft.Dnx.Compilation.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Dnx.Compilation.CSharp.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Dnx.Compilation.CSharp.Abstractions.dll": {} + } + }, + "Microsoft.Dnx.Compilation.CSharp.Common/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "1.1.0-rc1-20151109-01", + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.IO", + "System.Runtime" + ], + "compile": { + "lib/net451/Microsoft.Dnx.Compilation.CSharp.Common.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Dnx.Compilation.CSharp.Common.dll": {} + } + }, + "Microsoft.Extensions.Caching.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Caching.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Caching.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Caching.Memory/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Caching.Memory.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Caching.Memory.dll": {} + } + }, + "Microsoft.Extensions.CodeGeneration/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.CodeGeneration.Core": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.EntityFramework": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Templating": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.dll": {} + } + }, + "Microsoft.Extensions.CodeGeneration.Core/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Templating": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.Core.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.Core.dll": {} + } + }, + "Microsoft.Extensions.CodeGeneration.EntityFramework/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Core": "7.0.0-rc1-final", + "Microsoft.AspNet.Hosting": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Core": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Templating": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Text.Encoding" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.EntityFramework.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.EntityFramework.dll": {} + } + }, + "Microsoft.Extensions.CodeGeneration.Templating/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Razor": "4.0.0-rc1-final", + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.IO", + "System.Runtime", + "System.Text.Encoding", + "System.Threading.Tasks" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.Templating.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.Templating.dll": {} + } + }, + "Microsoft.Extensions.CodeGenerators.Mvc/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.CodeGeneration": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.EntityFramework": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Templating": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGenerators.Mvc.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGenerators.Mvc.dll": {} + } + }, + "Microsoft.Extensions.Configuration/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.dll": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Configuration.Binder/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.Binder.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.Binder.dll": {} + } + }, + "Microsoft.Extensions.Configuration.CommandLine/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.CommandLine.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.CommandLine.dll": {} + } + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {} + } + }, + "Microsoft.Extensions.Configuration.FileExtensions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.FileExtensions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.FileExtensions.dll": {} + } + }, + "Microsoft.Extensions.Configuration.FileProviderExtensions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Physical": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.FileProviderExtensions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.FileProviderExtensions.dll": {} + } + }, + "Microsoft.Extensions.Configuration.Json/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.Json.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.Json.dll": {} + } + }, + "Microsoft.Extensions.Configuration.UserSecrets/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.UserSecrets.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.UserSecrets.dll": {} + } + }, + "Microsoft.Extensions.DependencyInjection/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.DependencyInjection.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.DependencyInjection.dll": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.FileSystemGlobbing/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.FileSystemGlobbing.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.FileSystemGlobbing.dll": {} + } + }, + "Microsoft.Extensions.Globalization.CultureInfoCache/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Globalization.CultureInfoCache.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Globalization.CultureInfoCache.dll": {} + } + }, + "Microsoft.Extensions.Localization/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Localization.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Localization.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Localization.dll": {} + } + }, + "Microsoft.Extensions.Localization.Abstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Localization.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Localization.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Logging/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections.Concurrent", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.dll": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Logging.Console/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.Console.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.Console.dll": {} + } + }, + "Microsoft.Extensions.Logging.Debug/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.Debug.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.Debug.dll": {} + } + }, + "Microsoft.Extensions.Logging.TraceSource/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections.Concurrent", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.TraceSource.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.TraceSource.dll": {} + } + }, + "Microsoft.Extensions.MemoryPool/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.MemoryPool.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.MemoryPool.dll": {} + } + }, + "Microsoft.Extensions.Options/0.0.1-alpha": { + "type": "package" + }, + "Microsoft.Extensions.OptionsModel/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.OptionsModel.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.OptionsModel.dll": {} + } + }, + "Microsoft.Extensions.PlatformAbstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.PlatformAbstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.PlatformAbstractions.dll": {} + } + }, + "Microsoft.Extensions.Primitives/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Primitives.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Primitives.dll": {} + } + }, + "Microsoft.Extensions.WebEncoders/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.WebEncoders.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.WebEncoders.dll": {} + } + }, + "Microsoft.Extensions.WebEncoders.Core/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.WebEncoders.Core.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.WebEncoders.Core.dll": {} + } + }, + "Microsoft.Framework.Configuration/1.0.0-beta8": { + "type": "package", + "dependencies": { + "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.dll": {} + } + }, + "Microsoft.Framework.Configuration.Abstractions/1.0.0-beta8": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.Abstractions.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.Abstractions.dll": {} + } + }, + "Microsoft.Framework.Configuration.Binder/1.0.0-beta8": { + "type": "package", + "dependencies": { + "Microsoft.Framework.Configuration": "1.0.0-beta8" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.Binder.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.Binder.dll": {} + } + }, + "Microsoft.Framework.Configuration.FileExtensions/1.0.0-beta8": { + "type": "package", + "dependencies": { + "Microsoft.Framework.Configuration": "1.0.0-beta8" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.FileExtensions.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.FileExtensions.dll": {} + } + }, + "Microsoft.Framework.Configuration.Json/1.0.0-beta8": { + "type": "package", + "dependencies": { + "Microsoft.Framework.Configuration": "1.0.0-beta8", + "Microsoft.Framework.Configuration.FileExtensions": "1.0.0-beta8", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Configuration.Json.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Configuration.Json.dll": {} + } + }, + "Microsoft.Framework.ConfigurationModel/1.0.0-beta4": { + "type": "package", + "dependencies": { + "Microsoft.Framework.ConfigurationModel.Interfaces": "1.0.0-beta4", + "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.dll": {} + } + }, + "Microsoft.Framework.ConfigurationModel.Interfaces/1.0.0-beta4": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.dll": {} + } + }, + "Microsoft.Framework.ConfigurationModel.Json/1.0.0-beta4": { + "type": "package", + "dependencies": { + "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.Json.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.ConfigurationModel.Json.dll": {} + } + }, + "Microsoft.Framework.Runtime.Interfaces/1.0.0-beta4": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll": {} + } + }, + "Microsoft.IdentityModel.Logging/1.0.0-rc1-211161024": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.IdentityModel.Logging.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.IdentityModel.Logging.dll": {} + } + }, + "Microsoft.IdentityModel.Protocols/2.0.0-rc1-211161024": { + "type": "package", + "dependencies": { + "System.IdentityModel.Tokens.Jwt": "5.0.0-rc1-211161024" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/net451/Microsoft.IdentityModel.Protocols.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.IdentityModel.Protocols.dll": {} + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/2.0.0-rc1-211161024": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "2.0.0-rc1-211161024" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {} + } + }, + "Microsoft.Net.Http.Headers/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Net.Http.Headers.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Net.Http.Headers.dll": {} + } + }, + "Microsoft.Net.Http.Server/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final", + "Microsoft.Net.WebSockets": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Net.Http.Server.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Net.Http.Server.dll": {} + } + }, + "Microsoft.Net.WebSockets/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Net.WebSockets.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Net.WebSockets.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.0.1-beta-23516": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Targets": "1.0.1-beta-23516" + } + }, + "Microsoft.NETCore.Targets/1.0.1-beta-23516": { + "type": "package" + }, + "Microsoft.Owin/2.1.0": { + "type": "package", + "dependencies": { + "Owin": "1.0.0" + }, + "compile": { + "lib/net45/Microsoft.Owin.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.Owin.dll": {} + } + }, + "Microsoft.Owin.Security/2.1.0": { + "type": "package", + "dependencies": { + "Microsoft.Owin": "2.1.0", + "Owin": "1.0.0" + }, + "compile": { + "lib/net45/Microsoft.Owin.Security.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.Owin.Security.dll": {} + } + }, + "Microsoft.Web.Infrastructure/1.0.0": { + "type": "package", + "compile": { + "lib/net40/Microsoft.Web.Infrastructure.dll": {} + }, + "runtime": { + "lib/net40/Microsoft.Web.Infrastructure.dll": {} + } + }, + "MimeKit/1.3.0-beta7": { + "type": "package", + "frameworkAssemblies": [ + "System", + "System.Core", + "System.Data", + "System.Security" + ], + "compile": { + "lib/net451/BouncyCastle.dll": {}, + "lib/net451/MimeKit.dll": {} + }, + "runtime": { + "lib/net451/BouncyCastle.dll": {}, + "lib/net451/MimeKit.dll": {} + } + }, + "Newtonsoft.Json/7.0.1": { + "type": "package", + "compile": { + "lib/net45/Newtonsoft.Json.dll": {} + }, + "runtime": { + "lib/net45/Newtonsoft.Json.dll": {} + } + }, + "Npgsql/3.1.0-alpha6": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net45/Npgsql.dll": {} + }, + "runtime": { + "lib/net45/Npgsql.dll": {} + } + }, + "Owin/1.0.0": { + "type": "package", + "compile": { + "lib/net40/Owin.dll": {} + }, + "runtime": { + "lib/net40/Owin.dll": {} + } + }, + "PayPalCoreSDK/1.7.1": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "7.0.1" + }, + "compile": { + "lib/net451/PayPalCoreSDK.dll": {} + }, + "runtime": { + "lib/net451/PayPalCoreSDK.dll": {} + } + }, + "PayPalMerchantSDK/2.16.204": { + "type": "package", + "dependencies": { + "PayPalCoreSDK": "1.7.1" + }, + "compile": { + "lib/net20/PayPalMerchantSDK.dll": {} + }, + "runtime": { + "lib/net20/PayPalMerchantSDK.dll": {} + } + }, + "Remotion.Linq/2.0.1": { + "type": "package", + "compile": { + "lib/net45/Remotion.Linq.dll": {} + }, + "runtime": { + "lib/net45/Remotion.Linq.dll": {} + } + }, + "System.Collections/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Diagnostics.DiagnosticSource/4.0.0-beta-23516": { + "type": "package", + "dependencies": { + "System.Diagnostics.Tracing": "4.0.0", + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet5.2/System.Diagnostics.DiagnosticSource.dll": {} + }, + "runtime": { + "lib/dotnet5.2/System.Diagnostics.DiagnosticSource.dll": {} + } + }, + "System.Diagnostics.Tracing/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Globalization/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.IdentityModel.Tokens/5.0.0-rc1-211161024": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "1.0.0-rc1-211161024", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Xml" + ], + "compile": { + "lib/net451/System.IdentityModel.Tokens.dll": {} + }, + "runtime": { + "lib/net451/System.IdentityModel.Tokens.dll": {} + } + }, + "System.IdentityModel.Tokens.Jwt/5.0.0-rc1-211161024": { + "type": "package", + "dependencies": { + "System.IdentityModel.Tokens": "5.0.0-rc1-211161024" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/System.IdentityModel.Tokens.Jwt.dll": {} + }, + "runtime": { + "lib/net451/System.IdentityModel.Tokens.Jwt.dll": {} + } + }, + "System.IO/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Json/4.0.20126.16343": { + "type": "package", + "compile": { + "lib/net40/System.Json.dll": {} + }, + "runtime": { + "lib/net40/System.Json.dll": {} + } + }, + "System.Linq/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Numerics.Vectors/4.1.1-beta-23516": { + "type": "package", + "compile": { + "lib/portable-net45+win8/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/portable-net45+win8/System.Numerics.Vectors.dll": {} + } + }, + "System.Reflection/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Reflection.Metadata/1.1.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet5.2/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet5.2/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Runtime/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Runtime.Extensions/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Runtime.InteropServices/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Text.Encoding/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Text.Encoding.Extensions/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "System.Threading/4.0.0": { + "type": "package", + "compile": { + "ref/net45/_._": {} + }, + "runtime": { + "lib/net45/_._": {} + } + }, + "WebGrease/1.5.2": { + "type": "package", + "dependencies": { + "Antlr": "3.4.1.9004", + "Newtonsoft.Json": "5.0.4" + }, + "compile": { + "lib/WebGrease.dll": {} + }, + "runtime": { + "lib/WebGrease.dll": {} + } + }, + "YavscLib/1.0.0": { + "type": "project", + "framework": ".NETFramework,Version=v4.5.1" + }, + "Zlib.Portable.Signed/1.11.0": { + "type": "package", + "compile": { + "lib/portable-net4+sl5+wp8+win8+wpa81+MonoTouch+MonoAndroid/Zlib.Portable.dll": {} + }, + "runtime": { + "lib/portable-net4+sl5+wp8+win8+wpa81+MonoTouch+MonoAndroid/Zlib.Portable.dll": {} + } + } + }, + "DNX,Version=v4.5.1/debian.8-x64": { + "Antlr/3.4.1.9004": { + "type": "package", + "compile": { + "lib/Antlr3.Runtime.dll": {} + }, + "runtime": { + "lib/Antlr3.Runtime.dll": {} + } + }, + "EntityFramework.Commands/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational.Design": "7.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/EntityFramework.Commands.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework.Commands.dll": {} + } + }, + "EntityFramework.Core/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Ix-Async": "1.2.5", + "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Remotion.Linq": "2.0.1", + "System.Collections.Immutable": "1.1.36" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections", + "System.ComponentModel.DataAnnotations", + "System.Core", + "System.Diagnostics.Debug", + "System.Diagnostics.Tools", + "System.Globalization", + "System.Linq", + "System.Linq.Expressions", + "System.Linq.Queryable", + "System.ObjectModel", + "System.Reflection", + "System.Reflection.Extensions", + "System.Resources.ResourceManager", + "System.Runtime", + "System.Runtime.Extensions", + "System.Threading" + ], + "compile": { + "lib/dnx451/EntityFramework.Core.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework.Core.dll": {} + } + }, + "EntityFramework.MicrosoftSqlServer/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational": "7.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/EntityFramework.MicrosoftSqlServer.dll": {} + }, + "runtime": { + "lib/net451/EntityFramework.MicrosoftSqlServer.dll": {} + } + }, + "EntityFramework.Relational/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Core": "7.0.0-rc1-final", + "System.Diagnostics.DiagnosticSource": "4.0.0-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Data", + "System.Transactions" + ], + "compile": { + "lib/net451/EntityFramework.Relational.dll": {} + }, + "runtime": { + "lib/net451/EntityFramework.Relational.dll": {} + } + }, + "EntityFramework.Relational.Design/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational": "7.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.ComponentModel.DataAnnotations", + "System.Core", + "System.IO", + "System.Text.Encoding", + "System.Threading.Tasks" + ], + "compile": { + "lib/dnx451/EntityFramework.Relational.Design.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework.Relational.Design.dll": {} + } + }, + "EntityFramework7.Npgsql/3.1.0-rc1-3": { + "type": "package", + "dependencies": { + "EntityFramework.Core": "7.0.0-rc1-final", + "EntityFramework.Relational": "7.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Npgsql": "3.1.0-alpha6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections", + "System.Core", + "System.Diagnostics.Contracts", + "System.Linq.Expressions", + "System.Reflection", + "System.Runtime" + ], + "compile": { + "lib/dnx451/EntityFramework7.Npgsql.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework7.Npgsql.dll": {} + } + }, + "EntityFramework7.Npgsql.Design/3.1.0-rc1-5": { + "type": "package", + "dependencies": { + "EntityFramework.Core": "7.0.0-rc1-final", + "EntityFramework.Relational": "7.0.0-rc1-final", + "EntityFramework.Relational.Design": "7.0.0-rc1-final", + "EntityFramework7.Npgsql": "3.1.0-rc1-3", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Npgsql": "3.1.0-alpha6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections", + "System.Core", + "System.Diagnostics.Contracts", + "System.Linq.Expressions", + "System.Reflection", + "System.Runtime" + ], + "compile": { + "lib/dnx451/EntityFramework7.Npgsql.Design.dll": {} + }, + "runtime": { + "lib/dnx451/EntityFramework7.Npgsql.Design.dll": {} + } + }, + "Extensions.AspNet.Authentication.Instagram/1.0.0-t150809211713": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication.OAuth": "1.0.0-beta7-12765" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Extensions.AspNet.Authentication.Instagram.dll": {} + }, + "runtime": { + "lib/dnx451/Extensions.AspNet.Authentication.Instagram.dll": {} + } + }, + "Google.Apis/1.11.1": { + "type": "package", + "dependencies": { + "Google.Apis.Core": "1.11.1", + "log4net": "2.0.3", + "Zlib.Portable.Signed": "1.11.0" + }, + "compile": { + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} + }, + "runtime": { + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} + } + }, + "Google.Apis.Core/1.11.1": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "7.0.1" + }, + "compile": { + "lib/net45/Google.Apis.Core.dll": {} + }, + "runtime": { + "lib/net45/Google.Apis.Core.dll": {} + } + }, + "Ix-Async/1.2.5": { + "type": "package", + "frameworkAssemblies": [ + "System", + "System.Core" + ], + "compile": { + "lib/net45/System.Interactive.Async.dll": {} + }, + "runtime": { + "lib/net45/System.Interactive.Async.dll": {} + } + }, + "jQuery/1.6.4": { + "type": "package" + }, + "log4net/2.0.3": { + "type": "package", + "compile": { + "lib/net40-full/log4net.dll": {} + }, + "runtime": { + "lib/net40-full/log4net.dll": {} + } + }, + "MailKit/1.3.0-beta7": { + "type": "package", + "dependencies": { + "MimeKit": "1.3.0-beta7" + }, + "frameworkAssemblies": [ + "System", + "System.Core", + "System.Data" + ], + "compile": { + "lib/net451/MailKit.dll": {} + }, + "runtime": { + "lib/net451/MailKit.dll": {} + } + }, + "MarkdownDeep-av.NET/1.5.4": { + "type": "package", + "compile": { + "lib/net451/MarkdownDeep.dll": {} + }, + "runtime": { + "lib/net451/MarkdownDeep.dll": {} + } + }, + "Microsoft.AspNet.Antiforgery/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.DataProtection": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.WebUtilities": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Antiforgery.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Antiforgery.dll": {} + } + }, + "Microsoft.AspNet.Authentication/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.DataProtection": "1.0.0-rc1-final", + "Microsoft.AspNet.Http": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.dll": {} + } + }, + "Microsoft.AspNet.Authentication.Cookies/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.Cookies.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.Cookies.dll": {} + } + }, + "Microsoft.AspNet.Authentication.Facebook/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication.OAuth": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.Facebook.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.Facebook.dll": {} + } + }, + "Microsoft.AspNet.Authentication.JwtBearer/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "2.0.0-rc1-211161024" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/dnx451/Microsoft.AspNet.Authentication.JwtBearer.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.AspNet.Authentication.JwtBearer.dll": {} + } + }, + "Microsoft.AspNet.Authentication.OAuth/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.OAuth.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.OAuth.dll": {} + } + }, + "Microsoft.AspNet.Authentication.Twitter/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Net.Http" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authentication.Twitter.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authentication.Twitter.dll": {} + } + }, + "Microsoft.AspNet.Authorization/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Features": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Authorization.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Authorization.dll": {} + } + }, + "Microsoft.AspNet.Cors/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Cors.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Cors.dll": {} + } + }, + "Microsoft.AspNet.Cryptography.Internal/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Cryptography.Internal.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Cryptography.Internal.dll": {} + } + }, + "Microsoft.AspNet.Cryptography.KeyDerivation/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Cryptography.Internal": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Cryptography.KeyDerivation.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Cryptography.KeyDerivation.dll": {} + } + }, + "Microsoft.AspNet.DataProtection/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Cryptography.Internal": "1.0.0-rc1-final", + "Microsoft.AspNet.DataProtection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.IO", + "System.Security", + "System.Xml", + "System.Xml.Linq" + ], + "compile": { + "lib/net451/Microsoft.AspNet.DataProtection.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.DataProtection.dll": {} + } + }, + "Microsoft.AspNet.DataProtection.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.DataProtection.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.DataProtection.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.DataProtection.SystemWeb/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.DataProtection": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Configuration", + "System.Core", + "System.Security", + "System.Web" + ], + "compile": { + "lib/net451/Microsoft.AspNet.DataProtection.SystemWeb.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.DataProtection.SystemWeb.dll": {} + } + }, + "Microsoft.AspNet.Diagnostics/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Diagnostics.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.FileProviders.Physical": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.AspNet.WebUtilities": "1.0.0-rc1-final", + "Microsoft.Dnx.Compilation.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final", + "System.Diagnostics.DiagnosticSource": "4.0.0-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Diagnostics.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Diagnostics.dll": {} + } + }, + "Microsoft.AspNet.Diagnostics.Abstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Diagnostics.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Diagnostics.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Diagnostics.Entity/7.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational": "7.0.0-rc1-final", + "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Configuration", + "System.Core", + "System.Threading.Tasks" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Diagnostics.Entity.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Diagnostics.Entity.dll": {} + } + }, + "Microsoft.AspNet.FileProviders.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.FileProviders.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.FileProviders.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.FileProviders.Physical/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.FileProviders.Physical.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.FileProviders.Physical.dll": {} + } + }, + "Microsoft.AspNet.Hosting/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Physical": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Server.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Http": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Dnx.Compilation.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final", + "System.Diagnostics.DiagnosticSource": "4.0.0-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime" + ], + "compile": { + "lib/dnx451/Microsoft.AspNet.Hosting.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.AspNet.Hosting.dll": {} + } + }, + "Microsoft.AspNet.Hosting.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Hosting.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Hosting.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Hosting.Server.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Features": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Hosting.Server.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Hosting.Server.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Html.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Html.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Html.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Http/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.WebUtilities": "1.0.0-rc1-final", + "Microsoft.Net.Http.Headers": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Http.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Http.dll": {} + } + }, + "Microsoft.AspNet.Http.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Features": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Http.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Http.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Http.Extensions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final", + "Microsoft.Net.Http.Headers": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Http.Extensions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Http.Extensions.dll": {} + } + }, + "Microsoft.AspNet.Http.Features/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Http.Features.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Http.Features.dll": {} + } + }, + "Microsoft.AspNet.Identity/3.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final", + "Microsoft.AspNet.Cryptography.KeyDerivation": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Identity.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Identity.dll": {} + } + }, + "Microsoft.AspNet.Identity.EntityFramework/3.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Relational": "7.0.0-rc1-final", + "Microsoft.AspNet.Identity": "3.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime", + "System.Threading.Tasks" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Identity.EntityFramework.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Identity.EntityFramework.dll": {} + } + }, + "Microsoft.AspNet.IISPlatformHandler/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.IISPlatformHandler.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.IISPlatformHandler.dll": {} + } + }, + "Microsoft.AspNet.JsonPatch/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.JsonPatch.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.JsonPatch.dll": {} + } + }, + "Microsoft.AspNet.Localization/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Globalization.CultureInfoCache": "1.0.0-rc1-final", + "Microsoft.Extensions.Localization.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Localization.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Localization.dll": {} + } + }, + "Microsoft.AspNet.Mvc/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.ApiExplorer": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Cors": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.DataAnnotations": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Formatters.Json": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Localization": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Razor": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.ViewFeatures": "6.0.0-rc1-final", + "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Abstractions/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Routing": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Abstractions.dll": {} + } + }, + "Microsoft.AspNet.Mvc.ApiExplorer/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.ApiExplorer.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.ApiExplorer.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Core/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Authorization": "1.0.0-rc1-final", + "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Abstractions": "6.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.MemoryPool": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final", + "System.Diagnostics.DiagnosticSource": "4.0.0-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Core.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Core.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Cors/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Cors": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Cors.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Cors.dll": {} + } + }, + "Microsoft.AspNet.Mvc.DataAnnotations/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final", + "Microsoft.Extensions.Localization": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.ComponentModel.DataAnnotations", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.DataAnnotations.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.DataAnnotations.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Formatters.Json/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.JsonPatch": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Formatters.Json.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Formatters.Json.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Localization/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Localization": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Razor": "6.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.Localization": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Localization.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Localization.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Razor/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.Razor.Host": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.ViewFeatures": "6.0.0-rc1-final", + "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces": "1.0.0-rc1-final", + "Microsoft.AspNet.Razor.Runtime.Precompilation": "4.0.0-rc1-final", + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final", + "Microsoft.Dnx.Compilation.CSharp.Common": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections", + "System.Core", + "System.IO", + "System.Runtime", + "System.Text.Encoding", + "System.Threading.Tasks" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Razor.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Razor.dll": {} + } + }, + "Microsoft.AspNet.Mvc.Razor.Host/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Physical": "1.0.0-rc1-final", + "Microsoft.AspNet.Razor.Runtime": "4.0.0-rc1-final", + "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.Razor.Host.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.Razor.Host.dll": {} + } + }, + "Microsoft.AspNet.Mvc.TagHelpers/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Mvc.Razor": "6.0.0-rc1-final", + "Microsoft.Extensions.Caching.Memory": "1.0.0-rc1-final", + "Microsoft.Extensions.FileSystemGlobbing": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.TagHelpers.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.TagHelpers.dll": {} + } + }, + "Microsoft.AspNet.Mvc.ViewFeatures/6.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Antiforgery": "1.0.0-rc1-final", + "Microsoft.AspNet.Diagnostics.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Html.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.DataAnnotations": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.Formatters.Json": "6.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Mvc.ViewFeatures.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Mvc.ViewFeatures.dll": {} + } + }, + "Microsoft.AspNet.OWin/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Owin.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Owin.dll": {} + } + }, + "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll": {} + } + }, + "Microsoft.AspNet.Razor/4.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Razor.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Razor.dll": {} + } + }, + "Microsoft.AspNet.Razor.Runtime/4.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Html.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Razor": "4.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Xml", + "System.Xml.Linq" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Razor.Runtime.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Razor.Runtime.dll": {} + } + }, + "Microsoft.AspNet.Razor.Runtime.Precompilation/4.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Razor.Runtime": "4.0.0-rc1-final", + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Runtime" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Razor.Runtime.Precompilation.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Razor.Runtime.Precompilation.dll": {} + } + }, + "Microsoft.AspNet.Routing/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Routing.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Routing.dll": {} + } + }, + "Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Hosting": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "System.Numerics.Vectors": "4.1.1-beta-23516" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.AspNet.Server.Kestrel.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.AspNet.Server.Kestrel.dll": {} + } + }, + "Microsoft.AspNet.Server.WebListener/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Hosting": "1.0.0-rc1-final", + "Microsoft.Net.Http.Headers": "1.0.0-rc1-final", + "Microsoft.Net.Http.Server": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.AspNet.Server.WebListener.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.AspNet.Server.WebListener.dll": {} + } + }, + "Microsoft.AspNet.Session/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Session.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Session.dll": {} + } + }, + "Microsoft.AspNet.SignalR.Core/2.2.1": { + "type": "package", + "dependencies": { + "Microsoft.Owin": "2.1.0", + "Microsoft.Owin.Security": "2.1.0", + "Newtonsoft.Json": "6.0.4", + "Owin": "1.0.0" + }, + "compile": { + "lib/net45/Microsoft.AspNet.SignalR.Core.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.AspNet.SignalR.Core.dll": {} + } + }, + "Microsoft.AspNet.SignalR.JS/2.2.1": { + "type": "package", + "dependencies": { + "jQuery": "1.6.4" + } + }, + "Microsoft.AspNet.StaticFiles/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.StaticFiles.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.StaticFiles.dll": {} + } + }, + "Microsoft.AspNet.Tooling.Razor/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Razor.Runtime": "4.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.Tooling.Razor.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.Tooling.Razor.dll": {} + } + }, + "Microsoft.AspNet.Web.Optimization/1.1.3": { + "type": "package", + "dependencies": { + "Microsoft.Web.Infrastructure": "1.0.0", + "WebGrease": "1.5.2" + }, + "compile": { + "lib/net40/System.Web.Optimization.dll": {} + }, + "runtime": { + "lib/net40/System.Web.Optimization.dll": {} + } + }, + "Microsoft.AspNet.WebSockets.Protocol/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.WebSockets.Protocol.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.WebSockets.Protocol.dll": {} + } + }, + "Microsoft.AspNet.WebSockets.Server/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final", + "Microsoft.AspNet.WebSockets.Protocol": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.WebSockets.Server.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.WebSockets.Server.dll": {} + } + }, + "Microsoft.AspNet.WebUtilities/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final", + "Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.AspNet.WebUtilities.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.AspNet.WebUtilities.dll": {} + } + }, + "Microsoft.CodeAnalysis.Analyzers/1.0.0": { + "type": "package", + "frameworkAssemblies": [ + "System" + ] + }, + "Microsoft.CodeAnalysis.Common/1.1.0-rc1-20151109-01": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "[1.0.0, 1.2.0)", + "System.Collections.Immutable": "1.1.37", + "System.Reflection.Metadata": "1.1.0" + }, + "compile": { + "lib/net45/Microsoft.CodeAnalysis.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.CodeAnalysis.dll": {} + } + }, + "Microsoft.CodeAnalysis.CSharp/1.1.0-rc1-20151109-01": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[1.1.0-rc1-20151109-01]" + }, + "compile": { + "lib/net45/Microsoft.CodeAnalysis.CSharp.dll": {} + }, + "runtime": { + "lib/net45/Microsoft.CodeAnalysis.CSharp.dll": {} + } + }, + "Microsoft.Dnx.Compilation.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Dnx.Compilation.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Dnx.Compilation.Abstractions.dll": {} + } + }, + "Microsoft.Dnx.Compilation.CSharp.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "1.1.0-rc1-20151109-01", + "Microsoft.Dnx.Compilation.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Dnx.Compilation.CSharp.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Dnx.Compilation.CSharp.Abstractions.dll": {} + } + }, + "Microsoft.Dnx.Compilation.CSharp.Common/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "1.1.0-rc1-20151109-01", + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.IO", + "System.Runtime" + ], + "compile": { + "lib/net451/Microsoft.Dnx.Compilation.CSharp.Common.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Dnx.Compilation.CSharp.Common.dll": {} + } + }, + "Microsoft.Extensions.Caching.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Caching.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Caching.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Caching.Memory/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Caching.Memory.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Caching.Memory.dll": {} + } + }, + "Microsoft.Extensions.CodeGeneration/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.CodeGeneration.Core": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.EntityFramework": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Templating": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.dll": {} + } + }, + "Microsoft.Extensions.CodeGeneration.Core/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Templating": "1.0.0-rc1-final", + "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.Core.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.Core.dll": {} + } + }, + "Microsoft.Extensions.CodeGeneration.EntityFramework/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "EntityFramework.Core": "7.0.0-rc1-final", + "Microsoft.AspNet.Hosting": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Core": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Templating": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.Text.Encoding" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.EntityFramework.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.EntityFramework.dll": {} + } + }, + "Microsoft.Extensions.CodeGeneration.Templating/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.Razor": "4.0.0-rc1-final", + "Microsoft.Dnx.Compilation.CSharp.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core", + "System.IO", + "System.Runtime", + "System.Text.Encoding", + "System.Threading.Tasks" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.Templating.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGeneration.Templating.dll": {} + } + }, + "Microsoft.Extensions.CodeGenerators.Mvc/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.CodeGeneration": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.EntityFramework": "1.0.0-rc1-final", + "Microsoft.Extensions.CodeGeneration.Templating": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/dnx451/Microsoft.Extensions.CodeGenerators.Mvc.dll": {} + }, + "runtime": { + "lib/dnx451/Microsoft.Extensions.CodeGenerators.Mvc.dll": {} + } + }, + "Microsoft.Extensions.Configuration/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.dll": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Configuration.Binder/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.Binder.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.Binder.dll": {} + } + }, + "Microsoft.Extensions.Configuration.CommandLine/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.CommandLine.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.CommandLine.dll": {} + } + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {} + } + }, + "Microsoft.Extensions.Configuration.FileExtensions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.FileExtensions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.FileExtensions.dll": {} + } + }, + "Microsoft.Extensions.Configuration.FileProviderExtensions/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNet.FileProviders.Physical": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.FileProviderExtensions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.FileProviderExtensions.dll": {} + } + }, + "Microsoft.Extensions.Configuration.Json/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc1-final", + "Newtonsoft.Json": "6.0.6" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.Json.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.Json.dll": {} + } + }, + "Microsoft.Extensions.Configuration.UserSecrets/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Configuration.UserSecrets.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Configuration.UserSecrets.dll": {} + } + }, + "Microsoft.Extensions.DependencyInjection/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.DependencyInjection.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.DependencyInjection.dll": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.FileSystemGlobbing/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.FileSystemGlobbing.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.FileSystemGlobbing.dll": {} + } + }, + "Microsoft.Extensions.Globalization.CultureInfoCache/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Globalization.CultureInfoCache.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Globalization.CultureInfoCache.dll": {} + } + }, + "Microsoft.Extensions.Localization/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Localization.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Localization.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Localization.dll": {} + } + }, + "Microsoft.Extensions.Localization.Abstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Localization.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Localization.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Logging/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections.Concurrent", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.dll": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/1.0.0-rc1-final": { + "type": "package", + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.Abstractions.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Logging.Console/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", + "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.Console.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.Console.dll": {} + } + }, + "Microsoft.Extensions.Logging.Debug/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.Debug.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.Debug.dll": {} + } + }, + "Microsoft.Extensions.Logging.TraceSource/1.0.0-rc1-final": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final" + }, + "frameworkAssemblies": [ + "Microsoft.CSharp", + "mscorlib", + "System", + "System.Collections.Concurrent", + "System.Core" + ], + "compile": { + "lib/net451/Microsoft.Extensions.Logging.TraceSource.dll": {} + }, + "runtime": { + "lib/net451/Microsoft.Extensions.Logging.TraceSource.dll": {} + } + }, "Microsoft.Extensions.MemoryPool/1.0.0-rc1-final": { "type": "package", "frameworkAssemblies": [ @@ -4431,6 +10166,22 @@ "Microsoft.Extensions.Logging.Debug.nuspec" ] }, + "Microsoft.Extensions.Logging.TraceSource/1.0.0-rc1-final": { + "type": "package", + "serviceable": true, + "sha512": "wIxGpFxTKI+xvh/aVNCUh0tUEq24xmRW/OWpOJrE2c3QrIJJ6vSpvwGJ7cmgvMWK2Ul+HDd9Wxrcd0tUa8rHhg==", + "files": [ + "lib/dotnet5.4/Microsoft.Extensions.Logging.TraceSource.dll", + "lib/dotnet5.4/Microsoft.Extensions.Logging.TraceSource.xml", + "lib/net451/Microsoft.Extensions.Logging.TraceSource.dll", + "lib/net451/Microsoft.Extensions.Logging.TraceSource.xml", + "lib/netcore50/Microsoft.Extensions.Logging.TraceSource.dll", + "lib/netcore50/Microsoft.Extensions.Logging.TraceSource.xml", + "Microsoft.Extensions.Logging.TraceSource.1.0.0-rc1-final.nupkg", + "Microsoft.Extensions.Logging.TraceSource.1.0.0-rc1-final.nupkg.sha512", + "Microsoft.Extensions.Logging.TraceSource.nuspec" + ] + }, "Microsoft.Extensions.MemoryPool/1.0.0-rc1-final": { "type": "package", "sha512": "QaWADlihqf1DDDLqav1v5u7ObNF7qqPpt4CyN7xBwSx0/jhFjtDnFnKswNYgC/kNFJWZ+crF22AR19M3LlQRaQ==", @@ -5801,6 +11552,7 @@ "Microsoft.Extensions.Logging >= 1.0.0-rc1-final", "Microsoft.Extensions.Logging.Console >= 1.0.0-rc1-final", "Microsoft.Extensions.Logging.Debug >= 1.0.0-rc1-final", + "Microsoft.Extensions.Logging.TraceSource >= 1.0.0-rc1-final", "Microsoft.Extensions.DependencyInjection.Abstractions >= 1.0.0-rc1-final", "Microsoft.Extensions.Globalization.CultureInfoCache >= 1.0.0-rc1-final", "Microsoft.Extensions.Localization >= 1.0.0-rc1-final", diff --git a/YavscLib/Workflow/IAccountBalance.cs b/YavscLib/Billing/IAccountBalance.cs similarity index 100% rename from YavscLib/Workflow/IAccountBalance.cs rename to YavscLib/Billing/IAccountBalance.cs diff --git a/Yavsc/Interfaces/Workflow/IEstimate.cs b/YavscLib/Billing/IEstimate.cs similarity index 80% rename from Yavsc/Interfaces/Workflow/IEstimate.cs rename to YavscLib/Billing/IEstimate.cs index 82a10833..d0f89246 100644 --- a/Yavsc/Interfaces/Workflow/IEstimate.cs +++ b/YavscLib/Billing/IEstimate.cs @@ -1,12 +1,10 @@ -namespace Yavsc.Interfaces +namespace YavscLib.Workflow { using System.Collections.Generic; - using Yavsc.Models.Billing; public interface IEstimate { List AttachedFiles { get; set; } List AttachedGraphics { get; } - List Bill { get; set; } string ClientId { get; set; } long? CommandId { get; set; } string CommandType { get; set; } diff --git a/YavscLib/Billing/IcommandLine.cs b/YavscLib/Billing/IcommandLine.cs new file mode 100644 index 00000000..a806f587 --- /dev/null +++ b/YavscLib/Billing/IcommandLine.cs @@ -0,0 +1,13 @@ +namespace YavscLib.Billing +{ + public interface ICommandLine + { + long Id { get; set; } + string Description { get; set; } + + int Count { get; set; } + decimal UnitaryCost { get; set; } + long EstimateId { get; set; } + + } +} \ No newline at end of file diff --git a/YavscLib/project.json b/YavscLib/project.json index 69d4aa48..cfb4413d 100644 --- a/YavscLib/project.json +++ b/YavscLib/project.json @@ -20,6 +20,8 @@ "System.Runtime": "4.0.0", "System.Globalization": "4.0.0", "System.Resources.ResourceManager": "4.0.0", + "System.Collections": "4.0.0", + "System.Collections.Generic": "4.0.0" } } } diff --git a/YavscLib/project.lock.json b/YavscLib/project.lock.json index 5e5bd0e5..79695a3d 100644 --- a/YavscLib/project.lock.json +++ b/YavscLib/project.lock.json @@ -3,18 +3,22 @@ "version": 2, "targets": { ".NETFramework,Version=v4.5.1": {}, - ".NETPortable,Version=v4.5,Profile=Profile111": {} + ".NETPortable,Version=v4.5,Profile=Profile111": {}, + ".NETFramework,Version=v4.5.1/debian.8-x86": {}, + ".NETFramework,Version=v4.5.1/debian.8-x64": {}, + ".NETPortable,Version=v4.5,Profile=Profile111/debian.8-x86": {}, + ".NETPortable,Version=v4.5,Profile=Profile111/debian.8-x64": {} }, "libraries": {}, "projectFileDependencyGroups": { "": [], ".NETFramework,Version=v4.5.1": [], ".NETPortable,Version=v4.5,Profile=Profile111": [ - "System.Globalization >= 4.0.0", - "System.Resources.ResourceManager >= 4.0.0", - "System.Runtime >= 4.0.0" + "fx/System.Runtime >= 4.0.0", + "fx/System.Globalization >= 4.0.0", + "fx/System.Resources.ResourceManager >= 4.0.0", + "fx/System.Collections >= 4.0.0", + "fx/System.Collections.Generic >= 4.0.0" ] - }, - "tools": {}, - "projectFileToolGroups": {} + } } \ No newline at end of file