public static void Set(ProvinceQuantity provinceQuantity) { var key = new ProvinceQuantityKeys { ProvinceId = provinceQuantity.ProvinceId, SexId = provinceQuantity.SexId, JobId = provinceQuantity.JobId, AgeId = provinceQuantity.AgeId }; if (!Memory.DicProvinceQuantity.ContainsKey(provinceQuantity.Year)) { Memory.DicProvinceQuantity[provinceQuantity.Year] = new Dictionary <ProvinceQuantityKeys, ProvinceQuantity>(); } Memory.DicProvinceQuantity[provinceQuantity.Year][key] = provinceQuantity; }
public BsonDocument GetBson(ProvinceQuantity provinceQuantity) { return(new BsonDocument { { ProvinceQuantity.ProvinceQuantityFields.ProvinceId.ToString(), provinceQuantity.ProvinceId }, { ProvinceQuantity.ProvinceQuantityFields.AgeId.ToString(), provinceQuantity.AgeId }, { ProvinceQuantity.ProvinceQuantityFields.SexId.ToString(), provinceQuantity.SexId }, { ProvinceQuantity.ProvinceQuantityFields.JobId.ToString(), provinceQuantity.JobId }, { ProvinceQuantity.ProvinceQuantityFields.Year.ToString(), provinceQuantity.Year }, { ProvinceQuantity.ProvinceQuantityFields.Quantity.ToString(), provinceQuantity.Quantity } }); }
public static void Remove(ProvinceQuantity provinceQuantity) { var key = new ProvinceQuantityKeys { ProvinceId = provinceQuantity.ProvinceId, SexId = provinceQuantity.SexId, JobId = provinceQuantity.JobId, AgeId = provinceQuantity.AgeId }; if (Memory.DicProvinceQuantity.ContainsKey(provinceQuantity.Year)) { if (Memory.DicProvinceQuantity[provinceQuantity.Year].ContainsKey(key)) { Memory.DicProvinceQuantity[provinceQuantity.Year].Remove(key); } } }
public static ProvinceQuantity CheckExistProvinceQuantity(ProvinceQuantity provinceQuantity) { if (!EntityDic.ProvinceQuantityDic.ContainsKey(provinceQuantity.Year)) { return(null); } ProvinceQuantityKeys key = new ProvinceQuantityKeys { ProvinceId = provinceQuantity.ProvinceId, AgeId = provinceQuantity.AgeId, SexId = provinceQuantity.SexId, JobId = provinceQuantity.JobId }; if (EntityDic.ProvinceQuantityDic[provinceQuantity.Year].ContainsKey(key)) { return(EntityDic.ProvinceQuantityDic[provinceQuantity.Year][key].Clone() as ProvinceQuantity); } return(null); }
public static void Init() { #region Age var listAge = SelectDatabase.Select(new Age().EntityName()); foreach (var item in listAge) { Age age = new Age { AgeId = item[0].AsObjectId, AgeStart = item[1].AsInt32, AgeEnd = item[2].AsInt32 }; SetMemory.Set(age); } #endregion #region Sex var listSex = SelectDatabase.Select(new Sex().EntityName()); foreach (var item in listSex) { Sex sex = new Sex { SexId = item[0].AsObjectId, SexName = item[1].AsString }; SetMemory.Set(sex); } #endregion #region Job var listJob = SelectDatabase.Select(new Job().EntityName()); foreach (var item in listJob) { Job job = new Job { JobId = item[0].AsObjectId, JobName = item[1].AsString }; SetMemory.Set(job); } #endregion #region Area var listArea = SelectDatabase.Select(new Area().EntityName()); foreach (var item in listArea) { Area area = new Area { AreaId = item[0].AsObjectId, AreaName = item[1].AsString }; SetMemory.Set(area); } #endregion #region AreaQuantity var listAreaQuantity = SelectDatabase.Select(new AreaQuantity().EntityName()); foreach (var item in listAreaQuantity) { AreaQuantity areaQuantity = new AreaQuantity { AreaId = item[1].AsObjectId, AgeId = item[2].AsObjectId, SexId = item[3].AsObjectId, JobId = item[4].AsObjectId, Year = item[5].AsInt32, Quantity = item[6].AsInt64 }; SetMemory.Set(areaQuantity); } #endregion #region Branch var listBranch = SelectDatabase.Select(new Branch().EntityName()); foreach (var item in listBranch) { Branch branch = new Branch { BranchId = item[0].AsObjectId, BranchName = item[1].AsString, AreaId = item[3].AsObjectId }; SetMemory.Set(branch); } #endregion #region BranchQuantity var listBranchQuantity = SelectDatabase.Select(new BranchQuantity().EntityName()); foreach (var item in listBranchQuantity) { BranchQuantity branchQuantity = new BranchQuantity { BranchId = item[1].AsObjectId, AgeId = item[2].AsObjectId, SexId = item[3].AsObjectId, JobId = item[4].AsObjectId, Year = item[5].AsInt32, Quantity = item[6].AsInt64 }; SetMemory.Set(branchQuantity); } #endregion #region Province var listProvince = SelectDatabase.Select(new Province().EntityName()); foreach (var item in listProvince) { Province province = new Province { ProvinceId = item[0].AsObjectId, ProvinceName = item[1].AsString, BranchId = item[3].AsObjectId }; SetMemory.Set(province); } #endregion #region ProvinceQuantity var listProvinceQuantity = SelectDatabase.Select(new ProvinceQuantity().EntityName()); foreach (var item in listProvinceQuantity) { ProvinceQuantity provinceQuantity = new ProvinceQuantity { ProvinceId = item[1].AsObjectId, AgeId = item[2].AsObjectId, SexId = item[3].AsObjectId, JobId = item[4].AsObjectId, Year = item[5].AsInt32, Quantity = item[6].AsInt64 }; SetMemory.Set(provinceQuantity); } #endregion #region District var listDistrict = SelectDatabase.Select(new District().EntityName()); foreach (var item in listDistrict) { District district = new District { DistrictId = item[0].AsObjectId, DistrictName = item[1].AsString, ProvinceId = item[3].AsObjectId }; SetMemory.Set(district); } #endregion #region DistrictQuantity var listDistrictQuantity = SelectDatabase.Select(new DistrictQuantity().EntityName()); foreach (var item in listDistrictQuantity) { DistrictQuantity districtQuantity = new DistrictQuantity { DistrictId = item[1].AsObjectId, AgeId = item[2].AsObjectId, SexId = item[3].AsObjectId, JobId = item[4].AsObjectId, Year = item[5].ToInt32(), Quantity = item[6].ToInt64() }; SetMemory.Set(districtQuantity); } #endregion }
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); } } } } } } }