Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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 }
            });
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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
        }
Ejemplo n.º 6
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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 7
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);
                                }
                            }
                        }
                    }
                }
            }
        }