public ActionResult FilterDongHoThoiTrang(InfoFilter infoFilter, string doiTuong)
        {
            ViewBag.TitleFilter = "Đồng hồ thời trang";
            List <ThuongHieu> thuongHieus = new List <ThuongHieu>();

            db.DongHoThoiTrangs.ToList().ForEach(item => { if (!thuongHieus.Contains(item.DongHo.ThuongHieu))
                                                           {
                                                               thuongHieus.Add(item.DongHo.ThuongHieu);
                                                           }
                                                 });
            foreach (ThuongHieu th in thuongHieus)
            {
                infoFilter.SelectedThuongHieus.Add(new SelectedThuongHieu()
                {
                    ThuongHieu = th, IsSelected = false
                });
            }
            infoFilter.isDongHoThoiTrang = true;
            if (doiTuong == "Nam")
            {
                infoFilter.isNam = true;
            }
            else if (doiTuong == "Nữ")
            {
                infoFilter.isNu = true;
            }
            else if (doiTuong == "Trẻ em")
            {
                infoFilter.isTreEm = true;
            }
            return(View("Filter", infoFilter));
        }
        public ActionResult ContentFilter(InfoFilter infoFilter)
        {
            List <DongHo> dongHos = new List <DongHo>();

            if (infoFilter.isDongHoGiamGia)
            {
                dongHos = db.DongHoes.Where(item => item.MaGG != null).ToList();
            }
            else if (infoFilter.isDongHoThoiTrang)
            {
                dongHos = db.DongHoes.Where(item => item.MaDH == item.DongHoThoiTrang.MaDH).ToList();
            }
            else if (infoFilter.isDongHoThongMinh)
            {
                dongHos = db.DongHoes.Where(item => item.MaDH == item.DongHoThongMinh.MaDH).ToList();
            }
            int count = 0;

            infoFilter.SelectedThuongHieus.ForEach(sth => { if (sth.IsSelected)
                                                            {
                                                                count++;
                                                            }
                                                   });
            if (count > 0)
            {
                for (int i = dongHos.Count - 1; i >= 0; i--)
                {
                    if (infoFilter.SelectedThuongHieus.Find(sTH => sTH.ThuongHieu.MaTH == dongHos[i].MaTH && sTH.IsSelected == true) == null)
                    {
                        dongHos.RemoveAt(i);
                    }
                }
            }
            if (!(infoFilter.isNam == false && infoFilter.isNu == false && infoFilter.isTreEm == false))
            {
                for (int i = dongHos.Count - 1; i >= 0; i--)
                {
                    bool condition = (infoFilter.isNam && dongHos[i].DongHoThoiTrang.MaDoiTuong == "MALE") ||
                                     (infoFilter.isNu && dongHos[i].DongHoThoiTrang.MaDoiTuong == "FEMALE") ||
                                     (infoFilter.isTreEm && dongHos[i].DongHoThoiTrang.MaDoiTuong == "CHILD");
                    if (!condition)
                    {
                        dongHos.RemoveAt(i);
                    }
                }
            }
            if (!(infoFilter.MinPrice == 0 && infoFilter.MaxPrice == 0))
            {
                for (int i = dongHos.Count - 1; i >= 0; i--)
                {
                    if (dongHos[i].GiaBan <infoFilter.MinPrice || dongHos[i].GiaBan> infoFilter.MaxPrice)
                    {
                        dongHos.RemoveAt(i);
                    }
                }
            }
            return(PartialView(dongHos));
        }
예제 #3
0
        public List Filter(InfoFilter condition)
        {
            List found = new List();

            foreach (IEntity tag in _entities)
            {
                if (condition(tag))
                {
                    found.Add(tag);
                }
            }
            return(found);
        }
 public ActionResult FilterDongHoGiamGia(InfoFilter infoFilter)
 {
     ViewBag.TitleFilter = "Đồng hồ giảm giá";
     foreach (ThuongHieu th in db.ThuongHieux)
     {
         infoFilter.SelectedThuongHieus.Add(new SelectedThuongHieu()
         {
             ThuongHieu = th, IsSelected = false
         });
     }
     infoFilter.isDongHoGiamGia = true;
     return(View("Filter", infoFilter));
 }
        public ActionResult FilterDongHoThongMinh(InfoFilter infoFilter)
        {
            ViewBag.TitleFilter = "Đồng hồ thông minh";
            List <ThuongHieu> thuongHieus = new List <ThuongHieu>();

            db.DongHoThongMinhs.ToList().ForEach(item => { if (!thuongHieus.Contains(item.DongHo.ThuongHieu))
                                                           {
                                                               thuongHieus.Add(item.DongHo.ThuongHieu);
                                                           }
                                                 });
            foreach (ThuongHieu th in thuongHieus)
            {
                infoFilter.SelectedThuongHieus.Add(new SelectedThuongHieu()
                {
                    ThuongHieu = th, IsSelected = false
                });
            }
            infoFilter.isDongHoThongMinh = true;
            return(View("Filter", infoFilter));
        }
예제 #6
0
        /// <summary>
        /// 形態素解析を行う
        /// </summary>
        /// <param name="sentence">解析を行う文章(複数の文章を含んでもOK)</param>
        /// <param name="intoFilter">形態素情報フィルタ 取得する情報の種類(複数指定可)</param>
        /// <param name="posFilter">形態素品詞フィルタ(指定したものだけ検出 何も指定しない場合は全種類)</param>
        /// <returns>1文に含まれる解析結果を格納したリストのリスト</returns>
        public async Task <List <List <MorphResultSet> > > ExecAsync(String sentence,
                                                                     InfoFilter intoFilter = InfoFilter.FORM | InfoFilter.POS | InfoFilter.READ,
                                                                     string[] posFilter    = null)
        {
            var client = new HttpClient();

            //形態素解析のエンドポイントURL
            var uri = "https://api.apigw.smt.docomo.ne.jp/gooLanguageAnalysis/v1/morph?APIKEY=" + APIKey;

            //形態素情報フィルタのパラメータ作成
            string info_filter = "";

            if (intoFilter.HasFlag(InfoFilter.FORM))
            {
                info_filter += "form|";
            }
            if (intoFilter.HasFlag(InfoFilter.POS))
            {
                info_filter += "pos|";
            }
            if (intoFilter.HasFlag(InfoFilter.READ))
            {
                info_filter += "read|";
            }
            info_filter.TrimEnd('|');

            //要求するメッセージを作成
            var request = new Dictionary <string, string>();

            request.Add("sentence", sentence);
            request.Add("info_filter", info_filter);

            //形態素品詞フィルタのパラメーターを作成(|区切り)
            if (posFilter != null)
            {
                var pos_filter = "";
                foreach (var s in posFilter)
                {
                    if (string.IsNullOrWhiteSpace(s))
                    {
                        continue;
                    }
                    pos_filter += s + "|";
                }
                pos_filter.TrimEnd('|');

                if (!string.IsNullOrWhiteSpace(pos_filter))
                {
                    request.Add("pos_filter", pos_filter);
                }
            }


            //JSONへ変換(Newtonsoft Json.NETライブラリ使用)
            string json = JsonConvert.SerializeObject(request);

            //要求を送信
            StringContent content = new StringContent(json);

            content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");
            HttpResponseMessage response = await client.PostAsync(uri, content);

            //エラー確認
            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                string err_resp = await response.Content.ReadAsStringAsync();

                throw new Exception("ERROR" + err_resp);
            }

            //サーバーからの応答(Json)を文字列として取り出す
            string response_json = await response.Content.ReadAsStringAsync();

            //jsonをパース(Newtonsoft Json.NETライブラリ使用)
            JObject result_object = JObject.Parse(response_json);
            dynamic result        = result_object["word_list"];

            //応答から配列に変換
            var return_value = new List <List <MorphResultSet> >();

            foreach (var w in result)
            {
                var morph_list = new List <MorphResultSet>();
                foreach (var l in w)
                {
                    MorphResultSet e = new MorphResultSet();
                    int            i = 0;
                    if (intoFilter.HasFlag(InfoFilter.FORM))
                    {
                        e.Form = l[i];
                        i++;
                    }
                    if (intoFilter.HasFlag(InfoFilter.POS))
                    {
                        e.Pos = l[i];
                        i++;
                    }
                    if (intoFilter.HasFlag(InfoFilter.READ))
                    {
                        e.Read = l[i];
                        i++;
                    }
                    morph_list.Add(e);
                }
                return_value.Add(morph_list);
            }

            return(return_value);
        }
 public ActionResult Filter(InfoFilter infoFilter)
 {
     return(View(infoFilter));
 }