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)); }
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)); }
/// <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)); }