Esempio n. 1
0
        public async Task <ActionResult> Index(Guid id, AnnexViewModel model, Guid?delete)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (delete.HasValue)
            {
                await DeleteAnnex(id, delete.Value);

                return(RedirectToAction("Index"));
            }

            int numberOfAnnexes = 0;

            if (model.ProcessOfGeneration != null && model.ProcessOfGenerationStatus.IsRequired)
            {
                await
                mediator.SendAsync(
                    new SetProcessOfGenerationAnnex(new AnnexUpload(await fileReader.GetFileBytes(model.ProcessOfGeneration, User.GetAccessToken()),
                                                                    Path.GetExtension(model.ProcessOfGeneration.FileName), id)));

                numberOfAnnexes++;
            }

            if (model.TechnologyEmployed != null && model.TechnologyEmployedStatus.IsRequired)
            {
                await
                mediator.SendAsync(
                    new SetTechnologyEmployedAnnex(new AnnexUpload(await fileReader.GetFileBytes(model.TechnologyEmployed, User.GetAccessToken()),
                                                                   Path.GetExtension(model.TechnologyEmployed.FileName), id)));

                numberOfAnnexes++;
            }

            if (model.Composition != null && model.WasteCompositionStatus.IsRequired)
            {
                await
                mediator.SendAsync(
                    new SetWasteCompositionAnnex(new AnnexUpload(await fileReader.GetFileBytes(model.Composition, User.GetAccessToken()),
                                                                 Path.GetExtension(model.Composition.FileName), id)));

                numberOfAnnexes++;
            }

            if (model.Composition != null || model.TechnologyEmployed != null || model.ProcessOfGeneration != null)
            {
                return(RedirectToAction("Success", new { numberOfAnnexes }));
            }

            return(RedirectToAction("Index", "Options"));
        }
        public async Task<ActionResult> Index(Guid id, AnnexViewModel model, Guid? delete)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            if (delete.HasValue)
            {
                await DeleteAnnex(id, delete.Value);

                return RedirectToAction("Index");
            }

            int numberOfAnnexes = 0;

            if (model.ProcessOfGeneration != null && model.ProcessOfGenerationStatus.IsRequired)
            {
                await
                mediator.SendAsync(
                    new SetProcessOfGenerationAnnex(new AnnexUpload(await fileReader.GetFileBytes(model.ProcessOfGeneration),
                        Path.GetExtension(model.ProcessOfGeneration.FileName), id)));
                numberOfAnnexes++;
            }

            if (model.TechnologyEmployed != null && model.TechnologyEmployedStatus.IsRequired)
            {
                await
                    mediator.SendAsync(
                        new SetTechnologyEmployedAnnex(new AnnexUpload(await fileReader.GetFileBytes(model.TechnologyEmployed),
                            Path.GetExtension(model.TechnologyEmployed.FileName), id)));
                numberOfAnnexes++;
            }

            if (model.Composition != null && model.WasteCompositionStatus.IsRequired)
            {
                await
                    mediator.SendAsync(
                        new SetWasteCompositionAnnex(new AnnexUpload(await fileReader.GetFileBytes(model.Composition),
                            Path.GetExtension(model.Composition.FileName), id)));
                numberOfAnnexes++;
            }

            if (model.Composition != null || model.TechnologyEmployed != null || model.ProcessOfGeneration != null)
            {
                return RedirectToAction("Success", new { numberOfAnnexes });
            }

            return RedirectToAction("Index", "Options");
        }