// GET: Carts public ActionResult Index() { var logs = db.LogRecords.Where(l => l.RecordType == Utilities.RecordType.New && l.Guid == typeof(Cart).GUID).OrderByDescending(l => l.DateTime).Take(15); var list = logs.Select(l => db.Carts.FirstOrDefault(c => c.Id == l.RecordId)); var cartSearch = Session["CartSearch"] ?? new CartSearch <int>() { SearchType = nameof(Cart.SearchOptions.None) }; CartSearch <int> iSearch = cartSearch as CartSearch <int>; CartSearch <string> sSearch = cartSearch as CartSearch <string>; CartSearch <DateTime> dtSearch = cartSearch as CartSearch <DateTime>; IEnumerable <Cart> carts = null; if (iSearch != null) { carts = ProcessSearch(iSearch); } else if (sSearch != null) { carts = ProcessSearch(sSearch); } else if (dtSearch != null) { carts = ProcessSearch(dtSearch); } CartIndexVM ciVM = new CartIndexVM(); ciVM.Carts = carts; ciVM.SearchOptions = new SelectList(Cart.SearchOptionNames, "Key", "Value"); return(View(ciVM)); }
/// <summary> /// Фильтр представлений списков принтеров и картриджей. /// </summary> /// <param name="obj">Объект фильтрации</param> /// <returns>Проходит ли объект фильтрацию</returns> private bool ViewFilter(object obj) { if (obj is PrinterDTO print) { return(string.IsNullOrWhiteSpace(PrintSearch) || (SelectedPrinter != null && SelectedPrinter.Model == PrintSearch) || print.Model.ToUpper().Contains(PrintSearch.ToUpper())); } else if (obj is BalanceDTO balance) { return(string.IsNullOrWhiteSpace(CartSearch) || (SelectedCartridge != null && SelectedCartridge.Cartridge.Model == CartSearch) || balance.Cartridge.Model.ToUpper().Contains(CartSearch.ToUpper())); } else { return(false); } }
public ActionResult ProcessSearch() { var searchType = Request.Params["type"]; string result = string.Empty; Session["CartSearch"] = null; switch (searchType) { case nameof(Cart.SearchOptions.None): { var cartSearch = new CartSearch <int> { SearchType = searchType }; var list = ProcessSearch(cartSearch); return(PartialView("_CartList", list)); } case nameof(Cart.SearchOptions.BuyerEmail): { int data = Int32.Parse(Request.Params["value"]); var cartSearch = new CartSearch <int> { SearchType = searchType, Value = data }; Session["CartSearch"] = cartSearch; var carts = ProcessSearch(cartSearch); if (carts != null && carts.Count() > 0) { return(PartialView("_CartList", carts.ToList())); } else { return new ContentResult() { Content = "No carts found" } }; } case nameof(Cart.SearchOptions.BuyerName): { string data = Request.Params["value"]; var cartSearch = new CartSearch <string> { SearchType = searchType, Value = data }; Session["CartSearch"] = cartSearch; var carts = ProcessSearch(cartSearch); if (carts != null && carts.Count() > 0) { return(PartialView("_CartList", carts.ToList())); } else { return new ContentResult() { Content = "No carts found" } }; } case nameof(Cart.SearchOptions.BuyerUsername): { int data = Int32.Parse(Request.Params["value"]); var cartSearch = new CartSearch <int> { SearchType = searchType, Value = data }; Session["CartSearch"] = cartSearch; var carts = ProcessSearch(cartSearch); if (carts != null && carts.Count() > 0) { return(PartialView("_CartList", carts.ToList())); } else { return new ContentResult() { Content = "No carts found" } }; } case nameof(Cart.SearchOptions.CartNumber): { string data = Request.Params["value"]; var cartSearch = new CartSearch <string> { SearchType = searchType, Value = data }; Session["CartSearch"] = cartSearch; var carts = ProcessSearch(cartSearch); if (carts != null && carts.Count() > 0) { return(PartialView("_CartList", carts.ToList())); } else { return new ContentResult() { Content = "No carts found" } }; } case nameof(Cart.SearchOptions.Date): { var data = DateTime.Parse(Request.Params["value"]); var data2 = DateTime.Parse(Request.Params["value2"]); DateTime d1 = DateTime.Compare(data, data2) > 0 ? data2 : data; DateTime d2 = DateTime.Compare(data, data2) > 0 ? data : data2; var cartSearch = new CartSearch <DateTime> { SearchType = searchType, Value = d1, Value2 = d2 }; Session["CartSearch"] = cartSearch; var carts = ProcessSearch(cartSearch); if (carts != null && carts.Count() > 0) { return(PartialView("_CartList", carts.ToList())); } else { return new ContentResult() { Content = "No carts found" } }; } case nameof(Cart.SearchOptions.SellerName): { string data = Request.Params["value"]; var cartSearch = new CartSearch <string> { SearchType = searchType, Value = data }; Session["CartSearch"] = cartSearch; data = data.ToUpper(); var carts = ProcessSearch(cartSearch); if (carts != null && carts.Count() > 0) { return(PartialView("_CartList", carts.ToList())); } else { return new ContentResult() { Content = "No carts found" } }; } case nameof(Cart.SearchOptions.SellerUsername): { int data = Int32.Parse(Request.Params["value"]); var cartSearch = new CartSearch <int> { SearchType = searchType, Value = data }; Session["CartSearch"] = cartSearch; var carts = ProcessSearch(cartSearch); if (carts != null && carts.Count() > 0) { return(PartialView("_CartList", carts.ToList())); } else { return new ContentResult() { Content = "No carts found" } }; } } return(null); }
public string SearchOptions() { var searchType = Request.Params["type"]; var loadSession = bool.Parse(Request.Params["LoadSession"]); string result = string.Empty; switch (searchType) { case nameof(Cart.SearchOptions.BuyerEmail): { int id = 0; if (loadSession) { CartSearch <int> session = Session["CartSearch"] as CartSearch <int>; id = session.Value; } var list = db.UserRecords.Where(u => (u.UserType & UserRecord.UserTypes.Buyer) == UserRecord.UserTypes.Buyer).Select(r => new { r.PreferredEmail.EmailAddress, r.PreferredEmailId }).OrderBy(o => o.EmailAddress); result = "<select class=\"form-control\" data-val=\"true\" data-val-number=\"The field BuyerId must be a number.\" data-val-required=\"The BuyerId field is required.\" id=\"" + searchType + "\" name=\"" + searchType + "\">"; var duplicates = new List <string>(); string selected; foreach (var item in list) { selected = id == item.PreferredEmailId ? "selected" : string.Empty; if (!duplicates.Contains(item.EmailAddress)) { result += string.Format("<option value = \"{0}\" {2}>{1}</ option >", item.PreferredEmailId, item.EmailAddress, selected); duplicates.Add(item.EmailAddress); } } result += "</select>"; return(result); } case nameof(Cart.SearchOptions.SellerName): case nameof(Cart.SearchOptions.BuyerName): { string value = string.Empty; if (loadSession) { CartSearch <string> session = Session["CartSearch"] as CartSearch <string>; value = string.Format("value='{0}'", session.Value); } return("<input class=\"form-control text-box single-line\" data-val=\"true\" id=\"" + searchType + "\" name=\"" + searchType + "\" type=\"text\"" + value + " >"); } case nameof(Cart.SearchOptions.BuyerUsername): { int id = 0; if (loadSession) { CartSearch <int> session = Session["CartSearch"] as CartSearch <int>; id = session.Value; } var list = db.UserRecords.Where(u => (u.UserType & UserRecord.UserTypes.Buyer) == UserRecord.UserTypes.Buyer).Select(r => new { r.HDBUserName, r.Id, }).OrderBy(o => o.HDBUserName); result = "<select class=\"form-control\" data-val=\"true\" id=\"" + searchType + "\" name=\"" + searchType + "\">"; string selected; foreach (var item in list) { selected = id == item.Id ? "selected" : string.Empty; result += string.Format("<option value = \"{0}\" {2}>{1}</ option >", item.Id, item.HDBUserName, selected); } result += "</select>"; return(result); } case nameof(Cart.SearchOptions.CartNumber): { string value = string.Empty; if (loadSession) { CartSearch <string> session = Session["CartSearch"] as CartSearch <string>; value = string.Format("value='{0}'", session.Value); } return("<input class=\"form-control text-box single-line valid\" data-val=\"true\" data-val-number=\"The field Cart must be a number.\" data-val-required=\"The Cart field is required.\" id=\"" + searchType + "\" name=\"" + searchType + "\" type=\"number\" " + value + " >"); } case nameof(Cart.SearchOptions.Date): { DateTime d1 = DateTime.Now; DateTime d2 = DateTime.Now; if (loadSession) { CartSearch <DateTime> session = Session["CartSearch"] as CartSearch <DateTime>; d1 = session.Value; d2 = session.Value2; } result = "<label>Begin</label> <input class=\"text-box single-line valid\" data-val=\"true\" data-val-date=\"The field must be a date.\" data-val-required=\"The field is required.\" id=\"" + searchType + "\" name=\"" + searchType + "\" type=\"date\" value=\"" + d1.ToShortDateString() + "\" aria-required=\"true\" aria-describedby=\"Date-error\" aria-invalid=\"false\">"; result += " <label>End</label> <input class=\"text-box single-line valid\" data-val=\"true\" data-val-date=\"The field must be a date.\" data-val-required=\"The field is required.\" id=\"Date2\" name=\"Date2\" type=\"date\" value=\"" + d2.ToShortDateString() + "\" aria-required=\"true\" aria-describedby=\"Date-error\" aria-invalid=\"false\">"; return(result); } case nameof(Cart.SearchOptions.SellerUsername): { int id = 0; if (loadSession) { CartSearch <int> session = Session["CartSearch"] as CartSearch <int>; id = session.Value; } var list = db.UserRecords.Where(u => (u.UserType & UserRecord.UserTypes.Seller) == UserRecord.UserTypes.Seller).Select(r => new { r.HDBUserName, r.Id, }).OrderBy(o => o.HDBUserName); result = "<select class=\"form-control\" data-val=\"true\" id=\"" + searchType + "\" name=\"" + searchType + "\">"; foreach (var item in list) { result += string.Format("<option value = \"{0}\" {2}>{1}</ option >", item.Id, item.HDBUserName, (id == item.Id?"selected":"")); } result += "</select>"; return(result); } case nameof(Cart.SearchOptions.None): return(""); } return("<label>" + searchType + "</label>"); }