コード例 #1
0
        private static ChemicalCompositionViewModel GetValidViewModel()
        {
            var vm = new ChemicalCompositionViewModel();

            vm.WasteComposition = new List <WoodInformationData>();

            return(vm);
        }
コード例 #2
0
        public async Task RdfSrf_Post_BackToOverview_MaintainsRouteValue(bool?backToOverview)
        {
            var wasteComposition = new List <WoodInformationData>();
            var model            = new ChemicalCompositionViewModel()
            {
                ChemicalCompositionType = ChemicalComposition.RDF,
                WasteComposition        = wasteComposition,
                NotificationId          = notificationId
            };
            var result = await chemicalCompositionController.Parameters(model, backToOverview) as RedirectToRouteResult;

            var backToOverviewKey = "backToOverview";

            Assert.True(result.RouteValues.ContainsKey(backToOverviewKey));
            Assert.Equal <bool?>(backToOverview.GetValueOrDefault(),
                                 ((bool?)result.RouteValues[backToOverviewKey]).GetValueOrDefault());
        }
コード例 #3
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 }));
        }
コード例 #4
0
        public ChemicalCompositionViewModel Map(WasteTypeData source,
                                                ICollection <WoodInformationData> parameter)
        {
            var result = new ChemicalCompositionViewModel();

            if (source.WasteAdditionalInformation.Any())
            {
                result.WasteComposition = SetExistingInformations(parameter,
                                                                  source);
            }
            else
            {
                result.WasteComposition = parameter.ToList();
            }

            result.Energy = source.EnergyInformation;

            return(result);
        }
コード例 #5
0
 public async Task Wood_Post_BackToOverview_MaintainsRouteValue(bool? backToOverview)
 {
     var wasteComposition = new List<WoodInformationData>();
     var model = new ChemicalCompositionViewModel()
     {
         ChemicalCompositionType = ChemicalComposition.Wood,
         WasteComposition = wasteComposition,
         NotificationId = notificationId
     };
     var result = await chemicalCompositionController.Parameters(model, backToOverview) as RedirectToRouteResult;
     var backToOverviewKey = "backToOverview";
     Assert.True(result.RouteValues.ContainsKey(backToOverviewKey));
     Assert.Equal<bool?>(backToOverview.GetValueOrDefault(),
         ((bool?)result.RouteValues[backToOverviewKey]).GetValueOrDefault());
 }
コード例 #6
0
        private async Task GetExistingParameters(Guid id, ChemicalComposition chemicalCompositionType, ChemicalCompositionViewModel model)
        {
            var wasteTypeData = await mediator.SendAsync(new GetWasteType(id));

            // If the old data does not exist or corresponds to a different waste type data.
            if (!ContainsCompositionData(wasteTypeData) || wasteTypeData.ChemicalCompositionType != chemicalCompositionType)
            {
                return;
            }

            var compositions = wasteTypeData.WasteAdditionalInformation.Select(c => new WoodInformationData
            {
                WasteInformationType = c.WasteInformationType,
                Constituent          = c.Constituent,
                MinConcentration     = c.MinConcentration.ToString(),
                MaxConcentration     = c.MaxConcentration.ToString()
            }).ToList();

            // Where the waste concentration is not applicable it is not stored.
            var notApplicableCompositions =
                model.WasteComposition.Where(
                    wc =>
                    compositions.All(c => c.WasteInformationType != wc.WasteInformationType)).Select(wc => new WoodInformationData
            {
                WasteInformationType = wc.WasteInformationType,
                Constituent          = wc.Constituent,
                MinConcentration     = NotApplicable,
                MaxConcentration     = NotApplicable
            });

            compositions.AddRange(notApplicableCompositions);

            model.WasteComposition = compositions;

            model.Energy = wasteTypeData.EnergyInformation;

            if (chemicalCompositionType == ChemicalComposition.Wood)
            {
                model.Description = wasteTypeData.WoodTypeDescription;
            }
        }