public async Task <ActionResult> PostApplicant( [FromServices] DataContext context, [ModelBinder(BinderType = typeof(JsonWithFilesFormDataModelBinder))] DisponibilizationApplicant model, IFormFile fileGeometry, IFormFile fileImage) { if (ModelState.IsValid) { DisponibilizationProcess process = new DisponibilizationProcess(); DateTime date = DateTime.Now; process.CreatedOn = model.ModifiedOn; process.ModifiedOn = model.ModifiedOn; process.IsPendent = true; process.Protocol = String.Format("{0:yyyyMMddHHmmss}", date); process.TechnicalAnalysis = new DisponibilizationTechnicalAnalysis(); process.Task = ProcessTasks.GeometryPreparation; process.Condition = ProcessConditions.Active; process.CreatedBy = model.ModifiedBy; model.GeometryAttachmentPath = await AddFileAttachment(fileGeometry, process.Protocol); model.ImageAttachmentPath = await AddFileAttachment(fileImage, process.Protocol); process.Applicant = model; context.DisponibilizationProcesses.Add(process); context.DisponibilizationApplicants.Add(model); await context.SaveChangesAsync(); EmailSenderDisponibilization.SendEmail(model.Email, "*****@*****.**", $"Notificação do Banco de Áreas PCJ - Disponibilização (Processo {process.Protocol})", model.FullName, EmailTypes.Begin); return(Ok()); } else { return(BadRequest(ModelState)); } }
public async Task <bool> UpdateApplicant( [FromServices] DataContext context, [ModelBinder(BinderType = typeof(JsonWithFilesFormDataModelBinder))] DisponibilizationApplicant model, IFormFile fileGeometry, IFormFile fileImage) { var applicant = await context.DisponibilizationApplicants .AsNoTracking() .FirstOrDefaultAsync(x => x.ApplicantId == model.ApplicantId); var process = await context.DisponibilizationProcesses .AsNoTracking() .FirstOrDefaultAsync(x => x.ApplicantId == model.ApplicantId); if (fileGeometry != null) { model.GeometryAttachmentPath = await AddFileAttachment(fileGeometry, process.Protocol); } if (fileImage != null) { model.ImageAttachmentPath = await AddFileAttachment(fileImage, process.Protocol); } if (process.Task == ProcessTasks.Adequacy) { process.Task = ProcessTasks.GeometryPreparation; process.IsPendent = true; context.Update(process); EmailSenderDisponibilization.SendEmail(applicant.Email, "*****@*****.**", $"Notificação do Banco de Áreas PCJ - Disponibilização (Processo {process.Protocol})", applicant.FullName, EmailTypes.AdequacyConcluded); } applicant = model; context.Update(applicant); return((await context.SaveChangesAsync()) > 0); }