Ejemplo n.º 1
0
        public IList <ObligatedCategoryValue> ParseObligatedPastedValues(ObligatedPastedValues obligatedPastedValues, IList <ObligatedCategoryValue> existingData)
        {
            var categoryValues = (existingData != null) ? existingData : new ObligatedCategoryValues();

            var b2bValuesProvided = obligatedPastedValues.B2B.Any(v => !string.IsNullOrWhiteSpace(v.Tonnage));
            var b2cValuesProvided = obligatedPastedValues.B2C.Any(v => !string.IsNullOrWhiteSpace(v.Tonnage));

            foreach (var category in categoryValues)
            {
                if (b2bValuesProvided)
                {
                    category.B2B = obligatedPastedValues.B2B.Where(o => o.CategoryId == category.CategoryId).FirstOrDefault().Tonnage;
                }

                if (b2cValuesProvided)
                {
                    category.B2C = obligatedPastedValues.B2C.Where(o => o.CategoryId == category.CategoryId).FirstOrDefault().Tonnage;
                }
            }

            return(categoryValues);
        }
        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);
        }