display the /HairCut/Brush profile
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
40
Yavsc/ViewModels/FrontOffice/PerformerProfileViewModel.cs
Normal file
40
Yavsc/ViewModels/FrontOffice/PerformerProfileViewModel.cs
Normal file
@ -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 
|
||||
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>
|
327
Yavsc/Views/Shared/Yavsc.Models.Haircut.BrusherProfile.cshtml
Normal file
327
Yavsc/Views/Shared/Yavsc.Models.Haircut.BrusherProfile.cshtml
Normal file
@ -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;
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user