display the /HairCut/Brush profile

vnext
Paul Schneider 6 years ago
parent cdc38236e0
commit e85b012184
27 changed files with 516 additions and 364 deletions

@ -5,6 +5,7 @@ using Yavsc.Helpers;
using Yavsc.Models;
using Yavsc.Models.Workflow;
using Yavsc.Services;
using Yavsc.ViewModels.FrontOffice;
namespace Yavsc.ApiControllers
{
@ -12,18 +13,21 @@ namespace Yavsc.ApiControllers
public class FrontOfficeApiController: Controller
{
ApplicationDbContext dbContext;
public FrontOfficeApiController(ApplicationDbContext context)
private IBillingService billing;
public FrontOfficeApiController(ApplicationDbContext context, IBillingService billing)
{
dbContext = context;
this.billing = billing;
}
[HttpGet,Route("profiles/{actCode}")]
IEnumerable<PerformerProfile> Profiles (string actCode)
[HttpGet("profiles/{actCode}")]
IEnumerable<PerformerProfileViewModel> Profiles (string actCode)
{
return dbContext.ListPerformers(actCode);
return dbContext.ListPerformers(billing, actCode);
}
[HttpPost,Route("query/reject")]
[HttpPost("query/reject")]
public IActionResult RejectQuery (string billingCode, long queryId)
{
if (billingCode==null) return HttpBadRequest("billingCode");

@ -9,15 +9,19 @@ namespace Yavsc.Controllers
{
using Models;
using Yavsc.Helpers;
using Yavsc.Services;
[Produces("application/json")]
[Route("api/performers")]
public class PerformersApiController : Controller
{
ApplicationDbContext dbContext;
public PerformersApiController(ApplicationDbContext context)
private IBillingService billing;
public PerformersApiController(ApplicationDbContext context, IBillingService billing)
{
dbContext = context;
this.billing = billing;
}
/// <summary>
@ -56,7 +60,7 @@ namespace Yavsc.Controllers
[HttpGet("doing/{id}"),AllowAnonymous]
public IActionResult ListPerformers(string id)
{
return Ok(dbContext.ListPerformers(id));
return Ok(dbContext.ListPerformers(billing, id));
}
}
}

@ -0,0 +1 @@
{"access_token":"ya29.GmnbBd3zsDsLPjI-ZkGhHLRiXI14NeNx7CJ5_XMlzu_1qOaLsrL-m3VWbKopO19yrnwK9z8CA6tv2QNxR3dkAU3Fsb29j6vcPsX3R7VNElHLCiwBF4w9jeNsA7fgw-0ydDjc3X78Oh_xlfM","token_type":"Bearer","expires_in":3600,"Issued":"2018-06-15T11:18:16.208+02:00","IssuedUtc":"2018-06-15T11:18:16.208+02:00"}

@ -0,0 +1 @@
{"access_token":"ya29.GmnbBfcZapScUHU2T2Bb2c8t5D4uUbsfrFRXxe05zYQTG22BmnHjeU33QeqJFSPxo8H5fk0EuN2YrhwZxa0FRjkdhOHOTtCwqUubfdN5tfIpXci3PKBBe9kAEI5LlLDxRMprak03VCyDwfg","token_type":"Bearer","expires_in":3599,"Issued":"2018-06-15T15:05:41.809+02:00","IssuedUtc":"2018-06-15T15:05:41.809+02:00"}

@ -125,7 +125,7 @@ namespace Yavsc.Controllers
};
model.HaveProfessionalSettings = _dbContext.Performers.Any(x => x.PerformerId == user.Id);
var usrActs = _dbContext.UserActivities.Include(a=>a.Does).Where(a=> a.UserId == user.Id).ToArray();
// TODO remember me who this magical a.Settings is built
var usrActToSet = usrActs.Where( a => ( a.Settings == null && a.Does.SettingsClassName != null )).ToArray();
model.HaveActivityToConfigure = usrActToSet .Count()>0;
model.Activity = _dbContext.UserActivities.Include(a=>a.Does).Where(u=>u.UserId == user.Id).ToList();

@ -68,7 +68,6 @@ namespace Yavsc.Controllers
Settings = settings,
NeedsSettings = hasConfigurableSettings
};
logger.LogInformation(JsonConvert.SerializeObject(gift.Settings));
return View (gift);
}

@ -24,8 +24,11 @@ namespace Yavsc.Controllers
ILogger _logger;
IStringLocalizer _SR;
private IBillingService _billing;
public FrontOfficeController(ApplicationDbContext context,
UserManager<ApplicationUser> userManager,
IBillingService billing,
ILoggerFactory loggerFactory,
IStringLocalizer<Yavsc.Resources.YavscLocalisation> SR)
{
@ -33,6 +36,7 @@ namespace Yavsc.Controllers
_userManager = userManager;
_logger = loggerFactory.CreateLogger<FrontOfficeController>();
_SR = SR;
_billing = billing;
}
public ActionResult Index()
{
@ -61,7 +65,7 @@ namespace Yavsc.Controllers
throw new NotImplementedException("No Activity code");
}
ViewBag.Activity = _context.Activities.FirstOrDefault(a => a.Code == id);
var result = _context.ListPerformers(id);
var result = _context.ListPerformers(_billing, id);
return View(result);
}
[AllowAnonymous]
@ -72,7 +76,7 @@ namespace Yavsc.Controllers
throw new NotImplementedException("No Activity code");
}
ViewBag.Activity = _context.Activities.FirstOrDefault(a => a.Code == id);
var result = _context.ListPerformers(id);
var result = _context.ListPerformers(_billing, id);
return View(result);
}

@ -7,16 +7,32 @@ namespace Yavsc.Helpers
using Microsoft.Data.Entity;
using Models.Workflow;
using Yavsc.Models;
using Yavsc.Services;
using Yavsc.ViewModels.FrontOffice;
public static class WorkflowHelpers
{
public static List<PerformerProfile> ListPerformers(this ApplicationDbContext context, string actCode)
public static List<PerformerProfileViewModel> ListPerformers(this ApplicationDbContext context,
IBillingService billing,
string actCode)
{
return context.Performers
var settings = billing.GetPerformersSettingsAsync(actCode).Result?.ToArray();
var actors = context.Performers
.Include(p=>p.Activity)
.Include(p=>p.Performer)
.Include(p=>p.Performer.Posts)
.Include(p=>p.Performer.Devices)
.Where(p => p.Active && p.Activity.Any(u=>u.DoesCode==actCode)).OrderBy( x => x.Rate ).ToList();
.Where(p => p.Active && p.Activity.Any(u=>u.DoesCode==actCode)).OrderBy( x => x.Rate )
.ToArray();
List<PerformerProfileViewModel> result = new List<PerformerProfileViewModel> ();
foreach (var perfer in actors)
{
var view = new PerformerProfileViewModel(perfer, actCode, settings?.FirstOrDefault(s => s.UserId == perfer.PerformerId));
result.Add(view);
}
return result;
}
}

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<!--
route name for the api controller used to tag the 'BlogPost' entity
-->
<data name="PerformerId"><value>Identifiant prestataire</value></data>
</root>

@ -45,17 +45,12 @@ namespace Yavsc.Services
public async Task<IQueryable<ISpecializationSettings>> GetPerformersSettingsAsync(string activityCode)
{
logger.LogDebug("searching for "+activityCode);
var activity = await DbContext.Activities.SingleAsync(a=>a.Code == activityCode);
logger.LogDebug(JsonConvert.SerializeObject(activity));
if (activity.SettingsClassName==null) return null;
var dbSetPropInfo = UserSettings.SingleOrDefault(s => s.PropertyType.GenericTypeArguments[0].FullName == activity.SettingsClassName);
if (dbSetPropInfo == null) return null;
// var settingType = dbSetPropInfo.PropertyType;
// var dbSetType = typeof(DbSet<>).MakeGenericType(new Type[] { settingType } );
// avec une info method Remove et Update, ça le ferait ...
return (IQueryable<ISpecializationSettings>) dbSetPropInfo.GetValue(DbContext);
}

@ -0,0 +1,40 @@
using System;
using System.Linq;
using Yavsc.Models;
using Yavsc.Models.Workflow;
namespace Yavsc.ViewModels.FrontOffice
{
public class PerformerProfileViewModel
{
public string UserName { get; set; }
public string PerformerId { get; set; }
public bool Active { get; set; }
public bool AcceptNotifications { get; set; }
public bool AcceptPublicContact { get; set; }
public UserActivity Context { get; set; }
public object Settings { get; set; }
public UserActivity[] Extra { get; set; }
public string WebSite { get; set; }
public string SettingsClassName { get; set; }
public PerformerProfileViewModel(PerformerProfile profile, string activityCode, object settings)
{
UserName = profile.Performer.UserName;
PerformerId = profile.PerformerId;
Active = profile.Active;
AcceptNotifications = profile.AcceptNotifications;
AcceptPublicContact = profile.AcceptPublicContact;
Context = profile.Activity.FirstOrDefault(a => a.DoesCode == activityCode);
SettingsClassName = Context.Does.SettingsClassName;
Settings = settings;
WebSite = profile.WebSite;
Extra = profile.Activity.Where(a => a.DoesCode != activityCode).ToArray();
}
}
}

@ -9,332 +9,8 @@
<hr />
@if (Model!=null) {
<fieldset>
<legend>Disponibilités</legend>
@Html.DisplayFor(model => model)
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.Schedule)
</dt>
<dd>
@Html.DisplayFor(model => model.Schedule)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ActionDistance)
</dt>
<dd>
@Html.DisplayFor(model => model.ActionDistance)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs divers</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ShampooPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShampooPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.CarePrice)
</dt>
<dd>
@Html.DisplayFor(model => model.CarePrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.FlatFeeDiscount)
</dt>
<dd>
@Html.DisplayFor(model => model.FlatFeeDiscount)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs balayages</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongBalayagePrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongBalayagePrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfBalayagePrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfBalayagePrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortBalayagePrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortBalayagePrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs défrisage</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.HalfDefrisPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfDefrisPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.LongDefrisPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongDefrisPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortDefrisPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortDefrisPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs mèches</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.HalfMechPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfMechPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.LongMechPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongMechPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortMechPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortMechPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs coupes</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.WomenHalfCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.WomenHalfCutPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.WomenLongCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.WomenLongCutPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.WomenShortCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.WomenShortCutPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ManCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ManCutPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.KidCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.KidCutPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs couleurs</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongColorPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfColorPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortColorPrice)
</dd>
</dl>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ShortMultiColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortMultiColorPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfMultiColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfMultiColorPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.LongMultiColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongMultiColorPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs burshing</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongBrushingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongBrushingPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfBrushingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfBrushingPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortBrushingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortBrushingPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs permanentes</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongPermanentPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongPermanentPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfPermanentPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfPermanentPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortPermanentPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortPermanentPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs mise en plis</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongFoldingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongFoldingPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfFoldingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfFoldingPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortFoldingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortFoldingPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Spécialités homme</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ManBrushPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ManBrushPrice)
</dd>
</dl>
</fieldset>
<p>
<a asp-action="Edit" >@SR["Edit"]</a>
<a asp-action="Delete" asp-route-id="@Model.UserId">@SR["Delete"]</a>

@ -1,4 +1,4 @@
@model IEnumerable<PerformerProfile>
@model IEnumerable<Yavsc.ViewModels.FrontOffice.PerformerProfileViewModel>
@{
ViewData["Title"] = (ViewBag.Activity?.Name ?? SR["Any"]) ;
@ -11,9 +11,9 @@
@Html.DisplayFor(m=>profile)
<a asp-controller="HairCutCommand" asp-action="HairCut"
asp-route-activityCode="@ViewBag.Activity.Code"
asp-route-performerId="@profile.Performer.Id"
asp-route-performerId="@profile.PerformerId"
class="btn btn-success">
@SR["Proposer un rendez-vous à"] @profile.Performer.UserName
@SR["Proposer un rendez-vous à"] @profile.UserName
</a>
}

@ -1,4 +1,4 @@
@model IEnumerable<PerformerProfile>
@model IEnumerable<PerformerProfileViewModel>
@{
ViewData["Title"] = (ViewBag.Activity?.Name ?? SR["Any"]) ;
@ -11,7 +11,7 @@
@Html.DisplayFor(m=>profile)
<a class="btn btn-success" asp-controller="Command" asp-action="Create" asp-route-proId="@profile.PerformerId"
asp-route-billingCode="Profiles" asp-route-activityCode="@ViewBag.Activity.Code" >
@SR["Proposer un rendez-vous à"] @profile.Performer.UserName
@SR["Proposer un rendez-vous à"] @profile.UserName
</a>
}

@ -140,10 +140,10 @@ Vous êtes sur le site de commande en coiffure à domicile de Soraya Boudjouraf,
un as de la coiffure, qui oeuvre en région parisienne.
En validant un formulaire de commande ici, c'est à elle que vous notifiez votre demande.
Laissez lui votre numéro de téléphone, et des détails sur votre demande lors de votre premier contact,
elle vous rappelera si besoin.
</markdown>
Vous pouvez ![lui laisser votre numéro de téléphone](/HairCutCommand/HairCut?activityCode=Brush&performerId=1bd841ab-c305-4971-940d-7ddca818310c)
et/ou des détails sur votre demande,
elle vous rappelera.</markdown>
</environment>
<environment names="Development">

@ -1,5 +1,5 @@
@model ShortUserInfo
<div style="display: inline-block;">
<img src="@Model.Avatar" alt="@Model.UserName" class="smalltofhol" />
<img src="@Model.Avatar" class="smalltofhol" />
@Model.UserName
</div>

@ -0,0 +1,15 @@
@model Yavsc.ViewModels.FrontOffice.PerformerProfileViewModel
<div class="performer @(Model.Active?"active":"inactive")">
@Html.DisplayFor(m=>m.UserName)
@{ await Html.RenderPartialAsync(Model.SettingsClassName,Model.Settings); }
@if (Model.WebSite!=null) {
<a target="yaext" href="@Model.WebSite" class="btn btn-info">@SR["WebSite"]: @Model.WebSite</a>
}
<environment names="Development">
@Html.Raw(JsonConvert.SerializeObject(Model.Context.Settings))
</environment>
</div>

@ -0,0 +1,327 @@
@model Yavsc.Models.Haircut.BrusherProfile
<fieldset>
<legend>Disponibilités</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.Schedule)
</dt>
<dd>
@Html.DisplayFor(model => model.Schedule)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ActionDistance)
</dt>
<dd>
@Html.DisplayFor(model => model.ActionDistance)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs divers</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ShampooPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShampooPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.CarePrice)
</dt>
<dd>
@Html.DisplayFor(model => model.CarePrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.FlatFeeDiscount)
</dt>
<dd>
@Html.DisplayFor(model => model.FlatFeeDiscount)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs balayages</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongBalayagePrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongBalayagePrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfBalayagePrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfBalayagePrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortBalayagePrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortBalayagePrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs défrisage</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.HalfDefrisPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfDefrisPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.LongDefrisPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongDefrisPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortDefrisPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortDefrisPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs mèches</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.HalfMechPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfMechPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.LongMechPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongMechPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortMechPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortMechPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs coupes</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.WomenHalfCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.WomenHalfCutPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.WomenLongCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.WomenLongCutPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.WomenShortCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.WomenShortCutPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ManCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ManCutPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.KidCutPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.KidCutPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs couleurs</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongColorPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfColorPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortColorPrice)
</dd>
</dl>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ShortMultiColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortMultiColorPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfMultiColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfMultiColorPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.LongMultiColorPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongMultiColorPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs burshing</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongBrushingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongBrushingPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfBrushingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfBrushingPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortBrushingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortBrushingPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs permanentes</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongPermanentPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongPermanentPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfPermanentPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfPermanentPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortPermanentPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortPermanentPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Tarifs mise en plis</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.LongFoldingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.LongFoldingPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HalfFoldingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.HalfFoldingPrice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ShortFoldingPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ShortFoldingPrice)
</dd>
</dl>
</fieldset>
<fieldset>
<legend>Spécialités homme</legend>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ManBrushPrice)
</dt>
<dd>
@Html.DisplayFor(model => model.ManBrushPrice)
</dd>
</dl>
</fieldset>

@ -1,10 +1,14 @@
@using Microsoft.AspNet.Authorization;
@using Microsoft.AspNet.Hosting;
@using Microsoft.AspNet.Identity;
@using Microsoft.AspNet.Mvc;
@using Microsoft.Extensions.Localization;
@using Microsoft.AspNet.Mvc.Localization;
@using Microsoft.AspNet.Authorization;
@using Microsoft.Extensions.Localization;
@using Microsoft.Extensions.OptionsModel;
@using Microsoft.Extensions.PlatformAbstractions;
@using Newtonsoft.Json;
@using System.Security.Claims;
@using System.Web.Optimization;
@using Yavsc;
@ -12,6 +16,7 @@
@using Yavsc.Models;
@using Yavsc.Models.Access;
@using Yavsc.Models.Auth;
@using Yavsc.Models.Google;
@using Yavsc.Models.Messaging;
@using Yavsc.Models.Musical;
@ -19,26 +24,26 @@
@using Yavsc.Models.Market;
@using Yavsc.Models.Billing;
@using Yavsc.Models.Workflow;
@using Yavsc.Models.Relationship
@using Yavsc.Models.Relationship;
@using Yavsc.Models.Drawing;
@using Yavsc.Models.Haircut;
@using Yavsc.Models.Payment;
@using Yavsc.Models.Calendar;
@using Yavsc.Models.Google.Calendar
@using Yavsc.Models.Google.Calendar;
@using Yavsc.Billing;
@using Yavsc.Models.Blog;
@using Yavsc.ViewModels;
@using Yavsc.ViewModels.Account;
@using Yavsc.ViewModels.Blogspot;
@using Yavsc.ViewModels.Administration;
@using Yavsc.ViewModels.Auth;
@using Yavsc.ViewModels.Manage;
@using Yavsc.ViewModels.Calendar;
@using Yavsc.ViewModels.Auth;
@using Yavsc.ViewModels.Administration;
@using Yavsc.ViewModels.FrontOffice;
@using Yavsc.ViewModels.Relationship;
@using Yavsc.ViewModels.Workflow;
@using Yavsc.ViewModels.Blogspot;
@using Microsoft.AspNet.Hosting;
@using Microsoft.Extensions.PlatformAbstractions;
@using PayPal.PayPalAPIInterfaceService.Model;

Binary file not shown.
Loading…