Example #1
0
        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));
            }
        }
Example #2
0
        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);
        }