/// <summary> /// Processes the region population strats. /// </summary> /// <param name="regionPopulationStrats">The region population strats.</param> /// <param name="errors">The errors.</param> private void ProcessRegionPopulationStrats(RegionPopulationStrats regionPopulationStrats, IList <ImportError> errors) { try { if (errors.Any()) { return; } HospitalRegistryService.Save(regionPopulationStrats); } catch (Exception exc) { errors.Add(ImportError.Create(typeof(RegionPopulationStrats).Name, regionPopulationStrats.RegionID.ToString(), (exc.InnerException ?? exc).Message)); } }
/// <summary> /// Processes the values. /// </summary> /// <param name="vals">The vals.</param> /// <param name="errors">The errors.</param> protected override void ProcessValues(string[] vals, IList <ImportError> errors) { vals.ToList().ForEach(TestForEmpty); int sex = int.Parse(vals[1].Trim()); int ageGroup = int.Parse(vals[2].Trim()); int race = int.Parse(vals[3].Trim()); int catid = 0; int catval = 0; if (sex == 0 && ageGroup == 0 && race == 0) { catid = 0; catval = 0; } else if (sex == 0 && ageGroup > 0 && race == 0) { catid = 1; catval = ageGroup; } else if (sex > 0 && ageGroup == 0 && race == 0) { catid = 2; catval = sex; } else if (sex == 0 && ageGroup == 0 && race > 0) { catid = 4; catval = race; } else { errors.Add(new ImportError() { EntityName = "RegionPopulationStrats", ErrorMessage = string.Format("unsupported combination Sex : {0} AgeGroup : {1} Race : {2}", sex, ageGroup, race) }); } if (errors.Any()) { return; } var regionPopulationStrats = new RegionPopulationStrats { RegionType = 0, RegionID = int.Parse(vals[0].Trim()), CatID = catid, CatVal = catval, Year = int.Parse(vals[4].Trim()), Population = int.Parse(vals[5].Trim()) }; if (_previousValues.Any(pop => pop.Item1 == regionPopulationStrats.Year && pop.Item2 == regionPopulationStrats.RegionID && pop.Item3 == regionPopulationStrats.CatID && pop.Item4 == regionPopulationStrats.CatVal)) { errors.Add(new ImportError { EntityName = "RegionPopulationStrats", ErrorMessage = string.Format("duplicate record for a given year ({0}) and Region ID ({1}): CatID : {2} CatVal : {3}", regionPopulationStrats.Year, regionPopulationStrats.RegionID, regionPopulationStrats.CatID, regionPopulationStrats.CatVal) }); } ProcessRegionPopulationStrats(regionPopulationStrats, errors); if (errors == null || !errors.Any()) { _previousValues.Add(new Tuple <int, int, int, int>(regionPopulationStrats.Year, regionPopulationStrats.RegionID, regionPopulationStrats.CatID, regionPopulationStrats.CatVal)); } }