public static void Set(BranchQuantity branchQuantity) { var key = new BranchQuantityKeys { BranchId = branchQuantity.BranchId, SexId = branchQuantity.SexId, JobId = branchQuantity.JobId, AgeId = branchQuantity.AgeId }; if (!Memory.DicBranchQuantity.ContainsKey(branchQuantity.Year)) { Memory.DicBranchQuantity[branchQuantity.Year] = new Dictionary <BranchQuantityKeys, BranchQuantity>(); } Memory.DicBranchQuantity[branchQuantity.Year][key] = branchQuantity; }
public BsonDocument GetBson(BranchQuantity branchQuantity) { return(new BsonDocument { { BranchQuantity.BranchQuantityFields.BranchId.ToString(), branchQuantity.BranchId }, { BranchQuantity.BranchQuantityFields.AgeId.ToString(), branchQuantity.AgeId }, { BranchQuantity.BranchQuantityFields.SexId.ToString(), branchQuantity.SexId }, { BranchQuantity.BranchQuantityFields.JobId.ToString(), branchQuantity.JobId }, { BranchQuantity.BranchQuantityFields.Year.ToString(), branchQuantity.Year }, { BranchQuantity.BranchQuantityFields.Quantity.ToString(), branchQuantity.Quantity } }); }
public static void Remove(BranchQuantity branchQuantity) { var key = new BranchQuantityKeys { BranchId = branchQuantity.BranchId, SexId = branchQuantity.SexId, JobId = branchQuantity.JobId, AgeId = branchQuantity.AgeId }; if (Memory.DicBranchQuantity.ContainsKey(branchQuantity.Year)) { if (Memory.DicBranchQuantity[branchQuantity.Year].ContainsKey(key)) { Memory.DicBranchQuantity[branchQuantity.Year].Remove(key); } } }
public static BranchQuantity CheckExistBranchQuantity(BranchQuantity branchQuantity) { if (!EntityDic.BranchQuantityDic.ContainsKey(branchQuantity.Year)) { return(null); } BranchQuantityKeys key = new BranchQuantityKeys { BranchId = branchQuantity.BranchId, AgeId = branchQuantity.AgeId, SexId = branchQuantity.SexId, JobId = branchQuantity.JobId }; if (EntityDic.BranchQuantityDic[branchQuantity.Year].ContainsKey(key)) { return(EntityDic.BranchQuantityDic[branchQuantity.Year][key].Clone() as BranchQuantity); } 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 AddBranchQuantity() { MongoRepository <Branch> branches = new MongoRepository <Branch>(); MongoRepository <Province> provinces = new MongoRepository <Province>(); MongoRepository <Age> ages = new MongoRepository <Age>(); MongoRepository <Sex> sexs = new MongoRepository <Sex>(); MongoRepository <Job> jobs = new MongoRepository <Job>(); List <ProvinceQuantity> provinceQuantities = new MongoRepository <ProvinceQuantity>().ToList(); Dictionary <ProvinceQuantityKeys, ProvinceQuantity> provinceQuantitiesDic = new Dictionary <ProvinceQuantityKeys, ProvinceQuantity>(); foreach (var provinceQuantity in provinceQuantities) { var keys = new ProvinceQuantityKeys { ProvinceId = provinceQuantity.ProvinceId, AgeId = provinceQuantity.AgeId, SexId = provinceQuantity.SexId, JobId = provinceQuantity.JobId }; provinceQuantitiesDic[keys] = provinceQuantity; } MongoRepository <BranchQuantity> branchQuantities = new MongoRepository <BranchQuantity>(); var year = 2016; foreach (var branch in branches) { var listProvince = provinces.ToList().Where(p => p.BranchId.ToString() == branch.Id).ToList(); foreach (var age in ages) { foreach (var sex in sexs) { foreach (var job in jobs) { long total = 0; foreach (var province in listProvince) { var key = new ProvinceQuantityKeys { ProvinceId = province.Id, AgeId = age.Id, SexId = sex.Id, JobId = job.Id }; if (provinceQuantitiesDic.ContainsKey(key)) { total += provinceQuantitiesDic[key].Quantity; } } BranchQuantity branchQuantity = new BranchQuantity { BranchId = branch.Id, AgeId = age.Id, SexId = sex.Id, JobId = job.Id, Year = year, Quantity = total }; branchQuantities.Add(branchQuantity); } } } } }
public static void UpdateBranchQuantity(List <int> listYear) { var branches = GetAllBranch(); var ages = GetAllAge(); var sexs = GetAllSex(); var jobs = GetAllJob(); foreach (var year in listYear) { foreach (var branch in branches) { var provinces = GetProvincesInBranch(branch.Id); foreach (var age in ages) { foreach (var sex in sexs) { foreach (var job in jobs) { long total = 0; foreach (var province in provinces) { var key = new ProvinceQuantityKeys { ProvinceId = province.Id, AgeId = age.Id, SexId = sex.Id, JobId = job.Id }; var provinceQuantity = GetProvinceQuantityByDoubleKey(year, key); if (provinceQuantity != null) { total += provinceQuantity.Quantity; } } BranchQuantity branchQuantity = new BranchQuantity { BranchId = branch.Id, AgeId = age.Id, SexId = sex.Id, JobId = job.Id, Year = year, Quantity = total }; var listInsert = new List <BranchQuantity>(); var listUpdate = new List <BranchQuantity>(); var checkBranchQuantity = CheckExistBranchQuantity(branchQuantity); if (checkBranchQuantity == null) { if (branchQuantity.Quantity > 0) { listInsert.Add(branchQuantity); } } else { branchQuantity.Id = checkBranchQuantity.Id; listUpdate.Add(branchQuantity); } if (listInsert.Count > 0) { InsertBranchQuantity(listInsert); } if (listUpdate.Count > 0) { UpdateBranchQuantity(listUpdate); } } } } } } }