minChz.|<_|

vnext
Paul Schneider 7 years ago
parent 715eec6ade
commit 1efd8bc36d
30 changed files with 3182 additions and 95 deletions

Binary file not shown.

Binary file not shown.

@ -5,12 +5,11 @@ using System.ServiceProcess;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Hosting.Internal;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Framework.Configuration;
using Microsoft.Framework.ConfigurationModel;
using Yavsc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNet.Hosting.Internal;
public class Program : ServiceBase
{
@ -32,24 +31,6 @@ public class Program : ServiceBase
// public static void Main(string[] args) => Console.WriteLine("Hello World!");
public void OldMain(string[] args)
{
Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment iappenv;
IHostingEnvironment env = new Microsoft.AspNet.Hosting.HostingEnvironment();
iappenv = null;// new HostingEnvironmentExtensions();
Console.WriteLine("HW");
_log.WriteEntry("Test from MyDnxService.", EventLogEntryType.Information, 1);
#if DEBUG
OnStart(null);
#else
Run(this);
#endif
}
protected override void OnStart(string[] args)
{
@ -61,7 +42,7 @@ public class Program : ServiceBase
var configBuilder = new ConfigurationBuilder();
configBuilder.AddInMemoryCollection();
configBuilder.SetBasePath("../Yavsc/");
configBuilder.AddJsonFile("../Yavsc/project.json");
configBuilder.AddJsonFile("../Yavsc/appsettings.Development.json");
var config = configBuilder.Build();
var builder = new WebHostBuilder();

@ -42,6 +42,7 @@ namespace YaDaemon
using (var prog = new YaDaemon()) {
try {
await prog.StartAsync(args);
prog.MainLoop(args);
} catch (Exception ex)
{

@ -3,8 +3,7 @@
"description": "MyDnxService Console Application",
"dependencies": {
"Yavsc": {
"type": "build",
"version": "1.0.0"
"type": "build"
}
},
"frameworks": {

@ -2889,7 +2889,7 @@
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"PayPalMerchant-net451": "2.7.109",
"System.Json": "4.0.20126.16343",
"Yavsc.Abstract": "1.0.0"
"Yavsc.Abstract": null
},
"frameworkAssemblies": [
"System",
@ -2898,14 +2898,15 @@
"System.Xml"
]
},
"Yavsc.Abstract/1.0.0": {
"Yavsc.Abstract/1.0.5": {
"type": "project",
"framework": ".NETFramework,Version=v4.5.1",
"dependencies": {
"Newtonsoft.Json": "10.0.2"
},
"frameworkAssemblies": [
"System.ComponentModel.DataAnnotations"
"System.ComponentModel.DataAnnotations",
"System.Json"
]
}
},
@ -5796,7 +5797,7 @@
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"PayPalMerchant-net451": "2.7.109",
"System.Json": "4.0.20126.16343",
"Yavsc.Abstract": "1.0.0"
"Yavsc.Abstract": null
},
"frameworkAssemblies": [
"System",
@ -5805,14 +5806,15 @@
"System.Xml"
]
},
"Yavsc.Abstract/1.0.0": {
"Yavsc.Abstract/1.0.5": {
"type": "project",
"framework": ".NETFramework,Version=v4.5.1",
"dependencies": {
"Newtonsoft.Json": "10.0.2"
},
"frameworkAssemblies": [
"System.ComponentModel.DataAnnotations"
"System.ComponentModel.DataAnnotations",
"System.Json"
]
}
},
@ -8703,7 +8705,7 @@
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"PayPalMerchant-net451": "2.7.109",
"System.Json": "4.0.20126.16343",
"Yavsc.Abstract": "1.0.0"
"Yavsc.Abstract": null
},
"frameworkAssemblies": [
"System",
@ -8712,14 +8714,15 @@
"System.Xml"
]
},
"Yavsc.Abstract/1.0.0": {
"Yavsc.Abstract/1.0.5": {
"type": "project",
"framework": ".NETFramework,Version=v4.5.1",
"dependencies": {
"Newtonsoft.Json": "10.0.2"
},
"frameworkAssemblies": [
"System.ComponentModel.DataAnnotations"
"System.ComponentModel.DataAnnotations",
"System.Json"
]
}
}
@ -8729,7 +8732,7 @@
"type": "project",
"path": "../Yavsc/project.json"
},
"Yavsc.Abstract/1.0.0": {
"Yavsc.Abstract/1.0.5": {
"type": "project",
"path": "../Yavsc.Abstract/project.json"
},
@ -11713,7 +11716,7 @@
},
"projectFileDependencyGroups": {
"": [
"Yavsc >= 1.0.0"
"Yavsc "
],
"DNX,Version=v4.5.1": [
"fx/System.ServiceProcess >= 4.0.0"

@ -4,7 +4,6 @@ using System.Collections.Generic;
namespace Yavsc.Billing
{
public interface IBillable {
string BillingCode { get; set; }
string GetDescription ();
List<IBillItem> GetBillItems();
long Id { get; set; }

@ -1,5 +1,5 @@
CONFIG=Release
VERSION=1.0.5-rc6
VERSION=1.0.5-rc7
PRJNAME=Yavsc.Abstract
PKGFILENAME=$(PRJNAME).$(VERSION).nupkg
DESTPATH=.

@ -0,0 +1,10 @@
using System;
namespace Yavsc.Abstract.Workflow
{
public interface INominativeQuery: IQuery
{
bool Rejected { get; set; }
DateTime RejectedAt { get; set; }
}
}

@ -1,4 +1,4 @@
namespace Yavsc.Workflow
namespace Yavsc.Abstract.Workflow
{
using Yavsc;
using Yavsc.Billing;

@ -13,6 +13,7 @@ namespace Yavsc.Controllers
using Yavsc.Models.Messaging;
using Yavsc.Models;
using Yavsc.Models.Workflow;
using Yavsc.Models.Billing;
[Produces("application/json")]
[Route("api/bookquery"), Authorize(Roles = "Performer,Administrator")]
@ -54,7 +55,7 @@ namespace Yavsc.Controllers
Previsional = c.Previsional,
Reason = c.Reason,
ActivityCode = c.ActivityCode,
BillingCode = c.BillingCode
BillingCode = BillingCodes.Rdv
}).
OrderBy(c=>c.Id).
Take(25);

@ -195,7 +195,7 @@ namespace Yavsc.Controllers
return Ok(estimate);
}
protected override void Dispose (bool disposing)
{
if (disposing)

@ -1,8 +1,12 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNet.Mvc;
using Yavsc.Abstract.Workflow;
using Yavsc.Helpers;
using Yavsc.Models;
using Yavsc.Models.Workflow;
using Yavsc.Workflow;
namespace Yavsc.ApiControllers
{
@ -20,5 +24,18 @@ namespace Yavsc.ApiControllers
{
return dbContext.ListPerformers(actCode);
}
[HttpPost,Route("query/reject")]
public IActionResult RejectQuery (string billingCode, long queryId)
{
if (billingCode==null) return HttpBadRequest("billingCode");
if (queryId==0) return HttpBadRequest("queryId");
var billing = Startup.GetBillable(dbContext, billingCode, queryId);
if (billing==null) return HttpBadRequest();
billing.Rejected = true;
billing.RejectedAt = DateTime.Now;
dbContext.SaveChanges();
return Ok();
}
}
}

@ -70,7 +70,7 @@ namespace Yavsc.Controllers
}
// GET: Command/Details/5
public virtual async Task<IActionResult> RdvDetails(long id)
public virtual async Task<IActionResult> Details(long id)
{
RdvQuery command = await _context.RdvQueries
.Include(x => x.Location)
@ -84,18 +84,18 @@ namespace Yavsc.Controllers
return View(command);
}
[Authorize]
/// <summary>
/// Gives a view on
/// Creating a command for a specified performer
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public IActionResult Create(string id, string activityCode, string billingCode)
[HttpGet]
public IActionResult Create(string proId, string activityCode, string billingCode)
{
if (string.IsNullOrWhiteSpace(id))
if (string.IsNullOrWhiteSpace(proId))
throw new InvalidOperationException(
"This method needs a performer id"
"This method needs a performer id (from parameter proId)"
);
if (string.IsNullOrWhiteSpace(activityCode))
throw new InvalidOperationException(
@ -103,7 +103,7 @@ namespace Yavsc.Controllers
);
var pro = _context.Performers.Include(
x => x.Performer).FirstOrDefault(
x => x.PerformerId == id
x => x.PerformerId == proId
);
if (pro == null)
return HttpNotFound();
@ -111,19 +111,18 @@ namespace Yavsc.Controllers
ViewBag.GoogleSettings = _googleSettings;
var userid = User.GetUserId();
var user = _userManager.FindByIdAsync(userid).Result;
return View(new RdvQuery(activityCode,new Location(),DateTime.Now.AddHours(4))
return View("Create",new RdvQuery(activityCode,new Location(),DateTime.Now.AddHours(4))
{
PerformerProfile = pro,
PerformerId = pro.PerformerId,
ClientId = userid,
Client = user,
ActivityCode = activityCode,
BillingCode = billingCode
ActivityCode = activityCode
});
}
// POST: Command/Create
[HttpPost, Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(RdvQuery command)
{

@ -45,6 +45,7 @@ namespace Yavsc.Controllers
this.payPalSettings = payPalSettings.Value;
}
PayPalSettings payPalSettings;
private async Task<HairCutQuery> GetQuery(long id)
{
var query = await _context.HairCutQueries

@ -6,6 +6,7 @@ namespace Yavsc.Helpers
using Models.Messaging;
using Yavsc.Models.Haircut;
using Yavsc.Models;
using Yavsc.Models.Billing;
public static class EventHelpers
{
@ -25,7 +26,7 @@ namespace Yavsc.Helpers
Location = query.Location,
Id = query.Id,
ActivityCode = query.ActivityCode,
BillingCode = query.BillingCode
BillingCode = BillingCodes.Rdv
};
return yaev;
@ -42,7 +43,8 @@ namespace Yavsc.Helpers
var yaev = query.CreateEvent("NewHairCutQuery",
string.Format(Startup.GlobalLocalizer["HairCutQueryValidation"],query.Client.UserName),
$"{query.Client.UserName}") ;
$"{query.Client.Id}");
return yaev;
}
@ -67,7 +69,7 @@ namespace Yavsc.Helpers
Id = query.Id,
Reason = "Commande groupée!",
ActivityCode = query.ActivityCode,
BillingCode = query.BillingCode
BillingCode = BillingCodes.MBrush
};
return yaev;
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,805 @@
using System;
using System.Collections.Generic;
using Microsoft.Data.Entity.Migrations;
namespace Yavsc.Migrations
{
public partial class rejectQuery : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId", table: "AspNetRoleClaims");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId", table: "AspNetUserClaims");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId", table: "AspNetUserLogins");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_IdentityRole_RoleId", table: "AspNetUserRoles");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_ApplicationUser_UserId", table: "AspNetUserRoles");
migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed");
migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_BlogPost_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_BlogTag_BlogPost_PostId", table: "BlogTag");
migrationBuilder.DropForeignKey(name: "FK_BlogTag_Tag_TagId", table: "BlogTag");
migrationBuilder.DropForeignKey(name: "FK_Comment_ApplicationUser_AuthorId", table: "Comment");
migrationBuilder.DropForeignKey(name: "FK_Comment_BlogPost_PostId", table: "Comment");
migrationBuilder.DropForeignKey(name: "FK_Schedule_ApplicationUser_OwnerId", table: "Schedule");
migrationBuilder.DropForeignKey(name: "FK_ChatConnection_ApplicationUser_ApplicationUserId", table: "ChatConnection");
migrationBuilder.DropForeignKey(name: "FK_BrusherProfile_PerformerProfile_UserId", table: "BrusherProfile");
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_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_HairPrestationCollectionItem_HairPrestation_PrestationId", table: "HairPrestationCollectionItem");
migrationBuilder.DropForeignKey(name: "FK_HairPrestationCollectionItem_HairMultiCutQuery_QueryId", table: "HairPrestationCollectionItem");
migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint");
migrationBuilder.DropForeignKey(name: "FK_HairTaintInstance_HairPrestation_PrestationId", table: "HairTaintInstance");
migrationBuilder.DropForeignKey(name: "FK_HairTaintInstance_HairTaint_TaintId", table: "HairTaintInstance");
migrationBuilder.DropForeignKey(name: "FK_ClientProviderInfo_Location_BillingAddressId", table: "ClientProviderInfo");
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_PayPalPayment_ApplicationUser_ExecutorId", table: "PayPalPayment");
migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember");
migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember");
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<bool>(
name: "Rejected",
table: "RdvQuery",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<DateTime>(
name: "RejectedAt",
table: "RdvQuery",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
migrationBuilder.AlterColumn<long>(
name: "BillingAddressId",
table: "ClientProviderInfo",
nullable: false);
migrationBuilder.AlterColumn<byte>(
name: "For",
table: "Announce",
nullable: false);
migrationBuilder.AddColumn<bool>(
name: "Rejected",
table: "HairMultiCutQuery",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<DateTime>(
name: "RejectedAt",
table: "HairMultiCutQuery",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
migrationBuilder.AddColumn<bool>(
name: "Rejected",
table: "HairCutQuery",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<DateTime>(
name: "RejectedAt",
table: "HairCutQuery",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
migrationBuilder.AlterColumn<string>(
name: "OwnerId",
table: "Estimate",
nullable: true);
migrationBuilder.AddForeignKey(
name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId",
table: "AspNetRoleClaims",
column: "RoleId",
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId",
table: "AspNetUserClaims",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId",
table: "AspNetUserLogins",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserRole<string>_IdentityRole_RoleId",
table: "AspNetUserRoles",
column: "RoleId",
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserRole<string>_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_BlogPost_BlogPostId",
table: "CircleAuthorizationToBlogPost",
column: "BlogPostId",
principalTable: "BlogPost",
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_BlogTag_BlogPost_PostId",
table: "BlogTag",
column: "PostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_BlogTag_Tag_TagId",
table: "BlogTag",
column: "TagId",
principalTable: "Tag",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Comment_ApplicationUser_AuthorId",
table: "Comment",
column: "AuthorId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Comment_BlogPost_PostId",
table: "Comment",
column: "PostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Schedule_ApplicationUser_OwnerId",
table: "Schedule",
column: "OwnerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_ChatConnection_ApplicationUser_ApplicationUserId",
table: "ChatConnection",
column: "ApplicationUserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_BrusherProfile_PerformerProfile_UserId",
table: "BrusherProfile",
column: "UserId",
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_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_HairPrestationCollectionItem_HairPrestation_PrestationId",
table: "HairPrestationCollectionItem",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairPrestationCollectionItem_HairMultiCutQuery_QueryId",
table: "HairPrestationCollectionItem",
column: "QueryId",
principalTable: "HairMultiCutQuery",
principalColumn: "Id",
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_HairTaintInstance_HairPrestation_PrestationId",
table: "HairTaintInstance",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairTaintInstance_HairTaint_TaintId",
table: "HairTaintInstance",
column: "TaintId",
principalTable: "HairTaint",
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_PayPalPayment_ApplicationUser_ExecutorId",
table: "PayPalPayment",
column: "ExecutorId",
principalTable: "AspNetUsers",
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_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<string>_IdentityRole_RoleId", table: "AspNetRoleClaims");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId", table: "AspNetUserClaims");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId", table: "AspNetUserLogins");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_IdentityRole_RoleId", table: "AspNetUserRoles");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_ApplicationUser_UserId", table: "AspNetUserRoles");
migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed");
migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_BlogPost_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_BlogTag_BlogPost_PostId", table: "BlogTag");
migrationBuilder.DropForeignKey(name: "FK_BlogTag_Tag_TagId", table: "BlogTag");
migrationBuilder.DropForeignKey(name: "FK_Comment_ApplicationUser_AuthorId", table: "Comment");
migrationBuilder.DropForeignKey(name: "FK_Comment_BlogPost_PostId", table: "Comment");
migrationBuilder.DropForeignKey(name: "FK_Schedule_ApplicationUser_OwnerId", table: "Schedule");
migrationBuilder.DropForeignKey(name: "FK_ChatConnection_ApplicationUser_ApplicationUserId", table: "ChatConnection");
migrationBuilder.DropForeignKey(name: "FK_BrusherProfile_PerformerProfile_UserId", table: "BrusherProfile");
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_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_HairPrestationCollectionItem_HairPrestation_PrestationId", table: "HairPrestationCollectionItem");
migrationBuilder.DropForeignKey(name: "FK_HairPrestationCollectionItem_HairMultiCutQuery_QueryId", table: "HairPrestationCollectionItem");
migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint");
migrationBuilder.DropForeignKey(name: "FK_HairTaintInstance_HairPrestation_PrestationId", table: "HairTaintInstance");
migrationBuilder.DropForeignKey(name: "FK_HairTaintInstance_HairTaint_TaintId", table: "HairTaintInstance");
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_PayPalPayment_ApplicationUser_ExecutorId", table: "PayPalPayment");
migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember");
migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember");
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: "Rejected", table: "RdvQuery");
migrationBuilder.DropColumn(name: "RejectedAt", table: "RdvQuery");
migrationBuilder.DropColumn(name: "Rejected", table: "HairMultiCutQuery");
migrationBuilder.DropColumn(name: "RejectedAt", table: "HairMultiCutQuery");
migrationBuilder.DropColumn(name: "Rejected", table: "HairCutQuery");
migrationBuilder.DropColumn(name: "RejectedAt", table: "HairCutQuery");
migrationBuilder.AlterColumn<long>(
name: "BillingAddressId",
table: "ClientProviderInfo",
nullable: true);
migrationBuilder.AlterColumn<int>(
name: "For",
table: "Announce",
nullable: false);
migrationBuilder.AlterColumn<string>(
name: "OwnerId",
table: "Estimate",
nullable: false);
migrationBuilder.AddForeignKey(
name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId",
table: "AspNetRoleClaims",
column: "RoleId",
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId",
table: "AspNetUserClaims",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId",
table: "AspNetUserLogins",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserRole<string>_IdentityRole_RoleId",
table: "AspNetUserRoles",
column: "RoleId",
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserRole<string>_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_BlogPost_BlogPostId",
table: "CircleAuthorizationToBlogPost",
column: "BlogPostId",
principalTable: "BlogPost",
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_BlogTag_BlogPost_PostId",
table: "BlogTag",
column: "PostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_BlogTag_Tag_TagId",
table: "BlogTag",
column: "TagId",
principalTable: "Tag",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Comment_ApplicationUser_AuthorId",
table: "Comment",
column: "AuthorId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Comment_BlogPost_PostId",
table: "Comment",
column: "PostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Schedule_ApplicationUser_OwnerId",
table: "Schedule",
column: "OwnerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ChatConnection_ApplicationUser_ApplicationUserId",
table: "ChatConnection",
column: "ApplicationUserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_BrusherProfile_PerformerProfile_UserId",
table: "BrusherProfile",
column: "UserId",
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_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_HairPrestationCollectionItem_HairPrestation_PrestationId",
table: "HairPrestationCollectionItem",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairPrestationCollectionItem_HairMultiCutQuery_QueryId",
table: "HairPrestationCollectionItem",
column: "QueryId",
principalTable: "HairMultiCutQuery",
principalColumn: "Id",
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_HairTaintInstance_HairPrestation_PrestationId",
table: "HairTaintInstance",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairTaintInstance_HairTaint_TaintId",
table: "HairTaintInstance",
column: "TaintId",
principalTable: "HairTaint",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ClientProviderInfo_Location_BillingAddressId",
table: "ClientProviderInfo",
column: "BillingAddressId",
principalTable: "Location",
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_PayPalPayment_ApplicationUser_ExecutorId",
table: "PayPalPayment",
column: "ExecutorId",
principalTable: "AspNetUsers",
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_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);
}
}
}

@ -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
@ -349,8 +351,7 @@ namespace Yavsc.Migrations
b.Property<string>("Description");
b.Property<string>("OwnerId")
.IsRequired();
b.Property<string>("OwnerId");
b.Property<DateTime>("ProviderValidationDate");
@ -672,6 +673,10 @@ namespace Yavsc.Migrations
b.Property<decimal?>("Previsional");
b.Property<bool>("Rejected");
b.Property<DateTime>("RejectedAt");
b.Property<string>("SelectedProfileUserId");
b.Property<int>("Status");
@ -713,6 +718,10 @@ namespace Yavsc.Migrations
b.Property<decimal?>("Previsional");
b.Property<bool>("Rejected");
b.Property<DateTime>("RejectedAt");
b.Property<int>("Status");
b.Property<string>("UserCreated");
@ -874,7 +883,7 @@ namespace Yavsc.Migrations
b.Property<long>("Id")
.ValueGeneratedOnAdd();
b.Property<int>("For");
b.Property<byte>("For");
b.Property<string>("Message");
@ -893,7 +902,7 @@ namespace Yavsc.Migrations
b.Property<string>("Avatar");
b.Property<long?>("BillingAddressId");
b.Property<long>("BillingAddressId");
b.Property<string>("EMail");
@ -1279,6 +1288,10 @@ namespace Yavsc.Migrations
b.Property<string>("Reason");
b.Property<bool>("Rejected");
b.Property<DateTime>("RejectedAt");
b.Property<int>("Status");
b.Property<string>("UserCreated");
@ -1600,13 +1613,6 @@ namespace Yavsc.Migrations
.HasForeignKey("OwnerId");
});
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")

@ -10,9 +10,9 @@ namespace Yavsc.Models.Billing
using Yavsc.Models.Payment;
using Yavsc;
using Yavsc.Billing;
using Yavsc.Workflow;
using Yavsc.Abstract.Workflow;
public abstract class NominativeServiceCommand : IBaseTrackedEntity, IQuery, IIdentified<long>
public abstract class NominativeServiceCommand : IBaseTrackedEntity, INominativeQuery, IIdentified<long>
{
public string GetInvoiceId() { return GetType().Name + "/" + Id; }
@ -77,6 +77,10 @@ namespace Yavsc.Models.Billing
[ForeignKey("ActivityCode"),JsonIgnore,Display(Name="Domaine d'activité")]
public virtual Activity Context  { get; set ; }
public bool Rejected { get; set; }
public DateTime RejectedAt { get; set; }
public abstract System.Collections.Generic.List<IBillItem> GetBillItems();
public bool GetIsAcquitted()
@ -91,16 +95,12 @@ namespace Yavsc.Models.Billing
var bcode = Startup.BillingMap[type];
return $"facture-{bcode}-{Id}{ack}";
}
[Display(Name = "PaymentId")]
public string PaymentId { get; set; }
[ForeignKey("PaymentId"), Display(Name = "Acquittement de la facture")]
public virtual PayPalPayment Regularisation { get; set; }
[Required]
public string BillingCode
{
get; set;
}
}
}

@ -402,7 +402,8 @@ Prestation.Gender == HairCutGenders.Women ?
Id = Id,
ActivityCode = ActivityCode,
Reason = reason,
Sender = Client.GetSender()
Sender = sender,
BillingCode = BillingCodes.Brush
};
return yaev;
}

@ -0,0 +1,491 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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>
<data name="About"><value>À propos de </value></data>
<data name="About BookAStar"><value>À propos de BookAStar</value></data>
<data name="About Message"><value>Bienvenue chez vos stars.</value></data>
<data name="access denied"><value>Accès refusé</value></data>
<data name="AcceptNotifications"><value>Accepter la notification d'une demande de rendez-vous</value></data>
<data name="AcceptPublicContact"><value>Accepter les prises de contact de la part de particuliers</value></data>
<data name="AccountBalance"><value>Balance du compte</value></data>
<data name="ActivateMyProSettings"><value>Activer mon profil professionnel</value></data>
<data name="Activity"><value>Activité</value></data>
<data name="Activities"><value>Activités</value></data>
<data name="additionally"><value>de plus</value></data>
<data name="Address"><value>Adresse</value></data>
<data name="Allow my geolocatisation, nearby the clients"><value>Autoriser ma geolocatisation, auprès de mes clients</value></data>
<data name="AnIMessageHasbeenSent"><value>Un message instantané a été envoyé à {0},
lui présentant votre demande. Vous devriez être contacté très rapidement.</value></data>
<data name="aprestation"><value>une prestation</value></data>
<data name="approved"><value>Approuvé</value></data>
<data name="AskForAnEstimate"><value>Demander un devis</value></data>
<data name="AttachedFiles"><value>Fichiers attachées</value></data>
<data name="AuthenticatedOnly"><value>Seuls les utilisateurs authentifiés peuvent accèder à cette information.</value></data>
<data name="Author"><value>Auteur</value></data>
<data name="available"><value>disponible</value></data>
<data name="Back to List"><value>Retour à la liste</value></data>
<data name="Basket"><value>Panier</value></data>
<data name="Bill edition"><value>Édition d'un article</value></data>
<data name="Bill removal"><value>Suppression d'un article</value></data>
<data name="BillAccessControl"><value>Contrôle d'accès à l'article</value></data>
<data name="BillCreated"><value>Article créé</value></data>
<data name="BillSourceCode"><value>Code source de l'article</value></data>
<data name="BillUpdated"><value>Article mis à jour</value></data>
<data name="Blog post edition"><value>Édition d'un article</value></data>
<data name="body"><value>corps de texte</value></data>
<data name="Book AStar"><value>Proposez un rendez-vous à votre artiste</value></data>
<data name="Book IT"><value>Proposez un rendez-vous à votre prestataire de services du numérique</value></data>
<data name="BookingTitleArtiste"><value>Reserver les services d'un artiste</value></data>
<data name="BookingTitle6829C"><value>Reserver les services d'un éditeur de logiciel</value></data>
<data name="Calendar"><value>Calendrier</value></data>
<data name="Catalog"><value>Catalogue</value></data>
<data name="Change"><value>Changer</value></data>
<data name="Change user name form"><value>Formulaire de changement de pseudonyme (avatar, le nom publique de ce compte utilisateur ici)</value></data>
<data name="Change your account settings"><value>Modifiez les paramètres de votre compte</value></data>
<data name="Connect using"><value>Se connecter en utilisant</value></data>
<data name="Choose below your main activity"><value>Choisissez ci-après votre activité principale</value></data>
<data name="ChooseADescription"><value>S'il vous plait, choisissez une description.</value></data>
<data name="ChooseATitle"><value>S'il vous plait, choisissez un titre.</value></data>
<data name="ChooseADateInTheFutur"><value>S'il vous plait, choisissez une date dans le futur.</value></data>
<data name="ChooseAnEventDate"><value>S'il vous plait, choisissez une date pour cette prestation.</value></data>
<data name="Ciffer"><value>Chiffre</value></data>
<data name="Circles"><value>Cercles</value></data>
<data name="Click action"><value>Action sur click</value></data>
<data name="Click here to log in"><value>Cliquez ici pour vous identifier</value></data>
<data name="Color"><value>Couleur</value></data>
<data name="Command"><value>Commande</value></data>
<data name="Command confirmation"><value>Confirmation de commande</value></data>
<data name="Comment"><value>Commentaire</value></data>
<data name="Consultant"><value>Consultant</value></data>
<data name="ContactAPerformer"><value>Contactez un préstataire</value></data>
<data name="Content"><value>Contenu</value></data>
<data name="Count"><value>Nombre</value></data>
<data name="CouldNotConvertVToDouble"><value>La convertion de '{0}' en 'double' a été impossible.</value></data>
<data name="Create"><value>Créer</value></data>
<data name="Create a new article"><value>Créer un nouvel article</value></data>
<data name="Create a new account"><value>Créer un nouveau compte</value></data>
<data name="Credits"><value>Crédits</value></data>
<data name="Date search"><value>Demande de rendez-vous</value></data>
<data name="DateCreated"><value>Date de création</value></data>
<data name="DateModified"><value>Date de dernière modification</value></data>
<data name="DB"><value>Base de données</value></data>
<data name="Defris"><value>Défrisage</value></data>
<data name="Details"><value>Détails</value></data>
<data name="Delete"><value>Supprimer</value></data>
<data name="Deposit"><value>Arrhes</value></data>
<data name="Description"><value>Description</value></data>
<data name="DoAnEstimate"><value>Faire un devis</value></data>
<data name="DoComment"><value>Commenter</value></data>
<data name="DoCommentPlaceHolder"><value>Votre commentaire</value></data>
<data name="DoNotPublishMyActivity"><value>Ne pas publier mon activité</value></data>
<data name="DoSpecifyCircles"><value>S'il vous plait, spécifiez ceux de vos cercles à qui est destiné ce contenu</value></data>
<data name="DocTemplateException"><value>Une erreur est survenue à la génération de votre document</value></data>
<data name="DisplayName"><value>Nom affiché</value></data>
<data name="Disable"><value>Désactiver</value></data>
<data name="Disabled"><value>Désactivé</value></data>
<data name="DoPost"><value>Poster</value></data>
<data name="DoTag"><value>Tagger</value></data>
<data name="Edit"><value>Éditer</value></data>
<data name="Edited"><value>Edité</value></data>
<data name="EditRelatedSkills"><value>Editer les compétences associées</value></data>
<data name="Enabled"><value>Activé</value></data>
<data name="Enable"><value>Activer</value></data>
<data name="EndDate"><value>Date de fin</value></data>
<data name="EndHour"><value>Heure de fin</value></data>
<data name="email"><value>e-mail</value></data>
<data name="Enter your email."><value>Saisissez votre email.</value></data>
<data name="Enter your user name or e-mail."><value>Saisissez votre nom d'utilisateur ou email.</value></data>
<data name="entries"><value>entrées</value></data>
<data name="Estimate"><value>Estimer</value></data>
<data name="Estimate_not_found"><value>Devis non trouvé</value></data>
<data name="EstimateToProduce"><value>Demandes de Devis en souffrance</value></data>
<data name="EstimateToSignAsPro"><value>Devis à valider</value></data>
<data name="EstimateToSignAsCli"><value>Devis à accèpter ou refuser</value></data>
<data name="EstimationMessageToClient"><value>{0} à validé et évalué votre demande, avec un devis à {1:C}</value></data>
<data name="EventDate"><value>Date de l'évennement</value></data>
<data name="BillToSignAsPro"><value>Factures à produire</value></data>
<data name="BillToSignAsCli"><value>Factures à honnorer</value></data>
<data name="EstimateWanted"><value>Demande de devis</value></data>
<data name="Event date"><value>Date de l'évennement</value></data>
<data name="EventWebPage"><value>Page web de l'événement</value></data>
<data name="ExistantDB"><value>Base de données éxistante</value></data>
<data name="External Logins"><value>Inscriptions externes</value></data>
<data name="FillInAFutureDate"><value>Veuillez, s'il vous plait, utiliser une date future.</value></data>
<data name="Fill in your Bank Info"><value>Saisir vos coordonées bancaires</value></data>
<data name="Fill in your book query"><value>Saisissez votre demande de rendez-vous</value></data>
<data name="Forbidden"><value>Contenu à accès restreint</value></data>
<data name="Forgot your password?"><value>Mot de passe perdu?</value></data>
<data name="Forgot Password Confirmation."><value>Confirmation mot de passe perdu.</value></data>
<data name="from"><value>provenant de</value></data>
<data name="Full name"><value>Nom complet</value></data>
<data name="EGCMBUTEMAIL"><value>L'envoi du message push a échoué, mais un e-mail a été envoyé</value></data>
<data name="GCM Notifications sent"><value>Message push envoyé</value></data>
<data name="GCM Notification sending failed"><value>L'evoi du message Google Cloud a échoué ...</value></data>
<data name="GiveAnExplicitReason"><value>Dites en plus, ci àprès, à propos de cet évennement</value></data>
<data name="GoogleDidntGeoLocalized"><value>Google n'a pas pu identifier ce lieu</value></data>
<data name="Google calendar"><value>Agenda Google</value></data>
<data name="Google error"><value>Erreur Google : {0}</value></data>
<data name="Google registration id"><value>Identifiant d'enregistrement Google</value></data>
<data name="HalfLong"><value>mi-long</value></data>
<data name="MobileHairCut"><value>Coiffure à domicile</value></data>
<data name="HairCutQuery"><value>Préstation en coiffure à domicile</value></data>
<data name="HairCutQueryValidation"><value>Une demande (de {0}) en coiffure à domicile vient d'être validée</value></data>
<data name="Hide source"><value>Cacher le texte source de l'article</value></data>
<data name="Home"><value>Accueil</value></data>
<data name="Hide"><value>Cacher</value></data>
<data name="hidden"><value>caché</value></data>
<data name="I understood"><value>J'ai compris</value></data>
<data name="Icon"><value>Icône</value></data>
<data name="Icons made by"><value>Les icônes fabriqués par</value></data>
<data name="Identity"><value>Identité</value></data>
<data name="ImgLocator"><value>URI de l'image</value></data>
<data name="ImportException"><value>Exception à l'import</value></data>
<data name="InternalServerError"><value>Erreur serveur interne</value></data>
<data name="Invalid company number"><value>Numéro de SIREN invalide</value></data>
<data name="is asking you for a date"><value>vous demande un rendez-vous</value></data>
<data name="is licensed_by"><value>sont sous licence</value></data>
<data name="Item added to basket"><value>Article ajouté au panier.</value></data>
<data name="Kid"><value>Enfant</value></data>
<data name="Location"><value>Lieu</value></data>
<data name="Login"><value>Connection</value></data>
<data name="LoginOrEmail"><value>Nom d'utilisateur ou e-mail</value></data>
<data name="Log in"><value>Se connecter</value></data>
<data name="Logout"><value>Déconnection</value></data>
<data name="Long"><value>long</value></data>
<data name="MainActivity"><value>Activité principale</value></data>
<data name="Man"><value>Homme</value><comment></comment></data>
<data name="Manage"><value>Gérer</value></data>
<data name="Manage your account"><value>Gérez votre inscription</value></data>
<data name="ManagedSiteSkills"><value>Compétences gérée sur ce site</value></data>
<data name="MaxDate"><value>Date maximale du rendez-vous</value></data>
<data name="MaxDailyCost"><value>Coût maximal journalier</value></data>
<data name="MEACode"><value>Code d'Activité Principalement Exercée</value></data>
<data name="Mech"><value>Mêches</value></data>
<data name="Members"><value>Membres</value></data>
<data name="Message sent"><value>Votre message a été envoyé</value></data>
<data name="MinDate"><value>Date minimale du rendez-vous</value></data>
<data name="MinDailyCost"><value>Coût minimal journalier</value></data>
MinDailyCost
<data name="Modified"><value>Modifié</value></data>
<data name="Modify"><value>Modifier</value></data>
<data name="Modify settings"><value>Modifier les paramètres</value></data>
<data name="My Estimates"><value>Mes estimations</value></data>
<data name="Name"><value>Nom</value></data>
<data name="Needs"><value>Besoins</value></data>
<data name="Need"><value>Besoin</value></data>
<data name="New user name"><value>Nouveau nom d'utilisateur (avatar)</value></data>
<data name="New Tag"><value>Nouveau Tag</value></data>
<data name="NewPasswordMessageSent"><value>Un e-mail vient de vous être envoyé, il contient le lien à suivre
pour pouvoir mettre à jour votre mot de passe.</value></data>
<data name="No"><value>Non</value></data>
<data name="NoTech"><value>Pas de technique spécifiée</value></data>
<data name="No calendar for this user"><value>Le préstataire n'a pas de calendrier associé.</value></data>
<data name="no content"><value>pas de contenu</value></data>
<data name="No deposit"><value>Aucune arrhes n'a été prévue</value></data>
<data name="none"><value>aucun(e)</value></data>
<data name="Non existent user"><value>Non existent user</value></data>
<data name="NoSkillforthisactivity"><value>Aucune compétence n'a été enregistrée par aucun préstataire pour cette activité.</value></data>
<data name="Not Approuved"><value>Non approuvé</value></data>
<data name="NonValidee"><value>Non validée</value></data>
<data name="NonValide"><value>Non validé</value></data>
<data name="off"><value>inactif</value></data>
<data name="Offline"><value>Hors ligne</value></data>
<data name="on"><value>actif</value></data>
<data name="Online"><value>En ligne</value></data>
<data name="OnlyAuthorizedMayContact"><value>Seuls les utilisateurs authorisés peuvent contacter un préstataire par courrier.</value></data>
<data name="Password"><value>Mot de passe</value></data>
<data name="PaymentConfirmation"><value>Confirmation de paiement</value></data>
<data name="PayementsDone"><value>Paiements effectués</value></data>
<data name="PaymentId"><value>Identifiant de paiement</value></data>
<data name="Pdf version"><value>Version Pdf</value></data>
<data name="PerformanceDate"><value>Date de la prestation</value></data>
<data name="PerformancePlace"><value>Lieu de la pestation</value></data>
<data name="Performers"><value>Perstataires</value></data>
<data name="Performer"><value>Préstataire</value></data>
<data name="PerformerProfile"><value>Profile préstataire</value></data>
<data name="Permanent"><value>Permanante</value></data>
<data name="Person"><value>Personne</value></data>
<data name="Photo"><value>Photo</value></data>
<data name="PhotoUpdated"><value>Photo mise à jour</value></data>
<data name="Please"><value>S'il vous plait</value></data>
<data name="PleaseCheckYourEmail"><value>S'il vous plait, veuillez verifier votre boite au lettres, pour pouvoir ré-initialiser votre mot de passe.</value></data>
<data name="PleaseConfirmYourNewPassword"><value>S'il vous plait, veuillez confirmer votre nouveau mot de passe.</value></data>
<data name="PleaseFillInABody"><value>S'il vous plait, saisissez un corps de message</value></data>
<data name="PleaseFillInAReason"><value>S'il vous plait, saisissez une réson, un sujet pour votre message</value></data>
<data name="Please reset your password by following this link:"><value>Veuillez s'il vous plait utiliser le lien suivant pour ré-initialiser votre mot de passe:</value></data>
<data name="Posted"><value>Posté</value></data>
<data name="PreferedDate"><value>Date souhaitée</value></data>
<data name="PresationLocation"><value>Lieu de la présation: {0}.\n</value></data>
<data name="Preview"><value>Prévisualiser</value><comment>Prévisualiser le document</comment></data>
<data name="Profile edition"><value>Édition du profil</value></data>
<data name="Product reference"><value>Référence produit</value></data>
<data name="prestation"><value>prestation</value></data>
<data name="Professional settings"><value>Paramètres professionels</value></data>
<data name="Provider"><value>Fournisseur</value></data>
<data name="ProviderId"><value>Identifiant du fournisseur</value></data>
<data name="ProviderName"><value>Nom du fournisseur</value></data>
<data name="Rate"><value>Cote</value></data>
<data name="RdvToPerf"><value>{0} vous demande une intervention le {1} à {2} ({3})</value></data>
<data name="ReadMore"><value>Lire la suite ...</value></data>
<data name="reason"><value>raison</value></data>
<data name="Register"><value>S'inscrire</value></data>
<data name="Register as a new user"><value>S'inscrire comme nouvel utilisateur</value></data>
<data name="RegistrationUnexpectedError"><value>Une erreur inattendue s'est produite:
"{0}".
Veuillez pardonner la gêne occasionnée</value></data>
<data name="Remember me"><value>Se souvenir du mot de passe</value></data>
<data name="Remove"><value>Supprimer</value></data>
<data name="Remove my professional profile"><value>Supprimer mon profil professionnel</value></data>
<data name="Role"><value>Rôle</value></data>
<data name="Reset Password"><value>Ré-initialiser votre mot de passe</value></data>
<data name="Reset password confirmation"><value>Confirmation de ré-initialiser du mot de passe</value></data>
<data name="role created"><value>Rôle créé</value></data>
<data name="RoleName"><value>Nom du rôle </value></data>
<data name="Save these settings"><value>Enregistrer ces paramètres</value></data>
<data name="Search"><value>Chercher</value></data>
<data name="Select a Google calendar"><value>Selectioner un calendrier Google</value></data>
<data name="Send"><value>Envoyer</value></data>
<data name="Send a private message"><value>Envoyer un message privé</value></data>
<data name="Send a public message"><value>Envoyer un message publique</value></data>
<data name="Set"><value>Positioner</value></data>
<data name="SettingsClass"><value>Classe du paramétrage</value></data>
<data name="Short"><value>court</value></data>
<data name="Son blog"><value>Son blog</value></data>
<data name="Your performer profile"><value>Votre profil professionel</value></data>
<data name="Setup below your activity parameters"><value>Positionnez ci-après vos les paramêtre de votre activité</value></data>
<data name="SiteSkills"><value>Talents/Compétences/Spécialités gérés sur ce site</value></data>
<data name="Skill"><value>Compétence</value></data>
<data name="Skills"><value>Talents/Compétences/Spécialités</value></data>
<data name="SomeoneAskingYouForAnEstimate"><value>{0} désirerait un devis concernant {1}</value></data>
<data name="Sound"><value>Son</value></data>
<data name="SpecifyLatitude"><value>Specify a latitude</value></data>
<data name="SpecifyLongitude"><value>Specify a longitude</value></data>
<data name="SpecifyPlace"><value>S'il vous plait, veuillez spécifier un lieu.</value></data>
<data name="Specifyavalidlatitude"><value>Please, specify a valid latitude.</value></data>
<data name="StartDate"><value>Date de début</value></data>
<data name="StartDateAfterEndDate"><value>La date de fin doit être postérieure à la date de début.</value></data>
<data name="StartHour"><value>Heure de début</value></data>
<data name="Submit"><value>Soumettre</value></data>
<data name="SubmitChanges"><value>Envoyer les modifications</value></data>
<data name="Tag"><value>Tag</value></data>
<data name="Tag name"><value>Nom du tag</value></data>
<data name="Tex version"><value>Version LaTeX</value></data>
<data name="ThisSiteUsesCookies"><value>Ce site utilise les cookies</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis"><value>Selon son calendier Google, ce perstataire est disponbile ce</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis"><value>Selon son calendier Google, ce perstataire pourrait ne pas être disponible ce</value></data>
<data name="ThisPerformerDoesntGiveAccessToHisCalendar"><value>Ce prestataire n'a pas mis de calendrier à disposition.</value></data>
<data name="Title"><value>Titre</value></data>
<data name="to"><value>à</value></data>
<data name="TwoFactorAuthentication"><value>Double identification</value></data>
<data name="Unitary_cost"><value>Coût unitaire</value></data>
<data name="Unregister"><value>Se désinscrire</value></data>
<data name="Use a local account to log in"><value>Utiliser un compte local pour se connecter</value></data>
<data name="Use another service to log in"><value>Utiliser un autre service pour se connecter</value></data>
<data name="UseGeoLocalizationToReduceDistanceWithClients"><value>Utiliser ma position pour avoir des clients plus proches</value></data>
<data name="User List"><value>Liste des utilisateurs</value><comment></comment></data>
<data name="UserName"><value>Nom d'utilisateur</value></data>
<data name="UsersInRole"><value>Liste des utilisateurs assumant le rôle "{0}"</value></data>
<data name="UserSkills"><value>Talents/compétences/spécialités utilisateur</value></data>
<data name="UserNotInThisRole"><value>Le rôle demandé n'est pas assumé par ce préstataire</value></data>
<data name="ValidationDate"><value>Date de validation</value></data>
<data name="View_source"><value>Voir le texte source de l'article</value></data>
<data name="was_added_to_the_role"><value>a été ajouté au rôle</value></data>
<data name="was_added_to_the_empty_role"><value>Il n'y avait pas d'utilisateur dans le rôle "{1}". Vous ({0}) avez été ajouté au rôle "{1}".</value></data>
<data name="WebSite"><value>Site Web</value><comment></comment></data>
<data name="Welcome"><value>Bienvenue</value><comment></comment></data>
<data name="Women"><value>Femme</value><comment></comment></data>
<data name="XHasBeenNotified"><value>{0} à été notifié de votre demande, vous devriez être contacté rapidement</value></data>
<data name="Xshouldbeavailable"><value>Au vu de son calendrier,
{0} devrait être disponible pour ce rendez-vous</value></data>
<data name="Yavsc.Models.Musical.Profiles.Instrumentation"><value>Paramètres musicien (l'instrument)</value></data>
<data name="Yavsc.Models.Musical.Profiles.DjSettings"><value>Paramètres Dj (le compte SoundCloud.com)</value></data>
<data name="Yavsc.Models.Workflow.Profiles.FormationSettings"><value>Paramètres formation (les partenaires)</value></data>
<data name="Yavsc.Models.Musical.Profiles.GeneralSettings"><value>Paramètres généraux (visibilité et présentation)</value></data>
<data name="Yavsc.Models.Haircut.BrusherProfile"><value>Paramètres coiffeur: tarifs, disponibilité</value></data>
<data name="Yes"><value>Oui</value></data>
<data name="YouNeedToBeAuthenticatedIOToContact"><value>Vous devez vous authentifier pour pouvoir demander un devis
à un préstataire.</value></data>
<data name="younotadmin"><value>Vous n'êtes pas administrateur</value></data>
<data name="Your book query"><value>Votre demande de rendez-vous</value></data>
<data name="Your password has been reset."><value>Votre mote de passe a été mis à jour.</value></data>
<data name="YourEstimates"><value>Vos Devis</value></data>
<data name="YourMEACode"><value>Votre activité</value></data>
<data name="YourNeed"><value>Votre besoin</value></data>
<data name="yourquerytransmitted"><value>Votre demande a été transmise</value></data>
<data name="YourSkills"><value>Vos talents, vos spécialités, le domaine de vos activités</value></data>
<data name="Your posts"><value>Vos publications</value></data>
<data name="Your profile"><value>Votre profil</value></data>
<data name="YourMessageHasBeenSent"><value>Votre messge a été envoyé</value></data>
<data name="Tell more, below, about your query"><value>Dites en plus, ci àprès, à propos de cet évennement</value></data>
<data name="UnsetActivity"><value>Supprimer mon profil professionel</value></data>
<data name="Français"><value>Français</value></data>
<data name="Anglais"><value>Anglais</value></data>
<data name="InvalidUserName"><value>Nom d'utilisateur invalide.
Les caratères valides sont: le souligné (_), le petit titret (-), l'apostrohe ('), les minuscules et majuscules de a à z, les chiffres de 0 à 9, l'espace et le point.</value></data>
<data name="RequiredField"><value>Ce champ est obligatoire.</value></data>
<data name="validationError"><value>Champ invalide ...</value></data>
<data name="PasswordTooShort"><value>Le Mot de passe doit contenir au moins 6 caractères.</value></data>
<data name="PasswordRequiresNonLetterAndDigit"><value>Mot de passe doit contenir au moins un caractère spécial (ni un chiffre, ni une lettre).</value></data>
<data name="PasswordRequiresDigit"><value>Les mots de passe doivent contenir au moins un chiffre ('0' à '9').</value></data>
<data name="PasswordRequiresUpper"><value>Les mots de passe doivent contenir au moins une lettre majuscule ('A' à 'Z').</value></data>
<data name="PassAndConfirmDontMach"><value>Le mot de passe et sa confirmation ne sont pas les mêmes.</value></data>
<data name="PasswordConfirm"><value>Confirmation du mot de passe</value></data>
<data name="ErrorSendingEmailForConfirm"><value>L'envoi de de courrier pour confirmation de l'adresse e-mail a échoué.</value></data>
<data name="EmailSentForConfirm"><value>Un courrier a été envoyé pour confirmation de l'adresse e-mail .</value></data>
<data name="ConfirmYourAccountTitle"><value>S'il vous plait, confirmez votre addresse e-mail</value></data>
<data name="ConfirmYourAccountBody"><value>Vous avez créé avec succès votre compte {0},
mais votre adresse e-mail reste à confirmer.
Pour ce faire, suivez le lien suivant : &lt;{1}&gt;.
--
{0} - {2} &lt;{3}&gt;</value></data>
<data name="BadStringLength"><value>Taille maximale: {0} caractère.</value></data>
<data name="DetailledMinMaxStringLength"><value>Ce champ est
d'au moins {0} et d'au plus {1} caractère(s). </value></data>
<data name="DetailledMaxStringLength"><value>Ce champ est
d'au plus {0} caractère(s) ({1} en excès). </value></data>
<data name="EmailSentToPerformer"><value>Un message éléctronique a été envoyé au préstataire.</value></data>
<data name="QueryValidatedNonReg"><value>Un client vient de valider une demande de prestation à votre encontre:
Prestation: {0}
Client : {1}
Date: {2},
Adresse: {3}
-----
{4}
Facture prévue (non réglée): {5}</value></data>
<data name="QueryValidatedRegular"><value>Un client vient de valider une demande de prestation à votre encontre:
Prestation: {0}
Client : {1}
Date: {2},
Adresse: {3}
-----
{4}
Facture réglée: {5}</value></data>
</root>

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using Microsoft.Data.Entity;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Yavsc.Abstract.Workflow;
using Yavsc.Billing;
using Yavsc.Models;
@ -19,11 +20,9 @@ namespace Yavsc.Services
DbContext = dbContext;
}
public async Task<IBillable> GetBillAsync(string billingCode, long queryId)
public Task<INominativeQuery> GetBillAsync(string billingCode, long queryId)
{
var dbFunc = Startup.Billing[billingCode];
IBillable query = await Task.Run(()=> dbFunc(DbContext, queryId));
return query;
return Task.FromResult(Startup.GetBillable(DbContext,billingCode,queryId));
}
public async Task<ISpecializationSettings> GetPerformerSettingsAsync(string activityCode, string userId)

@ -2,7 +2,8 @@ namespace Yavsc.Services
{
using System.Linq;
using System.Threading.Tasks;
using Billing;
using Yavsc.Abstract.Workflow;
public interface IBillingService
{
/// <summary>
@ -17,7 +18,7 @@ namespace Yavsc.Services
/// <param name="billingCode">Identifiant du type de facturation</param>
/// <param name="queryId">Identifiant de la demande du client</param>
/// <returns>La facture</returns>
Task<IBillable> GetBillAsync(string billingCode, long queryId);
Task<INominativeQuery> GetBillAsync(string billingCode, long queryId);
Task<IQueryable<ISpecializationSettings>> GetPerformersSettingsAsync(string activityCode);
Task<ISpecializationSettings> GetPerformerSettingsAsync(string activityCode, string userId);

@ -9,6 +9,7 @@ namespace Yavsc
{
using Microsoft.Data.Entity;
using Models;
using Yavsc.Abstract.Workflow;
using Yavsc.Billing;
using Yavsc.Models.Billing;
using Yavsc.Models.Haircut;
@ -23,9 +24,10 @@ namespace Yavsc
public static List<Type> ProfileTypes = new List<Type>();
public static List<PropertyInfo> UserSettings = new List<PropertyInfo>();
public static Dictionary<string,Func<ApplicationDbContext,long,IBillable>> Billing =
new Dictionary<string,Func<ApplicationDbContext,long,IBillable>> ();
public static Dictionary<string,Func<ApplicationDbContext,long,INominativeQuery>> Billing =
new Dictionary<string,Func<ApplicationDbContext,long,INominativeQuery>> ();
public static INominativeQuery GetBillable(ApplicationDbContext context, string billingCode, long queryId ) => Billing[billingCode](context, queryId);
public static Dictionary<string,string> BillingMap =
new Dictionary<string,string>();
/// <summary>
@ -77,7 +79,7 @@ mais n'implemente pas l'interface IQueryable<ISpecializationSettings>
}
}
RegisterBilling<HairCutQuery>(BillingCodes.Brush, new Func<ApplicationDbContext,long,IBillable>
RegisterBilling<HairCutQuery>(BillingCodes.Brush, new Func<ApplicationDbContext,long,INominativeQuery>
( ( db, id) =>
{
var query = db.HairCutQueries.Include(q=>q.Prestation).Include(q=>q.Regularisation).Single(q=>q.Id == id) ;
@ -85,9 +87,9 @@ mais n'implemente pas l'interface IQueryable<ISpecializationSettings>
return query;
})) ;
RegisterBilling<HairMultiCutQuery>(BillingCodes.MBrush,new Func<ApplicationDbContext,long,IBillable>
RegisterBilling<HairMultiCutQuery>(BillingCodes.MBrush,new Func<ApplicationDbContext,long,INominativeQuery>
( (db, id) => db.HairMultiCutQueries.Include(q=>q.Regularisation).Single(q=>q.Id == id)));
RegisterBilling<RdvQuery>(BillingCodes.Rdv, new Func<ApplicationDbContext,long,IBillable>
RegisterBilling<RdvQuery>(BillingCodes.Rdv, new Func<ApplicationDbContext,long,INominativeQuery>
( (db, id) => db.RdvQueries.Include(q=>q.Regularisation).Single(q=>q.Id == id)));
}
public static System.Reflection.Assembly OnYavscResourceResolve(object sender, ResolveEventArgs ev)
@ -95,7 +97,7 @@ mais n'implemente pas l'interface IQueryable<ISpecializationSettings>
return AppDomain.CurrentDomain.GetAssemblies()[0];
}
public static void RegisterBilling<T>(string code, Func<ApplicationDbContext,long,IBillable> getter) where T : IBillable
public static void RegisterBilling<T>(string code, Func<ApplicationDbContext,long,INominativeQuery> getter) where T : IBillable
{
Billing.Add(code,getter) ;
BillingMap.Add(typeof(T).Name,code);

@ -196,7 +196,6 @@
@Html.HiddenFor(model=>model.ClientId)
@Html.HiddenFor(model=>model.PerformerId)
@Html.HiddenFor(model=>model.ActivityCode)
@Html.HiddenFor(model=>model.BillingCode)
</div>

@ -6,9 +6,6 @@
<h2>Index</h2>
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<tr>
<th>

@ -9,11 +9,9 @@
@foreach (var profile in Model) {
<hr/>
@Html.DisplayFor(m=>profile)
<form action="~/Command/Create" >
<input type="hidden" name="id" value="@profile.PerformerId" />
<input type="hidden" name="billingCode" value="Profiles" />
<input type="hidden" name="activityCode" value="@ViewBag.Activity.Code" />
<input type="submit" class="btn btn-success" value="@SR["Proposer un rendez-vous à"] @profile.Performer.UserName"/>
</form>
<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
</a>
}

@ -5,6 +5,9 @@
},
{
"path": "Yavsc.Abstract"
},
{
"path": "YaDaemon"
}
],
"settings": {

Loading…