From 1efd8bc36d3edb0fdcbec0c7428b623f188f2422 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sun, 25 Feb 2018 03:33:54 +0100 Subject: [PATCH] minChz.|<_| --- Kobush.Build.dll | Bin 12800 -> 0 bytes MSBuildLogger.dll | Bin 7680 -> 0 bytes YaDaemon/Program.cs | 25 +- YaDaemon/YaTaskScheduler.cs | 1 + YaDaemon/project.json | 3 +- YaDaemon/project.lock.json | 25 +- Yavsc.Abstract/Billing/IBillable.cs | 1 - Yavsc.Abstract/Makefile | 2 +- Yavsc.Abstract/Workflow/INominativeQuery.cs | 10 + Yavsc.Abstract/Workflow/IQuery.cs | 2 +- Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc7.nupkg | Bin 0 -> 14449 bytes .../ApiControllers/BookQueryApiController.cs | 3 +- Yavsc/ApiControllers/EstimateApiController.cs | 2 +- .../FrontOfficeApiController.cs | 17 + Yavsc/Controllers/CommandController.cs | 19 +- .../Haircut/HairCutCommandController.cs | 1 + Yavsc/Helpers/EventHelpers.cs | 8 +- .../20180209144114_rejectQuery.Designer.cs | 1772 +++++++++++++++++ .../Migrations/20180209144114_rejectQuery.cs | 805 ++++++++ .../ApplicationDbContextModelSnapshot.cs | 28 +- .../Billing/NominativeServiceCommand.cs | 16 +- Yavsc/Models/HairCut/HairCutQuery.cs | 3 +- ...dels.Billing.NominativeServiceCommand.resx | 491 +++++ Yavsc/Services/BillingService.cs | 7 +- Yavsc/Services/IBillingService.cs | 5 +- Yavsc/Startup/Startup.Workflow.cs | 14 +- Yavsc/Views/Command/Create.cshtml | 1 - Yavsc/Views/Command/Index.cshtml | 3 - Yavsc/Views/FrontOffice/Profiles.cshtml | 10 +- yavsc.code-workspace | 3 + 30 files changed, 3182 insertions(+), 95 deletions(-) delete mode 100644 Kobush.Build.dll delete mode 100644 MSBuildLogger.dll create mode 100644 Yavsc.Abstract/Workflow/INominativeQuery.cs create mode 100644 Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc7.nupkg create mode 100644 Yavsc/Migrations/20180209144114_rejectQuery.Designer.cs create mode 100644 Yavsc/Migrations/20180209144114_rejectQuery.cs create mode 100644 Yavsc/Resources/Yavsc.Models.Billing.NominativeServiceCommand.resx diff --git a/Kobush.Build.dll b/Kobush.Build.dll deleted file mode 100644 index 44e9e3883253f3751fea33db4e018a02022dc2c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12800 zcmeHNeQ;aVl|S!EmL*wIB0C?B2|@V+$Hc-(Oo-C}ar_Yswv*US2qlm_OV73vNl$%G zO5%ioy|mfs7Iw=NI?c|sLt5C`w6p`=?o#N|7KXChZE2yMb~iKqWQGn*yQQ?lv@lKB z-#PC-N&X0({@2;vXY2RwJ?GqW&pqdUocE-G_kWapMC8Zk-FJz;j5}Z31>YN{z>Zz< zbd0_fdU55Kwf+}Zj!a~nM8USkZ6lXR8Tq_bOpKZdyOd94@`>(U!-<@gHj~k4c#TrM zyN9S>^U;srcgH@jx1W)|vQDcbY5^tSQdjihp1|i2K12(pth;tIL5UGPj0)&{`RLGx zSd{-OcU5H)u7AIYXqXF!h+bkx%)X|GBA|VAC(-iRy!Wanh=Nu8AnNFck;hfv@^t;eV8+KzA~Z8K{@kZq+Yd{|c-K2_Itq8(LL zx5$3Q#kT2GLkpYH{0bsXsDD0uN_XN!;ZrcvuQ%7DsN2w0NCaV!)4(iL{Vl#W9|ct> zx^69E1|-l1EdxINVqgL8&SKE5B><+xn6i{9jf#S(2b^V0X;PG0rd-ApL@TUYmjgRK zjd8F7%!7clf|(ehsD!NnC&84Jih`g8oK;L&ttcU;tYOMpfU9z8at|vEGwVubU8RIE zYXc5^7`6~tCES=?!@>wnz(JV9*40Wl$`k}MY_$SfR_M(&ptM{D-<*QUa8F!6$zEwr zg5TPztJ*cFIS6j}6lSddCu_rY2V7iN+q?m^+JLhWw-b8vCKhY=#PpLaywtiD1h;H$ zE*I@TLV(b7SXjBmJTU$Zrum@TOb-(pK z)D#V&544=n?HFYJ7F2<8eT7|aazlkCO^)jJ3Tbj981r_reO3!}vR+zr3S&owUGAi- zLX%FO)9uaDq+1w0g1v%R_plVp!y5>uYM=!TdaD{>5rKWP;4Omvvl_stp{fQ06*i`L zpk++AN6YM`%4Nbq40x@a#+@&pc)WQK?bk=#Soqwy*#%b6jP()F?Gq^1xU(i$)4U7P zSJ#O1gs+tB2DvrlPUxmh^}78*w2JxfgG)45&q-d!F~7A3k}B|OVl=e*X$tmWc4CgQ zm^B0;NJ)7Z<@IINJN<#?5m4$}9rh>CPt|0r*P8c&8-WF%1*aJYLAd!=fVCf>`n_%5 zqF94<^L}t!PU}AFb`!gw)=bRN7%h6>|omn)YaCANKNxW z$gICYKZ%9s_Xk>|wHE`}N&?Oy(8B@Cz-=McAg?3O>D*QAN$#P_^D(txLnzGly>35^ zCb63PFr}22?dO>isG`WWB_a79vudkC;;*rP0h-K!X6%fCD*s@7JXa<$KE7%iH#NA? zU6xc^QBzWDsac9xOAkwvLATJVwagsWAJIk4eVFRX#90Pa&k_HUdCY*HeT0?3$5q_t zPQ)EP8;1Zk3V=1rF7>Zp6|ftbw!BOW*jF;4rA%-Q3-IBF05-JM&46uHU-x}x21YpSx4QQbT=+dnW=q-VlWU5zMt@S_36g5wM^_txdJDLx( zrXv8a8TKNrxzcR2|52ti1nL9sOb#|@xk(NXRsGicE-qmqG0W3~ZJ=6D<4ha#RXs{5 zDm`B5f0QW=e$^uGmteWdEA8CDHq^w`UJ&!dYg`MwmE+x!APnCO_rhJcaA48V_GDXf zQ`@Eu*znow7#BT{6LIz3NH4-f=@`nxMLUxpcUa=VMxrg)6jtvYrf*|)@$s>G=ia_< z+<%1nBbX4YcVs#KazRwP^>RHJLV?~{yNNKRxp!=E9AnA3um%Z79$ENcd!q&TFpuT< z!)2^VTw!H-fX>i8s69^SC`Lb`XQ-ZZ?e|dLt~F^(=$PQ=1z#1sLTCEzf*%unQBd;;DDp71&J@^JXUaG1U*<>v)|BKX_zYvFpTsrx-Vc?B>` zBXzHZm(W-pw{4ERhF1F{tl{I4=}4HKl=4@BF^Wf@0d5fN7rb5YG%!q`jB=|l2!2KI zohWO#BF6L%!M@mc;R83?jQqEdE~B-GJ(p{crfda2gnFaYaQ>pUfR>RDyx(FfhcK6# zAo~jDkVd~kYv|Bc0N45NqJ2~U;J*y`nBW%$pB8*h@IM4!7W|>$j|E>9{I%fk1pgqY z*RZyjV58vWg3W^03T_v?S#Y1=C@?@Z(aUIe0t2AajZaboEIcl?7pPNPh1z{9nfC&o zn;LNbJ}9-*v{!0vtC)A1#-(<>)TZfvtr?Q!4r|3OO7OKV-;wEtnciuNP-=Kk*U zf0nMM$5ri&|8Z)ii&qIxJa`QSnyYKii%!?O*U-1!8ZC_me7w(SbQoKTMn{1T`&9Ya;6{CqD*r0jfmX55cHK~v zYeT(yMwJhS2J{c8@<&4>`lKp1Vam z;k)&7+PUz(`bt>)Vf_j1>F@*kQ;_*M$``_)68a;+g>|3P&ui=I8tA;Xt?n)Dyf!H1 zL%`RyQr%N}2i;ruRlSoQsA~eA1@;ML4?ThMZBjPq>nIz-%?Ran?L|;NK<5Qt5&UJ{ zbD+EfoD}*bF@2JlJ}LBRs*Ah;`(Dp9@4)Pc?)Ct&j^p=l}H1{-FWGp(Wq~wJ``>6ZO~KECg{vzA3Li# z(Yy5yog=u69*Q>k&T0=uTYTrW&qUwS;`C3^c3+?VVstC8BhuxI(|029fd13y0AyZ` z4*71=qp|(IGoZhv8~U2qoxZoV)>sO9I%60+G&f)$T15W>Y@}}hm(xqY1pO4ahJFof zrVGIJ6vmm|Mh(DrN&vUeHNb7O9k`wPfZa3%yopR;Kivh~O@9X*p-%w!V>~fBKwkhJ zqNjjq`ZjQaegMqUFSI1Rj~4lpbT54f*g)U%C2`XH7`U4L0KA$m0yhc0j;2xW68f;< z?X(T8j?fs;AqRMp?(%_p`^yy0 zAs(KGc5WWp@8{4oYSNhKL!W+pYP`O;4OrS2_S$>)H&bR-OHbkarmCi%kk@v^u*c2!?sSI8%yyo(`MY!* zdNP%k&XM;VdQTx#*o`N()v4zF5Ee>l)!@)UsQjAO%Os_248)Ykorm78P9Z-w$ zWGWsvos>~9`-?k^lxKe&HL@i*ME2L@P$|!ilKV`XH&Nc`)mrnmze-fRCgzx$KGf+r zW^Ob)Ig%-6&5EE$?nc*kroc03F0;$Zk7dTy1e=eYD;W97xeP=gT}o9=7O%H1t1xM2 z#wX@sjo3!o%o+BPx$3$~*&^mlh2f1-Ii@d~z(; zXtm%x8>lQ=b@EkTj7m+^s{Ked)@ntHuJ-Ip?XWyz zmnRC8wA!*RHJq7jZ-euUo@0p;_xNhPUP`&Unibbu+tn#W^&r*KS8Ul^FRizHw2GW( z&Kz@jgZ7x%hWX7S^*Mv3Y<8F3lPe$!Y7%o+Mm>4tZ!E$yZ0|_#7A&~DV_|=k(}H(s zq+8g+GU;6f(>ja)S;3FhK(rFJL#0Edt44E)ao-K--HoDWS3yGLPa`Gbza#wpb zm)$i>iqmUbIYq&qjOiyXC~xx0MNlZ2o$JE6t`-Umo1hW={v!oxV#QwEc34=1i0_Ei zZyl2a$vtW$frN0?0Z7-~i6{6Q@tmH*cK~UmJvZPP{1~2%H{yHp1E8G5^ZY4Vhq6O0 zcoXd2Y3kYi@OTyv@|XtrGsy-sL7kKbnuLctV1bI1fdtczkpUG6P$nR2q3%*AAd!V^ z0xdZ2GNer&Iunp8p;iz~(3p};g42z18uv+&NkDS}ZBw9*ftG-l1RVutm7Lc$4_XeA z_`YaC4y{I^oBL1md$P>&mwAIF6+b6ghsZG;%T(9LG}DcHRA{gg}g9Ph)0%Z zS@d9G1SPb@*HaDLf^`gw)*Spoi+784>>=(YgFC)as$;Jo#Rp$J`S5^7v_i z55FP^T?tN6YWU>E%@?ST>VX(;@tTCD)h`YtbZvS4GWT}5dt2$=*1ETK?yc3mZE$bby0;GZ zcD;M+bZo~ugcsivAE*H{rVB2Q&71+@ zN*H4^BMianpvGp-lSuV633{_6QXTl%7<|j~jH7DO!r9>sdh;UaO^f=uvtkK{%0Phd z#DWRyO_ut(5f6IPBey7TqjN$ppkUDfCH-Ij}z^ zE1QM=2x*K#4*=p*_j5U@qEX9!j!&JzG>Eacmp8Id{nRJj+gbPasCzqClc4z2=iSN^ z?(Lu5+f(lC8TaL5M~J1Q%b3#%pU?ejv)`?16_b_%*yd?895c~6x!`wG5#@BtrCnj@N zK7p1-Hg#eWyW~|Gttvn0C7wH%*x1&#IWbpmoknZ6j9%M5*50wPb>pTDqpc`h*V?fm z-PXF{I%Cu3_V)C~QL_!-nrl?MF}WeR5w9otCvG}-&IP=o#f2X;VW9ewTWzB-Xywb9 z-pGV)9dpD|@3)ZLayclEVJ~}Z9nsKm_wc)Kzj4I>F@#*z4f2 z>40sF8QJ7v!^xzK1KoI&n6-?wbD-K$tvLhlLG5{I*685_c&alE$DF}W7Sf|^`d{+( zo0}@u#rjZARO&NI%$so`iM6}4*#RSyCwW_Jn)3RZh2C8YJ^T}f|05TFt4{b9g{Ec> znCGngoOBMI<=FN64-p;ram~Gs``S_1hXei~u!n|F>Z4sWhmoHZEM<6on4Y?ru39 zIX%tbSgane+nN)+2};hef@6xky{uy&bl8xq_-Z3sY`}-_?%3IG_I6QZIVH$eS$?U$ zlE?+J_~UDWRzXKU+K)?X_GAI0Wy{CGMH(yKok>gJw>$~h!Litk(x3KFzxa5U(#uh1 zTRney$qXs)&h<~V&D+G+Zi>ozQ3_U8$Lmt#=JB?Rk7u@>?djQm-Xd)}5ev?va)^Fb f9vS{rJMQn#y0*K&^Ge9?yZ)?}|1bQ%zytpSW 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 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(); diff --git a/YaDaemon/YaTaskScheduler.cs b/YaDaemon/YaTaskScheduler.cs index 5fca9213..3e1dd0c4 100644 --- a/YaDaemon/YaTaskScheduler.cs +++ b/YaDaemon/YaTaskScheduler.cs @@ -42,6 +42,7 @@ namespace YaDaemon using (var prog = new YaDaemon()) { try { await prog.StartAsync(args); + prog.MainLoop(args); } catch (Exception ex) { diff --git a/YaDaemon/project.json b/YaDaemon/project.json index 8c597994..1242bd04 100644 --- a/YaDaemon/project.json +++ b/YaDaemon/project.json @@ -3,8 +3,7 @@ "description": "MyDnxService Console Application", "dependencies": { "Yavsc": { - "type": "build", - "version": "1.0.0" + "type": "build" } }, "frameworks": { diff --git a/YaDaemon/project.lock.json b/YaDaemon/project.lock.json index 5d87167b..460b33ba 100644 --- a/YaDaemon/project.lock.json +++ b/YaDaemon/project.lock.json @@ -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" diff --git a/Yavsc.Abstract/Billing/IBillable.cs b/Yavsc.Abstract/Billing/IBillable.cs index 6da26bb8..069d7a5d 100644 --- a/Yavsc.Abstract/Billing/IBillable.cs +++ b/Yavsc.Abstract/Billing/IBillable.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; namespace Yavsc.Billing { public interface IBillable { - string BillingCode { get; set; } string GetDescription (); List GetBillItems(); long Id { get; set; } diff --git a/Yavsc.Abstract/Makefile b/Yavsc.Abstract/Makefile index fdb9bffb..c07a9ce5 100644 --- a/Yavsc.Abstract/Makefile +++ b/Yavsc.Abstract/Makefile @@ -1,5 +1,5 @@ CONFIG=Release -VERSION=1.0.5-rc6 +VERSION=1.0.5-rc7 PRJNAME=Yavsc.Abstract PKGFILENAME=$(PRJNAME).$(VERSION).nupkg DESTPATH=. diff --git a/Yavsc.Abstract/Workflow/INominativeQuery.cs b/Yavsc.Abstract/Workflow/INominativeQuery.cs new file mode 100644 index 00000000..f2eb2e58 --- /dev/null +++ b/Yavsc.Abstract/Workflow/INominativeQuery.cs @@ -0,0 +1,10 @@ +using System; + +namespace Yavsc.Abstract.Workflow +{ + public interface INominativeQuery: IQuery + { + bool Rejected { get; set; } + DateTime RejectedAt { get; set; } + } +} \ No newline at end of file diff --git a/Yavsc.Abstract/Workflow/IQuery.cs b/Yavsc.Abstract/Workflow/IQuery.cs index dec24f3e..0997100c 100644 --- a/Yavsc.Abstract/Workflow/IQuery.cs +++ b/Yavsc.Abstract/Workflow/IQuery.cs @@ -1,4 +1,4 @@ -namespace Yavsc.Workflow +namespace Yavsc.Abstract.Workflow { using Yavsc; using Yavsc.Billing; diff --git a/Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc7.nupkg b/Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc7.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..641e21c6e228e9b25969c7b5e75b389be8e4f4fd GIT binary patch literal 14449 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.Id). Take(25); diff --git a/Yavsc/ApiControllers/EstimateApiController.cs b/Yavsc/ApiControllers/EstimateApiController.cs index 2d16be4b..18c76747 100644 --- a/Yavsc/ApiControllers/EstimateApiController.cs +++ b/Yavsc/ApiControllers/EstimateApiController.cs @@ -195,7 +195,7 @@ namespace Yavsc.Controllers return Ok(estimate); } - + protected override void Dispose (bool disposing) { if (disposing) diff --git a/Yavsc/ApiControllers/FrontOfficeApiController.cs b/Yavsc/ApiControllers/FrontOfficeApiController.cs index 3c70362f..dbe4a832 100644 --- a/Yavsc/ApiControllers/FrontOfficeApiController.cs +++ b/Yavsc/ApiControllers/FrontOfficeApiController.cs @@ -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(); + } } } diff --git a/Yavsc/Controllers/CommandController.cs b/Yavsc/Controllers/CommandController.cs index f807438e..6b78a55e 100644 --- a/Yavsc/Controllers/CommandController.cs +++ b/Yavsc/Controllers/CommandController.cs @@ -70,7 +70,7 @@ namespace Yavsc.Controllers } // GET: Command/Details/5 - public virtual async Task RdvDetails(long id) + public virtual async Task Details(long id) { RdvQuery command = await _context.RdvQueries .Include(x => x.Location) @@ -84,18 +84,18 @@ namespace Yavsc.Controllers return View(command); } - [Authorize] /// /// Gives a view on /// Creating a command for a specified performer /// /// /// - 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 Create(RdvQuery command) { diff --git a/Yavsc/Controllers/Haircut/HairCutCommandController.cs b/Yavsc/Controllers/Haircut/HairCutCommandController.cs index 7b14c994..891910f0 100644 --- a/Yavsc/Controllers/Haircut/HairCutCommandController.cs +++ b/Yavsc/Controllers/Haircut/HairCutCommandController.cs @@ -45,6 +45,7 @@ namespace Yavsc.Controllers this.payPalSettings = payPalSettings.Value; } PayPalSettings payPalSettings; + private async Task GetQuery(long id) { var query = await _context.HairCutQueries diff --git a/Yavsc/Helpers/EventHelpers.cs b/Yavsc/Helpers/EventHelpers.cs index 07f091b5..46fd37e1 100644 --- a/Yavsc/Helpers/EventHelpers.cs +++ b/Yavsc/Helpers/EventHelpers.cs @@ -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; } diff --git a/Yavsc/Migrations/20180209144114_rejectQuery.Designer.cs b/Yavsc/Migrations/20180209144114_rejectQuery.Designer.cs new file mode 100644 index 00000000..5e5c15ad --- /dev/null +++ b/Yavsc/Migrations/20180209144114_rejectQuery.Designer.cs @@ -0,0 +1,1772 @@ +using System; +using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; +using Yavsc.Models; + +namespace Yavsc.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20180209144114_rejectQuery")] + partial class rejectQuery + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "7.0.0-rc1-16348"); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b => + { + b.Property("Id"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .HasAnnotation("Relational:Name", "RoleNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasAnnotation("Relational:TableName", "AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasAnnotation("Relational:TableName", "AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasAnnotation("Relational:TableName", "AspNetUserRoles"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.Property("CircleId"); + + b.Property("BlogPostId"); + + b.HasKey("CircleId", "BlogPostId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.Property("UserId"); + + b.Property("ContactCredits"); + + b.Property("Credits"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("Avatar") + .HasAnnotation("MaxLength", 512) + .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("BankInfoId"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("DedicatedGoogleCalendar"); + + b.Property("DiskQuota") + .HasAnnotation("Relational:DefaultValue", "524288000") + .HasAnnotation("Relational:DefaultValueType", "System.Int64"); + + b.Property("DiskUsage"); + + b.Property("Email") + .HasAnnotation("MaxLength", 256); + + b.Property("EmailConfirmed"); + + b.Property("FullName") + .HasAnnotation("MaxLength", 512); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("MaxFileSize"); + + b.Property("NormalizedEmail") + .HasAnnotation("MaxLength", 256); + + b.Property("NormalizedUserName") + .HasAnnotation("MaxLength", 256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("PostalAddressId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasAnnotation("MaxLength", 256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasAnnotation("Relational:Name", "EmailIndex"); + + b.HasIndex("NormalizedUserName") + .HasAnnotation("Relational:Name", "UserNameIndex"); + + b.HasAnnotation("Relational:TableName", "AspNetUsers"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.Client", b => + { + b.Property("Id"); + + b.Property("Active"); + + b.Property("DisplayName"); + + b.Property("LogoutRedirectUri") + .HasAnnotation("MaxLength", 100); + + b.Property("RedirectUri"); + + b.Property("RefreshTokenLifeTime"); + + b.Property("Secret"); + + b.Property("Type"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b => + { + b.Property("Id"); + + b.Property("ClientId") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.Property("ExpiresUtc"); + + b.Property("IssuedUtc"); + + b.Property("ProtectedTicket") + .IsRequired(); + + b.Property("Subject") + .IsRequired() + .HasAnnotation("MaxLength", 50); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("BalanceId") + .IsRequired(); + + b.Property("ExecDate"); + + b.Property("Impact"); + + b.Property("Reason") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccountNumber") + .HasAnnotation("MaxLength", 15); + + b.Property("BIC") + .HasAnnotation("MaxLength", 15); + + b.Property("BankCode") + .HasAnnotation("MaxLength", 5); + + b.Property("BankedKey"); + + b.Property("IBAN") + .HasAnnotation("MaxLength", 33); + + b.Property("WicketCode") + .HasAnnotation("MaxLength", 5); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Count"); + + b.Property("Currency"); + + b.Property("Description") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("EstimateId"); + + b.Property("EstimateTemplateId"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 256); + + b.Property("UnitaryCost"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AttachedFilesString"); + + b.Property("AttachedGraphicsString"); + + b.Property("ClientId") + .IsRequired(); + + b.Property("ClientValidationDate"); + + b.Property("CommandId"); + + b.Property("CommandType") + .IsRequired(); + + b.Property("Description"); + + b.Property("OwnerId"); + + b.Property("ProviderValidationDate"); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("OwnerId") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b => + { + b.Property("SIREN"); + + b.HasKey("SIREN"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog.BlogPost", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId"); + + b.Property("Content") + .HasAnnotation("MaxLength", 56224); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Photo") + .HasAnnotation("MaxLength", 1024); + + b.Property("Rate"); + + b.Property("Title") + .HasAnnotation("MaxLength", 1024); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog.BlogTag", b => + { + b.Property("PostId"); + + b.Property("TagId"); + + b.HasKey("PostId", "TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog.Comment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuthorId") + .IsRequired(); + + b.Property("Content"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("ParentId"); + + b.Property("PostId"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("Visible"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Calendar.Period", b => + { + b.Property("Start"); + + b.Property("End"); + + b.HasKey("Start", "End"); + }); + + modelBuilder.Entity("Yavsc.Models.Calendar.Schedule", b => + { + b.Property("OwnerId"); + + b.HasKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Calendar.ScheduledEvent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("PeriodEnd"); + + b.Property("PeriodStart"); + + b.Property("Reccurence"); + + b.Property("ScheduleOwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.ChatConnection", b => + { + b.Property("ConnectionId"); + + b.Property("ApplicationUserId") + .IsRequired(); + + b.Property("Connected"); + + b.Property("UserAgent"); + + b.HasKey("ConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.ChatRoom", b => + { + b.Property("Name") + .HasAnnotation("MaxLength", 255); + + b.Property("ApplicationUserId"); + + b.Property("Topic") + .HasAnnotation("MaxLength", 1023); + + b.HasKey("Name"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.ChatRoomPresence", b => + { + b.Property("ChannelName"); + + b.Property("ChatUserConnectionId"); + + b.Property("Level"); + + b.HasKey("ChannelName", "ChatUserConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Cratie.Option", b => + { + b.Property("Code"); + + b.Property("CodeScrutin"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code", "CodeScrutin"); + }); + + modelBuilder.Entity("Yavsc.Models.Drawing.Color", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Blue"); + + b.Property("Green"); + + b.Property("Name"); + + b.Property("Red"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Forms.Form", b => + { + b.Property("Id"); + + b.Property("Summary"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.Property("UserId"); + + b.Property("ActionDistance"); + + b.Property("CarePrice"); + + b.Property("FlatFeeDiscount"); + + b.Property("HalfBalayagePrice"); + + b.Property("HalfBrushingPrice"); + + b.Property("HalfColorPrice"); + + b.Property("HalfDefrisPrice"); + + b.Property("HalfFoldingPrice"); + + b.Property("HalfMechPrice"); + + b.Property("HalfMultiColorPrice"); + + b.Property("HalfPermanentPrice"); + + b.Property("KidCutPrice"); + + b.Property("LongBalayagePrice"); + + b.Property("LongBrushingPrice"); + + b.Property("LongColorPrice"); + + b.Property("LongDefrisPrice"); + + b.Property("LongFoldingPrice"); + + b.Property("LongMechPrice"); + + b.Property("LongMultiColorPrice"); + + b.Property("LongPermanentPrice"); + + b.Property("ManBrushPrice"); + + b.Property("ManCutPrice"); + + b.Property("ScheduleOwnerId"); + + b.Property("ShampooPrice"); + + b.Property("ShortBalayagePrice"); + + b.Property("ShortBrushingPrice"); + + b.Property("ShortColorPrice"); + + b.Property("ShortDefrisPrice"); + + b.Property("ShortFoldingPrice"); + + b.Property("ShortMechPrice"); + + b.Property("ShortMultiColorPrice"); + + b.Property("ShortPermanentPrice"); + + b.Property("WomenHalfCutPrice"); + + b.Property("WomenLongCutPrice"); + + b.Property("WomenShortCutPrice"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("AdditionalInfo") + .HasAnnotation("MaxLength", 512); + + b.Property("ClientId") + .IsRequired(); + + b.Property("Consent"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PaymentId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("PrestationId"); + + b.Property("Previsional"); + + b.Property("Rejected"); + + b.Property("RejectedAt"); + + b.Property("SelectedProfileUserId"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("Consent"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("PaymentId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Rejected"); + + b.Property("RejectedAt"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Cares"); + + b.Property("Cut"); + + b.Property("Dressing"); + + b.Property("Gender"); + + b.Property("Length"); + + b.Property("Shampoo"); + + b.Property("Tech"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestationCollectionItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("PrestationId"); + + b.Property("QueryId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Brand"); + + b.Property("ColorId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaintInstance", b => + { + b.Property("TaintId"); + + b.Property("PrestationId"); + + b.HasKey("TaintId", "PrestationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.Property("DeviceId"); + + b.Property("DeclarationDate") + .ValueGeneratedOnAdd() + .HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP"); + + b.Property("DeviceOwnerId"); + + b.Property("GCMRegistrationId") + .IsRequired(); + + b.Property("Model"); + + b.Property("Platform"); + + b.Property("Version"); + + b.HasKey("DeviceId"); + }); + + modelBuilder.Entity("Yavsc.Models.IT.Fixing.Bug", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("FeatureId"); + + b.Property("Status"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.IT.Maintaining.Feature", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("ShortName"); + + b.Property("Status"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Depth"); + + b.Property("Description"); + + b.Property("Height"); + + b.Property("Name"); + + b.Property("Price"); + + b.Property("Public"); + + b.Property("Weight"); + + b.Property("Width"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ContextId"); + + b.Property("Description"); + + b.Property("Name"); + + b.Property("Public"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Announce", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("For"); + + b.Property("Message"); + + b.Property("OwnerId"); + + b.Property("Sender"); + + b.Property("Topic"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.ClientProviderInfo", b => + { + b.Property("UserId"); + + b.Property("Avatar"); + + b.Property("BillingAddressId"); + + b.Property("EMail"); + + b.Property("Phone"); + + b.Property("UserName"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.Property("UserId"); + + b.Property("NotificationId"); + + b.HasKey("UserId", "NotificationId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Target"); + + b.Property("body") + .IsRequired(); + + b.Property("click_action") + .IsRequired(); + + b.Property("color"); + + b.Property("icon") + .HasAnnotation("Relational:DefaultValue", "exclam") + .HasAnnotation("Relational:DefaultValueType", "System.String"); + + b.Property("sound"); + + b.Property("tag"); + + b.Property("title") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Instrument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.Property("OwnerProfileId"); + + b.Property("DjSettingsUserId"); + + b.Property("GeneralSettingsUserId"); + + b.Property("Rate"); + + b.Property("TendencyId"); + + b.HasKey("OwnerProfileId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalTendency", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 255); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.DjSettings", b => + { + b.Property("UserId"); + + b.Property("SoundCloudId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.GeneralSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.Property("InstrumentId"); + + b.Property("UserId"); + + b.HasKey("InstrumentId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b => + { + b.Property("UserId"); + + b.Property("AccessToken"); + + b.Property("Expiration"); + + b.Property("ExpiresIn"); + + b.Property("RefreshToken"); + + b.Property("TokenType"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Payment.PayPalPayment", b => + { + b.Property("CreationToken"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("ExecutorId") + .IsRequired(); + + b.Property("OrderReference"); + + b.Property("PaypalPayerId"); + + b.Property("State"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("CreationToken"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ApplicationUserId"); + + b.Property("Name"); + + b.Property("OwnerId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.Property("MemberId"); + + b.Property("CircleId"); + + b.HasKey("MemberId", "CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.Property("OwnerId"); + + b.Property("UserId"); + + b.Property("ApplicationUserId"); + + b.HasKey("OwnerId", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.HyperLink", b => + { + b.Property("HRef"); + + b.Property("Method"); + + b.Property("BrusherProfileUserId"); + + b.Property("ContentType"); + + b.Property("PayPalPaymentCreationToken"); + + b.Property("Rel"); + + b.HasKey("HRef", "Method"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Address") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("Latitude"); + + b.Property("Longitude"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.LocationType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("Rate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.Property("Code") + .HasAnnotation("MaxLength", 512); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("Description"); + + b.Property("Hidden"); + + b.Property("ModeratorGroupName"); + + b.Property("Name") + .IsRequired() + .HasAnnotation("MaxLength", 512); + + b.Property("ParentCode") + .HasAnnotation("MaxLength", 512); + + b.Property("Photo"); + + b.Property("Rate"); + + b.Property("SettingsClassName"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.HasKey("Code"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActionName"); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("Title"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormationSettingsUserId"); + + b.Property("PerformerId"); + + b.Property("WorkingForId"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.Property("PerformerId"); + + b.Property("AcceptNotifications"); + + b.Property("AcceptPublicContact"); + + b.Property("Active"); + + b.Property("MaxDailyCost"); + + b.Property("MinDailyCost"); + + b.Property("OrganizationAddressId"); + + b.Property("Rate"); + + b.Property("SIREN") + .IsRequired() + .HasAnnotation("MaxLength", 14); + + b.Property("UseGeoLocalizationToReduceDistanceWithClients"); + + b.Property("WebSite"); + + b.HasKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Profiles.FormationSettings", b => + { + b.Property("UserId"); + + b.HasKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ActivityCode") + .IsRequired(); + + b.Property("ClientId") + .IsRequired(); + + b.Property("Consent"); + + b.Property("DateCreated"); + + b.Property("DateModified"); + + b.Property("EventDate"); + + b.Property("LocationId"); + + b.Property("LocationTypeId"); + + b.Property("PaymentId"); + + b.Property("PerformerId") + .IsRequired(); + + b.Property("Previsional"); + + b.Property("Reason"); + + b.Property("Rejected"); + + b.Property("RejectedAt"); + + b.Property("Status"); + + b.Property("UserCreated"); + + b.Property("UserModified"); + + b.Property("ValidationDate"); + + b.HasKey("Id"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.Property("DoesCode"); + + b.Property("UserId"); + + b.Property("Weight"); + + b.HasKey("DoesCode", "UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole") + .WithMany() + .HasForeignKey("RoleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b => + { + b.HasOne("Yavsc.Models.Blog.BlogPost") + .WithMany() + .HasForeignKey("BlogPostId"); + + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + }); + + modelBuilder.Entity("Yavsc.Models.AccountBalance", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithOne() + .HasForeignKey("Yavsc.Models.AccountBalance", "UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.ApplicationUser", b => + { + b.HasOne("Yavsc.Models.Bank.BankIdentity") + .WithMany() + .HasForeignKey("BankInfoId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("PostalAddressId"); + }); + + modelBuilder.Entity("Yavsc.Models.BalanceImpact", b => + { + b.HasOne("Yavsc.Models.AccountBalance") + .WithMany() + .HasForeignKey("BalanceId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b => + { + b.HasOne("Yavsc.Models.Billing.Estimate") + .WithMany() + .HasForeignKey("EstimateId"); + + b.HasOne("Yavsc.Models.Billing.EstimateTemplate") + .WithMany() + .HasForeignKey("EstimateTemplateId"); + }); + + modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Workflow.RdvQuery") + .WithMany() + .HasForeignKey("CommandId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog.BlogPost", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog.BlogTag", b => + { + b.HasOne("Yavsc.Models.Blog.BlogPost") + .WithMany() + .HasForeignKey("PostId"); + + b.HasOne("Yavsc.Models.Relationship.Tag") + .WithMany() + .HasForeignKey("TagId"); + }); + + modelBuilder.Entity("Yavsc.Models.Blog.Comment", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("AuthorId"); + + b.HasOne("Yavsc.Models.Blog.Comment") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("Yavsc.Models.Blog.BlogPost") + .WithMany() + .HasForeignKey("PostId"); + }); + + modelBuilder.Entity("Yavsc.Models.Calendar.Schedule", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Calendar.ScheduledEvent", b => + { + b.HasOne("Yavsc.Models.Calendar.Schedule") + .WithMany() + .HasForeignKey("ScheduleOwnerId"); + + b.HasOne("Yavsc.Models.Calendar.Period") + .WithMany() + .HasForeignKey("PeriodStart", "PeriodEnd"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.ChatConnection", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.ChatRoom", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Chat.ChatRoomPresence", b => + { + b.HasOne("Yavsc.Models.Chat.ChatRoom") + .WithMany() + .HasForeignKey("ChannelName"); + + b.HasOne("Yavsc.Models.Chat.ChatConnection") + .WithMany() + .HasForeignKey("ChatUserConnectionId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b => + { + b.HasOne("Yavsc.Models.Calendar.Schedule") + .WithMany() + .HasForeignKey("ScheduleOwnerId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Payment.PayPalPayment") + .WithMany() + .HasForeignKey("PaymentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + + b.HasOne("Yavsc.Models.Haircut.BrusherProfile") + .WithMany() + .HasForeignKey("SelectedProfileUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairMultiCutQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Payment.PayPalPayment") + .WithMany() + .HasForeignKey("PaymentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairPrestationCollectionItem", b => + { + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + + b.HasOne("Yavsc.Models.Haircut.HairMultiCutQuery") + .WithMany() + .HasForeignKey("QueryId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaint", b => + { + b.HasOne("Yavsc.Models.Drawing.Color") + .WithMany() + .HasForeignKey("ColorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Haircut.HairTaintInstance", b => + { + b.HasOne("Yavsc.Models.Haircut.HairPrestation") + .WithMany() + .HasForeignKey("PrestationId"); + + b.HasOne("Yavsc.Models.Haircut.HairTaint") + .WithMany() + .HasForeignKey("TaintId"); + }); + + modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("DeviceOwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.IT.Fixing.Bug", b => + { + b.HasOne("Yavsc.Models.IT.Maintaining.Feature") + .WithMany() + .HasForeignKey("FeatureId"); + }); + + modelBuilder.Entity("Yavsc.Models.Market.Service", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ContextId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.Announce", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Messaging.DimissClicked", b => + { + b.HasOne("Yavsc.Models.Messaging.Notification") + .WithMany() + .HasForeignKey("NotificationId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.MusicalPreference", b => + { + b.HasOne("Yavsc.Models.Musical.Profiles.DjSettings") + .WithMany() + .HasForeignKey("DjSettingsUserId"); + + b.HasOne("Yavsc.Models.Musical.Profiles.GeneralSettings") + .WithMany() + .HasForeignKey("GeneralSettingsUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Musical.Profiles.Instrumentation", b => + { + b.HasOne("Yavsc.Models.Musical.Instrument") + .WithMany() + .HasForeignKey("InstrumentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Payment.PayPalPayment", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ExecutorId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Circle", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.CircleMember", b => + { + b.HasOne("Yavsc.Models.Relationship.Circle") + .WithMany() + .HasForeignKey("CircleId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("MemberId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.Contact", b => + { + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ApplicationUserId"); + }); + + modelBuilder.Entity("Yavsc.Models.Relationship.HyperLink", b => + { + b.HasOne("Yavsc.Models.Haircut.BrusherProfile") + .WithMany() + .HasForeignKey("BrusherProfileUserId"); + + b.HasOne("Yavsc.Models.Payment.PayPalPayment") + .WithMany() + .HasForeignKey("PayPalPaymentCreationToken"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.Activity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ParentCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CommandForm", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.CoWorking", b => + { + b.HasOne("Yavsc.Models.Workflow.Profiles.FormationSettings") + .WithMany() + .HasForeignKey("FormationSettingsUserId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("WorkingForId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b => + { + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("OrganizationAddressId"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.RdvQuery", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("ActivityCode"); + + b.HasOne("Yavsc.Models.ApplicationUser") + .WithMany() + .HasForeignKey("ClientId"); + + b.HasOne("Yavsc.Models.Relationship.Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("Yavsc.Models.Relationship.LocationType") + .WithMany() + .HasForeignKey("LocationTypeId"); + + b.HasOne("Yavsc.Models.Payment.PayPalPayment") + .WithMany() + .HasForeignKey("PaymentId"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("PerformerId"); + }); + + modelBuilder.Entity("Yavsc.Models.Workflow.UserActivity", b => + { + b.HasOne("Yavsc.Models.Workflow.Activity") + .WithMany() + .HasForeignKey("DoesCode"); + + b.HasOne("Yavsc.Models.Workflow.PerformerProfile") + .WithMany() + .HasForeignKey("UserId"); + }); + } + } +} diff --git a/Yavsc/Migrations/20180209144114_rejectQuery.cs b/Yavsc/Migrations/20180209144114_rejectQuery.cs new file mode 100644 index 00000000..1d2412f4 --- /dev/null +++ b/Yavsc/Migrations/20180209144114_rejectQuery.cs @@ -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_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_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( + name: "Rejected", + table: "RdvQuery", + nullable: false, + defaultValue: false); + migrationBuilder.AddColumn( + name: "RejectedAt", + table: "RdvQuery", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + migrationBuilder.AlterColumn( + name: "BillingAddressId", + table: "ClientProviderInfo", + nullable: false); + migrationBuilder.AlterColumn( + name: "For", + table: "Announce", + nullable: false); + migrationBuilder.AddColumn( + name: "Rejected", + table: "HairMultiCutQuery", + nullable: false, + defaultValue: false); + migrationBuilder.AddColumn( + name: "RejectedAt", + table: "HairMultiCutQuery", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + migrationBuilder.AddColumn( + name: "Rejected", + table: "HairCutQuery", + nullable: false, + defaultValue: false); + migrationBuilder.AddColumn( + name: "RejectedAt", + table: "HairCutQuery", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + migrationBuilder.AlterColumn( + name: "OwnerId", + table: "Estimate", + nullable: true); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_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_IdentityRole_RoleId", table: "AspNetRoleClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim_ApplicationUser_UserId", table: "AspNetUserClaims"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin_ApplicationUser_UserId", table: "AspNetUserLogins"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_IdentityRole_RoleId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole_ApplicationUser_UserId", table: "AspNetUserRoles"); + migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed"); + migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_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( + name: "BillingAddressId", + table: "ClientProviderInfo", + nullable: true); + migrationBuilder.AlterColumn( + name: "For", + table: "Announce", + nullable: false); + migrationBuilder.AlterColumn( + name: "OwnerId", + table: "Estimate", + nullable: false); + migrationBuilder.AddForeignKey( + name: "FK_IdentityRoleClaim_IdentityRole_RoleId", + table: "AspNetRoleClaims", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserClaim_ApplicationUser_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserLogin_ApplicationUser_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_IdentityRole_RoleId", + table: "AspNetUserRoles", + column: "RoleId", + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_IdentityUserRole_ApplicationUser_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_BlackListed_ApplicationUser_OwnerId", + table: "BlackListed", + column: "OwnerId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + migrationBuilder.AddForeignKey( + name: "FK_CircleAuthorizationToBlogPost_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); + } + } +} diff --git a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs index f76a0c11..7abb946e 100644 --- a/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Yavsc/Migrations/ApplicationDbContextModelSnapshot.cs @@ -1,6 +1,8 @@ using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Infrastructure; +using Microsoft.Data.Entity.Metadata; +using Microsoft.Data.Entity.Migrations; using Yavsc.Models; namespace Yavsc.Migrations @@ -349,8 +351,7 @@ namespace Yavsc.Migrations b.Property("Description"); - b.Property("OwnerId") - .IsRequired(); + b.Property("OwnerId"); b.Property("ProviderValidationDate"); @@ -672,6 +673,10 @@ namespace Yavsc.Migrations b.Property("Previsional"); + b.Property("Rejected"); + + b.Property("RejectedAt"); + b.Property("SelectedProfileUserId"); b.Property("Status"); @@ -713,6 +718,10 @@ namespace Yavsc.Migrations b.Property("Previsional"); + b.Property("Rejected"); + + b.Property("RejectedAt"); + b.Property("Status"); b.Property("UserCreated"); @@ -874,7 +883,7 @@ namespace Yavsc.Migrations b.Property("Id") .ValueGeneratedOnAdd(); - b.Property("For"); + b.Property("For"); b.Property("Message"); @@ -893,7 +902,7 @@ namespace Yavsc.Migrations b.Property("Avatar"); - b.Property("BillingAddressId"); + b.Property("BillingAddressId"); b.Property("EMail"); @@ -1279,6 +1288,10 @@ namespace Yavsc.Migrations b.Property("Reason"); + b.Property("Rejected"); + + b.Property("RejectedAt"); + b.Property("Status"); b.Property("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") diff --git a/Yavsc/Models/Billing/NominativeServiceCommand.cs b/Yavsc/Models/Billing/NominativeServiceCommand.cs index 6d772ea4..f86d231d 100644 --- a/Yavsc/Models/Billing/NominativeServiceCommand.cs +++ b/Yavsc/Models/Billing/NominativeServiceCommand.cs @@ -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 + public abstract class NominativeServiceCommand : IBaseTrackedEntity, INominativeQuery, IIdentified { 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 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; - } } } diff --git a/Yavsc/Models/HairCut/HairCutQuery.cs b/Yavsc/Models/HairCut/HairCutQuery.cs index 7e7b4aab..d8056649 100644 --- a/Yavsc/Models/HairCut/HairCutQuery.cs +++ b/Yavsc/Models/HairCut/HairCutQuery.cs @@ -402,7 +402,8 @@ Prestation.Gender == HairCutGenders.Women ? Id = Id, ActivityCode = ActivityCode, Reason = reason, - Sender = Client.GetSender() + Sender = sender, + BillingCode = BillingCodes.Brush }; return yaev; } diff --git a/Yavsc/Resources/Yavsc.Models.Billing.NominativeServiceCommand.resx b/Yavsc/Resources/Yavsc.Models.Billing.NominativeServiceCommand.resx new file mode 100644 index 00000000..ba2fbfd1 --- /dev/null +++ b/Yavsc/Resources/Yavsc.Models.Billing.NominativeServiceCommand.resx @@ -0,0 +1,491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + À propos de + À propos de BookAStar + Bienvenue chez vos stars. + Accès refusé + Accepter la notification d'une demande de rendez-vous + Accepter les prises de contact de la part de particuliers + Balance du compte + Activer mon profil professionnel + Activité + Activités + de plus + Adresse + Autoriser ma geolocatisation, auprès de mes clients + Un message instantané a été envoyé à {0}, + lui présentant votre demande. Vous devriez être contacté très rapidement. + une prestation + Approuvé + Demander un devis + Fichiers attachées + Seuls les utilisateurs authentifiés peuvent accèder à cette information. + Auteur + disponible + Retour à la liste + Panier + Édition d'un article + Suppression d'un article + Contrôle d'accès à l'article + Article créé + Code source de l'article + Article mis à jour + Édition d'un article + corps de texte + Proposez un rendez-vous à votre artiste + Proposez un rendez-vous à votre prestataire de services du numérique + Reserver les services d'un artiste + Reserver les services d'un éditeur de logiciel + Calendrier + Catalogue + Changer + Formulaire de changement de pseudonyme (avatar, le nom publique de ce compte utilisateur ici) + Modifiez les paramètres de votre compte + Se connecter en utilisant + Choisissez ci-après votre activité principale + S'il vous plait, choisissez une description. + S'il vous plait, choisissez un titre. + S'il vous plait, choisissez une date dans le futur. + S'il vous plait, choisissez une date pour cette prestation. + Chiffre + Cercles + Action sur click + Cliquez ici pour vous identifier + Couleur + Commande + Confirmation de commande + Commentaire + Consultant + Contactez un préstataire + Contenu + Nombre + La convertion de '{0}' en 'double' a été impossible. + Créer + Créer un nouvel article + Créer un nouveau compte + Crédits + Demande de rendez-vous + Date de création + Date de dernière modification + Base de données + Défrisage + Détails + Supprimer + Arrhes + Description + Faire un devis + Commenter + + Votre commentaire + Ne pas publier mon activité + S'il vous plait, spécifiez ceux de vos cercles à qui est destiné ce contenu + Une erreur est survenue à la génération de votre document + Nom affiché + Désactiver + Désactivé + Poster + Tagger + Éditer + Edité + Editer les compétences associées + Activé + Activer + Date de fin + Heure de fin + e-mail + Saisissez votre email. + Saisissez votre nom d'utilisateur ou email. + entrées + Estimer + Devis non trouvé + Demandes de Devis en souffrance + Devis à valider + Devis à accèpter ou refuser + {0} à validé et évalué votre demande, avec un devis à {1:C} + + Date de l'évennement + + Factures à produire + Factures à honnorer + + Demande de devis + Date de l'évennement + Page web de l'événement + Base de données éxistante + Inscriptions externes + Veuillez, s'il vous plait, utiliser une date future. + Saisir vos coordonées bancaires + Saisissez votre demande de rendez-vous + Contenu à accès restreint + Mot de passe perdu? + Confirmation mot de passe perdu. + provenant de + Nom complet + L'envoi du message push a échoué, mais un e-mail a été envoyé + Message push envoyé + L'evoi du message Google Cloud a échoué ... + Dites en plus, ci àprès, à propos de cet évennement + Google n'a pas pu identifier ce lieu + Agenda Google + Erreur Google : {0} + Identifiant d'enregistrement Google + mi-long + Coiffure à domicile + Préstation en coiffure à domicile + Une demande (de {0}) en coiffure à domicile vient d'être validée + Cacher le texte source de l'article + Accueil + Cacher + caché + J'ai compris + Icône + Les icônes fabriqués par + Identité + URI de l'image + Exception à l'import + Erreur serveur interne + Numéro de SIREN invalide + vous demande un rendez-vous + sont sous licence + Article ajouté au panier. + Enfant + Lieu + Connection + Nom d'utilisateur ou e-mail + + Se connecter + Déconnection + long + Activité principale + Homme + Gérer + Gérez votre inscription + Compétences gérée sur ce site + Date maximale du rendez-vous + Coût maximal journalier + Code d'Activité Principalement Exercée + Mêches + Membres + Votre message a été envoyé + Date minimale du rendez-vous + Coût minimal journalier + MinDailyCost + Modifié + Modifier + Modifier les paramètres + Mes estimations + Nom + Besoins + Besoin + Nouveau nom d'utilisateur (avatar) + Nouveau Tag + Un e-mail vient de vous être envoyé, il contient le lien à suivre + pour pouvoir mettre à jour votre mot de passe. + Non + Pas de technique spécifiée + Le préstataire n'a pas de calendrier associé. + pas de contenu + Aucune arrhes n'a été prévue + aucun(e) + Non existent user + Aucune compétence n'a été enregistrée par aucun préstataire pour cette activité. + Non approuvé + Non validée + Non validé + inactif + Hors ligne + actif + En ligne + Seuls les utilisateurs authorisés peuvent contacter un préstataire par courrier. + Mot de passe + Confirmation de paiement + Paiements effectués + Identifiant de paiement + Version Pdf + Date de la prestation + Lieu de la pestation + Perstataires + Préstataire + Profile préstataire + Permanante + Personne + Photo + Photo mise à jour + S'il vous plait + S'il vous plait, veuillez verifier votre boite au lettres, pour pouvoir ré-initialiser votre mot de passe. + S'il vous plait, veuillez confirmer votre nouveau mot de passe. + S'il vous plait, saisissez un corps de message + S'il vous plait, saisissez une réson, un sujet pour votre message + Veuillez s'il vous plait utiliser le lien suivant pour ré-initialiser votre mot de passe: + Posté + Date souhaitée + Lieu de la présation: {0}.\n + PrévisualiserPrévisualiser le document + Édition du profil + Référence produit + prestation + Paramètres professionels + Fournisseur + Identifiant du fournisseur + Nom du fournisseur + Cote + {0} vous demande une intervention le {1} à {2} ({3}) + Lire la suite ... + raison + S'inscrire + S'inscrire comme nouvel utilisateur + Une erreur inattendue s'est produite: + "{0}". + Veuillez pardonner la gêne occasionnée + Se souvenir du mot de passe + Supprimer + Supprimer mon profil professionnel + Rôle + Ré-initialiser votre mot de passe + Confirmation de ré-initialiser du mot de passe + Rôle créé + Nom du rôle + Enregistrer ces paramètres + Chercher + Selectioner un calendrier Google + Envoyer + Envoyer un message privé + Envoyer un message publique + Positioner + Classe du paramétrage + court + Son blog + Votre profil professionel + Positionnez ci-après vos les paramêtre de votre activité + Talents/Compétences/Spécialités gérés sur ce site + Compétence + Talents/Compétences/Spécialités + {0} désirerait un devis concernant {1} + Son + Specify a latitude + Specify a longitude + S'il vous plait, veuillez spécifier un lieu. + Please, specify a valid latitude. + Date de début + La date de fin doit être postérieure à la date de début. + Heure de début + Soumettre + Envoyer les modifications + Tag + Nom du tag + Version LaTeX + Ce site utilise les cookies + Selon son calendier Google, ce perstataire est disponbile ce + Selon son calendier Google, ce perstataire pourrait ne pas être disponible ce + Ce prestataire n'a pas mis de calendrier à disposition. + Titre + à + Double identification + Coût unitaire + Se désinscrire + Utiliser un compte local pour se connecter + Utiliser un autre service pour se connecter + Utiliser ma position pour avoir des clients plus proches + Liste des utilisateurs + Nom d'utilisateur + Liste des utilisateurs assumant le rôle "{0}" + Talents/compétences/spécialités utilisateur + Le rôle demandé n'est pas assumé par ce préstataire + Date de validation + Voir le texte source de l'article + a été ajouté au rôle + Il n'y avait pas d'utilisateur dans le rôle "{1}". Vous ({0}) avez été ajouté au rôle "{1}". + Site Web + Bienvenue + Femme + {0} à été notifié de votre demande, vous devriez être contacté rapidement + Au vu de son calendrier, + {0} devrait être disponible pour ce rendez-vous + Paramètres musicien (l'instrument) + Paramètres Dj (le compte SoundCloud.com) + Paramètres formation (les partenaires) + Paramètres généraux (visibilité et présentation) + Paramètres coiffeur: tarifs, disponibilité + Oui + Vous devez vous authentifier pour pouvoir demander un devis + à un préstataire. + Vous n'êtes pas administrateur + Votre demande de rendez-vous + Votre mote de passe a été mis à jour. + Vos Devis + Votre activité + Votre besoin + Votre demande a été transmise + Vos talents, vos spécialités, le domaine de vos activités + Vos publications + Votre profil + Votre messge a été envoyé + Dites en plus, ci àprès, à propos de cet évennement + Supprimer mon profil professionel + Français + Anglais + 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. + Ce champ est obligatoire. + Champ invalide ... + Le Mot de passe doit contenir au moins 6 caractères. + Mot de passe doit contenir au moins un caractère spécial (ni un chiffre, ni une lettre). + Les mots de passe doivent contenir au moins un chiffre ('0' à '9'). + Les mots de passe doivent contenir au moins une lettre majuscule ('A' à 'Z'). + Le mot de passe et sa confirmation ne sont pas les mêmes. + Confirmation du mot de passe + L'envoi de de courrier pour confirmation de l'adresse e-mail a échoué. + Un courrier a été envoyé pour confirmation de l'adresse e-mail . + S'il vous plait, confirmez votre addresse e-mail + Vous avez créé avec succès votre compte {0}, +mais votre adresse e-mail reste à confirmer. +Pour ce faire, suivez le lien suivant : <{1}>. + +-- +{0} - {2} <{3}> + Taille maximale: {0} caractère. +Ce champ est +d'au moins {0} et d'au plus {1} caractère(s). +Ce champ est +d'au plus {0} caractère(s) ({1} en excès). +Un message éléctronique a été envoyé au préstataire. +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} +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} + diff --git a/Yavsc/Services/BillingService.cs b/Yavsc/Services/BillingService.cs index 78d1b2d5..87e29563 100644 --- a/Yavsc/Services/BillingService.cs +++ b/Yavsc/Services/BillingService.cs @@ -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 GetBillAsync(string billingCode, long queryId) + public Task 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 GetPerformerSettingsAsync(string activityCode, string userId) diff --git a/Yavsc/Services/IBillingService.cs b/Yavsc/Services/IBillingService.cs index ba06652b..88436d1b 100644 --- a/Yavsc/Services/IBillingService.cs +++ b/Yavsc/Services/IBillingService.cs @@ -2,7 +2,8 @@ namespace Yavsc.Services { using System.Linq; using System.Threading.Tasks; - using Billing; + using Yavsc.Abstract.Workflow; + public interface IBillingService { /// @@ -17,7 +18,7 @@ namespace Yavsc.Services /// Identifiant du type de facturation /// Identifiant de la demande du client /// La facture - Task GetBillAsync(string billingCode, long queryId); + Task GetBillAsync(string billingCode, long queryId); Task> GetPerformersSettingsAsync(string activityCode); Task GetPerformerSettingsAsync(string activityCode, string userId); diff --git a/Yavsc/Startup/Startup.Workflow.cs b/Yavsc/Startup/Startup.Workflow.cs index 351e7889..999c8468 100644 --- a/Yavsc/Startup/Startup.Workflow.cs +++ b/Yavsc/Startup/Startup.Workflow.cs @@ -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 ProfileTypes = new List(); public static List UserSettings = new List(); - public static Dictionary> Billing = - new Dictionary> (); + public static Dictionary> Billing = + new Dictionary> (); + public static INominativeQuery GetBillable(ApplicationDbContext context, string billingCode, long queryId ) => Billing[billingCode](context, queryId); public static Dictionary BillingMap = new Dictionary(); /// @@ -77,7 +79,7 @@ mais n'implemente pas l'interface IQueryable } } - RegisterBilling(BillingCodes.Brush, new Func + RegisterBilling(BillingCodes.Brush, new Func ( ( 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 return query; })) ; - RegisterBilling(BillingCodes.MBrush,new Func + RegisterBilling(BillingCodes.MBrush,new Func ( (db, id) => db.HairMultiCutQueries.Include(q=>q.Regularisation).Single(q=>q.Id == id))); - RegisterBilling(BillingCodes.Rdv, new Func + RegisterBilling(BillingCodes.Rdv, new Func ( (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 return AppDomain.CurrentDomain.GetAssemblies()[0]; } - public static void RegisterBilling(string code, Func getter) where T : IBillable + public static void RegisterBilling(string code, Func getter) where T : IBillable { Billing.Add(code,getter) ; BillingMap.Add(typeof(T).Name,code); diff --git a/Yavsc/Views/Command/Create.cshtml b/Yavsc/Views/Command/Create.cshtml index dd8c6e14..e958017f 100644 --- a/Yavsc/Views/Command/Create.cshtml +++ b/Yavsc/Views/Command/Create.cshtml @@ -196,7 +196,6 @@ @Html.HiddenFor(model=>model.ClientId) @Html.HiddenFor(model=>model.PerformerId) @Html.HiddenFor(model=>model.ActivityCode) - @Html.HiddenFor(model=>model.BillingCode) diff --git a/Yavsc/Views/Command/Index.cshtml b/Yavsc/Views/Command/Index.cshtml index a14b8f99..0c203ece 100644 --- a/Yavsc/Views/Command/Index.cshtml +++ b/Yavsc/Views/Command/Index.cshtml @@ -6,9 +6,6 @@

Index

-

- Create New -

diff --git a/Yavsc/Views/FrontOffice/Profiles.cshtml b/Yavsc/Views/FrontOffice/Profiles.cshtml index 59d48761..e97054ce 100644 --- a/Yavsc/Views/FrontOffice/Profiles.cshtml +++ b/Yavsc/Views/FrontOffice/Profiles.cshtml @@ -9,11 +9,9 @@ @foreach (var profile in Model) {
@Html.DisplayFor(m=>profile) -
- - - - -
+ + @SR["Proposer un rendez-vous à"] @profile.Performer.UserName + } diff --git a/yavsc.code-workspace b/yavsc.code-workspace index 0483b0c0..b7c74444 100644 --- a/yavsc.code-workspace +++ b/yavsc.code-workspace @@ -5,6 +5,9 @@ }, { "path": "Yavsc.Abstract" + }, + { + "path": "YaDaemon" } ], "settings": {