public async Task <bool> UpdateGeometry( [FromServices] DataContext context, [ModelBinder(BinderType = typeof(JsonWithFilesFormDataModelBinder))] DisponibilizationGeometry model, IFormFile fileGeometry) { var process = await context.DisponibilizationProcesses .AsNoTracking() .FirstOrDefaultAsync(x => x.DisponibilizationProcessId == model.DisponibilizationProcessId); var geometry = await context.DisponibilizationGeometries .AsNoTracking() .FirstOrDefaultAsync(x => x.GeometryId == model.GeometryId); if (model.Type == "Preparação" && process.Task == ProcessTasks.GeometryPreparation) { process.Task = ProcessTasks.TechnicalAnalysis; process.IsPendent = true; EmailSenderDisponibilization.SendEmail("*****@*****.**", "", $"Notificação do Banco de Áreas PCJ - Disponibilização (Processo {process.Protocol})", "", EmailTypes.Geometry); } if (model.Type == "Publicação" && process.Task == ProcessTasks.GeometryPublishing) { process.Task = ProcessTasks.Completion; process.IsPendent = true; EmailSenderDisponibilization.SendEmail("*****@*****.**", "", $"Notificação do Banco de Áreas PCJ - Disponibilização (Processo {process.Protocol})", "", EmailTypes.GeometryPublication); } if (fileGeometry != null) { model.AttachmentPath = await AddFileAttachment(fileGeometry, process.Protocol); } geometry = model; context.Update(geometry); context.Update(process); return((await context.SaveChangesAsync()) > 0); }
public async Task <ActionResult <DisponibilizationGeometry> > PostGeometry( [FromServices] DataContext context, [ModelBinder(BinderType = typeof(JsonWithFilesFormDataModelBinder))] DisponibilizationGeometry model, IFormFile fileGeometry) { if (ModelState.IsValid) { var process = await context.DisponibilizationProcesses .AsNoTracking() .FirstOrDefaultAsync(x => x.DisponibilizationProcessId == model.DisponibilizationProcessId); process.IsPendent = true; if (model.Type == "Preparação") { process.Task = ProcessTasks.TechnicalAnalysis; EmailSenderDisponibilization.SendEmail("*****@*****.**", "", $"Notificação do Banco de Áreas PCJ - Disponibilização (Processo {process.Protocol})", "", EmailTypes.Geometry); } if (model.Type == "Publicação") { process.Task = ProcessTasks.Completion; EmailSenderDisponibilization.SendEmail("*****@*****.**", "", $"Notificação do Banco de Áreas PCJ - Disponibilização (Processo {process.Protocol})", "", EmailTypes.GeometryPublication); } model.AttachmentPath = await AddFileAttachment(fileGeometry, process.Protocol); context.DisponibilizationGeometries.Add(model); context.Update(process); await context.SaveChangesAsync(); return(model); } else { return(BadRequest(ModelState)); } }