diff --git a/Yavsc/ApiControllers/PdfEstimateController.cs b/Yavsc/ApiControllers/PdfEstimateController.cs index d819d88a..d6c10abd 100644 --- a/Yavsc/ApiControllers/PdfEstimateController.cs +++ b/Yavsc/ApiControllers/PdfEstimateController.cs @@ -12,6 +12,7 @@ namespace Yavsc.ApiControllers using System.Threading.Tasks; using Microsoft.Extensions.Logging; using System; + using System.Security.Claims; [Route("api/pdfestimate"), Authorize] public class PdfEstimateController : Controller @@ -80,20 +81,39 @@ namespace Yavsc.ApiControllers [HttpPost("prosign/{id}")] public async Task ProSign(long id) { + var uid = User.GetUserId(); var estimate = dbContext.Estimates.Include( e=>e.Query - ).FirstOrDefault(e=>e.Id == id); - logger.LogWarning("I Was here"); + ).FirstOrDefault(e=>e.Id == id && e.OwnerId == uid ); if (!await authorizationService.AuthorizeAsync(User, estimate, new ViewRequirement())) { return new ChallengeResult(); } if (Request.Form.Files.Count!=1) return new BadRequestResult(); - User.ReceiveProSignature(id,Request.Form.Files[0]); + User.ReceiveSignature(id,Request.Form.Files[0],"pro"); estimate.ProviderValidationDate = DateTime.Now; dbContext.SaveChanges(); return Ok (new { ProviderValidationDate = estimate.ProviderValidationDate }); } + + [HttpPost("clisign/{id}")] + public async Task CliSign(long id) + { + var uid = User.GetUserId(); + var estimate = dbContext.Estimates.Include( e=>e.Query + ).FirstOrDefault( e=> e.Id == id && e.Query.ClientId == uid ); + if (!await authorizationService.AuthorizeAsync(User, estimate, new ViewRequirement())) + { + return new ChallengeResult(); + } + if (Request.Form.Files.Count!=1) + return new BadRequestResult(); + User.ReceiveSignature(id,Request.Form.Files[0],"cli"); + estimate.ClientValidationDate = DateTime.Now; + dbContext.SaveChanges(); + return Ok (new { ClientValidationDate = estimate.ClientValidationDate }); + } + } } \ No newline at end of file diff --git a/Yavsc/Helpers/FileSystemHelpers.cs b/Yavsc/Helpers/FileSystemHelpers.cs index 0a4afa1e..8ef9cd40 100644 --- a/Yavsc/Helpers/FileSystemHelpers.cs +++ b/Yavsc/Helpers/FileSystemHelpers.cs @@ -169,11 +169,10 @@ namespace Yavsc.Helpers dir, xsmallname), ImageFormat.Png); } } - - public static FileRecievedInfo ReceiveProSignature(this ClaimsPrincipal user, long estimateId, IFormFile formFile) + public static FileRecievedInfo ReceiveSignature(this ClaimsPrincipal user, long estimateId, IFormFile formFile, string signtype) { var item = new FileRecievedInfo(); - item.FileName = $"estimate-prosign-{estimateId}.png"; + item.FileName = $"estimate-{signtype}sign-{estimateId}.png"; var destFileName = Path.Combine(Startup.SiteSetup.UserFiles.Bills, item.FileName); var fi = new FileInfo(destFileName);