Exemple #1
0
        public WasteType Map(CreateWasteType source)
        {
            WasteType wasteType;

            switch (source.ChemicalCompositionType)
            {
            case ChemicalComposition.RDF:
                wasteType = WasteType.CreateRdfWasteType(compositionContinuedMapper.Map(source.WasteCompositions));
                break;

            case ChemicalComposition.SRF:
                wasteType = WasteType.CreateSrfWasteType(compositionContinuedMapper.Map(source.WasteCompositions));
                break;

            case ChemicalComposition.Wood:
                wasteType = WasteType.CreateWoodWasteType(source.ChemicalCompositionDescription, compositionContinuedMapper.Map(source.WasteCompositions));
                break;

            case ChemicalComposition.Other:
                wasteType = WasteType.CreateOtherWasteType(source.WasteCompositionName);
                break;

            default:
                throw new InvalidOperationException(string.Format("Unknown Chemical Composition Type: {0}", source));
            }
            return(wasteType);
        }
Exemple #2
0
        public async Task <ActionResult> Parameters(ChemicalCompositionViewModel model, bool?backToOverview = null)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var existingWasteTypeData = await mediator.SendAsync(new GetWasteType(model.NotificationId));

            var filteredWasteCompositions = RemoveNotApplicableValues(model.WasteComposition);

            var createNewWasteType = new CreateWasteType
            {
                NotificationId          = model.NotificationId,
                ChemicalCompositionType = model.ChemicalCompositionType,
                WasteCompositions       = filteredWasteCompositions
            };

            await mediator.SendAsync(createNewWasteType);

            await mediator.SendAsync(new SetEnergy(model.Energy, model.NotificationId));

            bool dataHasChanged = false;

            if (existingWasteTypeData != null)
            {
                dataHasChanged = CheckForChangesInFirstScreen(existingWasteTypeData, filteredWasteCompositions, model.Energy, model.ChemicalCompositionType);
            }

            if (existingWasteTypeData == null || dataHasChanged)
            {
                await this.auditService.AddAuditEntry(this.mediator,
                                                      model.NotificationId,
                                                      User.GetUserId(),
                                                      dataHasChanged == false?NotificationAuditType.Added : NotificationAuditType.Updated,
                                                      NotificationAuditScreenType.ChemicalComposition);
            }

            if (model.ChemicalCompositionType == ChemicalComposition.Wood)
            {
                await mediator.SendAsync(new SetWoodTypeDescription(model.Description, model.NotificationId));
            }

            return(RedirectToAction("Constituents", new { id = model.NotificationId, chemicalCompositionType = model.ChemicalCompositionType, backToOverview }));
        }