Exemple #1
0
        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);
        }
Exemple #2
0
 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);
 }
Exemple #3
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);
 }
Exemple #4
0
        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;
        }
Exemple #5
0
        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;
            }
        }
Exemple #6
0
        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);
                }
            }
        }
Exemple #7
0
        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;
            }
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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;
            }
        }
Exemple #10
0
        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);
                        }
                    }
                }
            }
        }
Exemple #11
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }