public static long GetQuantityDistrictByYearAndAgeAndDistrictId(ObjectId districtId, ObjectId ageId, int year) { long quantity = 0; if (Memory.DicDistrictQuantity.ContainsKey(year)) { var listSex = GetAllMemory.GetAllSex(); var listJob = GetAllMemory.GetAllJob(); foreach (var job in listJob) { foreach (var sex in listSex) { DistrictQuantityKeys key = new DistrictQuantityKeys { AgeId = ageId, DistrictId = districtId, JobId = job.JobId, SexId = sex.SexId }; if (Memory.DicDistrictQuantity[year].ContainsKey(key)) { quantity += Memory.DicDistrictQuantity[year][key].Quantity; } } } } return(quantity); }
public static long GetQuantityDistrictByYear(DistrictQuantityKeys key, int year) { if (Memory.DicDistrictQuantity.ContainsKey(year)) { if (Memory.DicDistrictQuantity[year].ContainsKey(key)) { return(Memory.DicDistrictQuantity[year][key].Quantity); } } return(0); }
public static DistrictQuantity GetDistrictQuantityByDoubleKey(int year, DistrictQuantityKeys key) { if (!EntityDic.DistrictQuantityDic.ContainsKey(year)) { return(null); } if (!EntityDic.DistrictQuantityDic[year].ContainsKey(key)) { return(null); } return(EntityDic.DistrictQuantityDic[year][key].Clone() as DistrictQuantity); }
public static void Set(DistrictQuantity districtQuantity) { var key = new DistrictQuantityKeys { DistrictId = districtQuantity.DistrictId, SexId = districtQuantity.SexId, JobId = districtQuantity.JobId, AgeId = districtQuantity.AgeId }; if (!Memory.DicDistrictQuantity.ContainsKey(districtQuantity.Year)) { Memory.DicDistrictQuantity[districtQuantity.Year] = new Dictionary <DistrictQuantityKeys, DistrictQuantity>(); } Memory.DicDistrictQuantity[districtQuantity.Year][key] = districtQuantity; }
public static void UpdateDistrictQuantity(List <DistrictQuantity> listData) { foreach (var districtQuantity in listData) { EntityCollection.DistrictQuantityCollection.Update(districtQuantity); var key = new DistrictQuantityKeys { DistrictId = districtQuantity.DistrictId, AgeId = districtQuantity.AgeId, JobId = districtQuantity.JobId, SexId = districtQuantity.SexId }; EntityDic.DistrictQuantityDic[districtQuantity.Year][key] = districtQuantity; } }
public static void Remove(DistrictQuantity districtQuantity) { var key = new DistrictQuantityKeys { DistrictId = districtQuantity.DistrictId, SexId = districtQuantity.SexId, JobId = districtQuantity.JobId, AgeId = districtQuantity.AgeId }; if (Memory.DicDistrictQuantity.ContainsKey(districtQuantity.Year)) { if (Memory.DicDistrictQuantity[districtQuantity.Year].ContainsKey(key)) { Memory.DicDistrictQuantity[districtQuantity.Year].Remove(key); } } }
public static void LoadDistrictQuantity() { var listDistrictQuantity = EntityCollection.DistrictQuantityCollection.ToList(); foreach (var districtQuantity in listDistrictQuantity) { var key = new DistrictQuantityKeys { DistrictId = districtQuantity.DistrictId, AgeId = districtQuantity.AgeId, JobId = districtQuantity.JobId, SexId = districtQuantity.SexId }; if (!DistrictQuantityDic.ContainsKey(districtQuantity.Year)) { DistrictQuantityDic[districtQuantity.Year] = new Dictionary <DistrictQuantityKeys, DistrictQuantity>(); } DistrictQuantityDic[districtQuantity.Year][key] = districtQuantity; } }
public static DistrictQuantity CheckExistDistrictQuantity(DistrictQuantity districtQuantity) { if (!EntityDic.DistrictQuantityDic.ContainsKey(districtQuantity.Year)) { return(null); } DistrictQuantityKeys key = new DistrictQuantityKeys { DistrictId = districtQuantity.DistrictId, AgeId = districtQuantity.AgeId, SexId = districtQuantity.SexId, JobId = districtQuantity.JobId }; if (EntityDic.DistrictQuantityDic[districtQuantity.Year].ContainsKey(key)) { return(EntityDic.DistrictQuantityDic[districtQuantity.Year][key].Clone() as DistrictQuantity); } return(null); }
public static void InsertDistrictQuantity(List <DistrictQuantity> listData) { foreach (var districtQuantity in listData) { EntityCollection.DistrictQuantityCollection.Add(districtQuantity); //add to memory ram if (!EntityDic.DistrictQuantityDic.ContainsKey(districtQuantity.Year)) { EntityDic.DistrictQuantityDic[districtQuantity.Year] = new Dictionary <DistrictQuantityKeys, DistrictQuantity>(); } var key = new DistrictQuantityKeys { DistrictId = districtQuantity.DistrictId, AgeId = districtQuantity.AgeId, JobId = districtQuantity.JobId, SexId = districtQuantity.SexId }; EntityDic.DistrictQuantityDic[districtQuantity.Year][key] = districtQuantity; } }
public static void AddProvinceQuantity() { MongoRepository <Province> provinces = new MongoRepository <Province>(); MongoRepository <District> districts = new MongoRepository <District>(); MongoRepository <Age> ages = new MongoRepository <Age>(); MongoRepository <Sex> sexs = new MongoRepository <Sex>(); MongoRepository <Job> jobs = new MongoRepository <Job>(); List <DistrictQuantity> districtQuantities = new MongoRepository <DistrictQuantity>().ToList(); Dictionary <DistrictQuantityKeys, DistrictQuantity> districtQuantityDic = new Dictionary <DistrictQuantityKeys, DistrictQuantity>(); foreach (var districtQuantity in districtQuantities) { var keys = new DistrictQuantityKeys { DistrictId = districtQuantity.DistrictId, AgeId = districtQuantity.AgeId, SexId = districtQuantity.SexId, JobId = districtQuantity.JobId }; districtQuantityDic[keys] = districtQuantity; } MongoRepository <ProvinceQuantity> provinceQuantities = new MongoRepository <ProvinceQuantity>(); var year = 2016; foreach (var province in provinces) { var listDistrict = districts.ToList().Where(p => p.ProvinceId.ToString() == province.Id).ToList(); foreach (var age in ages) { foreach (var sex in sexs) { foreach (var job in jobs) { long total = 0; foreach (var district in listDistrict) { var key = new DistrictQuantityKeys { DistrictId = district.Id, AgeId = age.Id, SexId = sex.Id, JobId = job.Id }; if (districtQuantityDic.ContainsKey(key)) { total += districtQuantityDic[key].Quantity; } } ProvinceQuantity provinceQuantity = new ProvinceQuantity { ProvinceId = province.Id, AgeId = age.Id, SexId = sex.Id, JobId = job.Id, Year = year, Quantity = total }; provinceQuantities.Add(provinceQuantity); } } } } }
public static void UpdateProvinceQuantity(List <int> listYear) { var provinces = GetAllProvince(); var ages = GetAllAge(); var sexs = GetAllSex(); var jobs = GetAllJob(); foreach (var year in listYear) { foreach (var province in provinces) { var districts = GetDistrictsInProvince(province.Id); foreach (var age in ages) { foreach (var sex in sexs) { foreach (var job in jobs) { long total = 0; foreach (var district in districts) { var key = new DistrictQuantityKeys { DistrictId = district.Id, AgeId = age.Id, SexId = sex.Id, JobId = job.Id }; var districtQuantity = GetDistrictQuantityByDoubleKey(year, key); if (districtQuantity != null) { total += districtQuantity.Quantity; } } ProvinceQuantity provinceQuantity = new ProvinceQuantity { ProvinceId = province.Id, AgeId = age.Id, SexId = sex.Id, JobId = job.Id, Year = year, Quantity = total }; var listInsert = new List <ProvinceQuantity>(); var listUpdate = new List <ProvinceQuantity>(); var checkProvinceQuantity = CheckExistProvinceQuantity(provinceQuantity); if (checkProvinceQuantity == null) { if (provinceQuantity.Quantity > 0) { listInsert.Add(provinceQuantity); } } else { provinceQuantity.Id = checkProvinceQuantity.Id; listUpdate.Add(provinceQuantity); } if (listInsert.Count > 0) { InsertProvinceQuantity(listInsert); } if (listUpdate.Count > 0) { UpdateProvinceQuantity(listUpdate); } } } } } } }