Ejemplo n.º 1
0
        public async Task GetFromMongo()
        {
            var mongo = new MongoDBManager("211.249.60.69", 27017, "next", "next!!@@##$$", "baybName");

            mongo.SetCollection("nationalBabyName");

            mongo.ClearFilter();
            mongo.AddFIlterStringRegex("Name", InfoName.Substring(0, 3));
            mongo.AddFilterStringEq("Gender", InfoGender);
            mongo.AddFilterEqInt("Year", InfoYear);

            var part1 = await mongo.GetResult();

            part1.Sort(delegate(BabyNameInfo A, BabyNameInfo B)
            {
                if (A.Count > B.Count)
                {
                    return(-1);
                }
                else if (A.Count < B.Count)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            });

            mongo.ClearFilter();
            mongo.AddFIlterStringRegex("Name", InfoName.Substring(0, 2));
            mongo.AddFilterStringEq("Gender", InfoGender);
            mongo.AddFilterEqInt("Year", InfoYear);

            var part2 = await mongo.GetResult();

            part2.Sort(delegate(BabyNameInfo A, BabyNameInfo B)
            {
                if (A.Count > B.Count)
                {
                    return(-1);
                }
                else if (A.Count < B.Count)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            });
            mongo.ClearFilter();
            mongo.AddFIlterStringRegex("Name", InfoName.Substring(0, 1));
            mongo.AddFilterStringEq("Gender", InfoGender);
            mongo.AddFilterEqInt("Year", InfoYear);

            var part3 = await mongo.GetResult();

            part3.Sort(delegate(BabyNameInfo A, BabyNameInfo B)
            {
                if (A.Count > B.Count)
                {
                    return(-1);
                }
                else if (A.Count < B.Count)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            });
            var tempList = new List <BabyNameInfo>();

            tempList.AddRange(part1);

            foreach (var info in part2)
            {
                if (!tempList.Exists(x => x.Name == info.Name))
                {
                    tempList.Add(info);
                }
            }

            foreach (var info in part3)
            {
                if (!tempList.Exists(x => x.Name == info.Name))
                {
                    tempList.Add(info);
                }
            }

            var item = new List <BabyNameInfo>();

            item.AddRange(tempList.Distinct());

            ResultView.ItemsSource = item;
        }
Ejemplo n.º 2
0
        public async Task GetFromMongo()
        {
            var mongo = new MongoDBManager("211.249.60.69", 27017, "next", "next!!@@##$$", "baybName");

            mongo.SetCollection("nationalBabyName");

            mongo.ClearFilter();
            mongo.AddFIlterStringRegex("Name", InfoName);
            mongo.AddFilterStringEq("Gender", InfoGender);

            var part1 = await mongo.GetResult();

            part1.Sort(delegate(BabyNameInfo A, BabyNameInfo B)
            {
                if (A.Year > B.Year)
                {
                    return(1);
                }
                else if (A.Year < B.Year)
                {
                    return(-1);
                }
                else
                {
                    return(0);
                }
            });

            var tempList = new List <BabyNameInfo>();

            tempList.AddRange(part1);

            m_infos = new List <BabyNameInfo>();
            m_infos.AddRange(tempList.Distinct());

            mongo.ClearFilter();
            mongo.AddFIlterStringRegex("Name", InfoName);
            mongo.AddFilterEqInt("Year", InfoYear);

            var part2 = await mongo.GetResult();

            if (part2.Count == 2)
            {
                var MaxNum = part2[0].Count + part2[1].Count;
                if (part2[0].Gender != part2[1].Gender)
                {
                    if (part2[0].Gender == "F")
                    {
                        m_genderRatio = part2[0].Count / (double)MaxNum;
                    }
                    else
                    {
                        m_genderRatio = part2[1].Count / (double)MaxNum;
                    }

                    if (m_infoGender == "M")
                    {
                        m_genderRatio = 1 - m_genderRatio;
                    }
                    else
                    {
                        //아무것도 안함
                    }
                }
                else
                {
                    m_genderRatio = 1;
                }
            }
            else
            {
                m_genderRatio = 1;
            }
        }