public IList <ObligatedCategoryValue> Map(ObligatedDataToObligatedValueMapTransfer source) { Guard.ArgumentNotNull(() => source, source); Guard.ArgumentNotNull(() => source.ObligatedCategoryValues, source.ObligatedCategoryValues); Guard.ArgumentNotNull(() => source.WeeeDataValues, source.WeeeDataValues); var copyValues = new List <ObligatedCategoryValue>(); source.ObligatedCategoryValues.CopyItemsTo(copyValues); foreach (var weeeObligatedData in source.WeeeDataValues) { var category = copyValues.FirstOrDefault(c => c.CategoryId == weeeObligatedData.CategoryId); if (category != null) { category.B2B = weeeObligatedData.B2B.ToTonnageEditDisplay(); category.B2C = weeeObligatedData.B2C.ToTonnageEditDisplay(); category.Id = weeeObligatedData.Id; } } return(copyValues); }
public ObligatedViewModel Map(ReturnToObligatedViewModelMapTransfer source) { Guard.ArgumentNotNull(() => source, source); var model = new ObligatedViewModel(new ObligatedCategoryValues(), calculator) { SchemeName = (source.SchemeId != new Guid()) ? Task.Run(() => cache.FetchSchemePublicInfoBySchemeId(source.SchemeId)).Result.Name : null, AatfName = Task.Run(() => cache.FetchAatfData(source.OrganisationId, source.AatfId)).Result.Name, AatfId = source.AatfId, OrganisationId = source.OrganisationId, ReturnId = source.ReturnId, SchemeId = source.SchemeId }; var transfer = new ObligatedDataToObligatedValueMapTransfer() { ObligatedCategoryValues = model.CategoryValues }; var existingData = new List <ObligatedCategoryValue>(); if (source.WeeeSentOnId != null) { model.WeeeSentOnId = source.WeeeSentOnId; } if (source.SchemeId != new Guid()) { transfer.WeeeDataValues = source.ReturnData.ObligatedWeeeReceivedData.Where(w => w.Aatf.Id == source.AatfId && w.Scheme.Id == source.SchemeId).ToList(); existingData = obligatedMap.Map(transfer).ToList(); } else if (source.SiteName != null) { transfer.WeeeDataValues = source.ReturnData.ObligatedWeeeSentOnData.Where(w => w.WeeeSentOnId == source.WeeeSentOnId).ToList(); existingData = obligatedMap.Map(transfer).ToList(); } else { transfer.WeeeDataValues = source.ReturnData.ObligatedWeeeReusedData.Where(w => w.Aatf.Id == source.AatfId).ToList(); existingData = obligatedMap.Map(transfer).ToList(); } if (source.SiteName != null) { model.SiteName = source.SiteName; } if (source.PastedData != null) { var obligatedPastedValues = new ObligatedPastedValues { B2B = pasteProcessor.BuildModel(source.PastedData.B2B), B2C = pasteProcessor.BuildModel(source.PastedData.B2C) }; model.CategoryValues = pasteProcessor.ParseObligatedPastedValues(obligatedPastedValues, existingData); } else { model.CategoryValues = existingData; } return(model); }