private static ChemicalCompositionViewModel GetValidViewModel() { var vm = new ChemicalCompositionViewModel(); vm.WasteComposition = new List <WoodInformationData>(); return(vm); }
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()); }
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 })); }
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); }
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()); }
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; } }