public async Task <IEnumerable <FNameViewModel> > GetFiltersByCategoryId(string id) { IQueryable <Product> query_pr = id != null && id.Length > 0 ? db.Products.Where(pr => pr.CategoryId.ToString() == id) : db.Products; var query = query_pr.SelectMany(pr_f => pr_f.Filters) .Select(pr_f => new { FNameId = pr_f.FilterNameId, FName = pr_f.FilterNameOf.Name, FValueId = pr_f.FilterValueId, FValue = pr_f.FilterValueOf.Name }).AsEnumerable(); var groups = query.GroupBy(filter => (new { Id = filter.FNameId, Name = filter.FName })) .OrderBy(x => x.Key.Name); var result = await Task.Run(() => { List <FNameViewModel> FilterList = new List <FNameViewModel>(); foreach (var filterName in groups) { FNameViewModel node = new FNameViewModel { Id = filterName.Key.Id, Name = filterName.Key.Name }; var groupingF = filterName .GroupBy(f => new { Id = f.FValueId, Name = f.FValue }) .Select(f => f.Key) .OrderBy(f => f.Name); node.Childrens = groupingF.Select(f => new FValueViewItem { Id = f.Id, Name = f.Name }).ToList(); FilterList.Add(node); } return(FilterList.ToList()); }); return(result); }
private List <FNameViewModel> GetListFilters() { var query = from f in _context.VFilterNameGroups.AsQueryable() where f.FilterValueId != null select new { FNameId = f.FilterNameId, FName = f.FilterName, FValueId = f.FilterValueId, FValue = f.FilterValue }; var groupNames = from f in query group f by new { Id = f.FNameId, Name = f.FName } into g orderby g.Key.Name select g; List <FNameViewModel> listGroupFilters = new List <FNameViewModel>(); //listGroupFilters = foreach (var filterName in groupNames) { FNameViewModel fName = new FNameViewModel { Id = filterName.Key.Id, Name = filterName.Key.Name }; fName.Children = (from v in filterName group v by new FValueViewModel { Id = v.FValueId, Name = v.FValue } into g select g.Key).ToList(); listGroupFilters.Add(fName); } return(listGroupFilters); }
private IEnumerable <FNameViewModel> GetFilters() { var query = db.VFilterNameGroups .AsQueryable() .Where(filter => filter.FilterValueId != null) .Select(filter => new { FNameId = filter.FilterNameId, FName = filter.FilterName, FValueId = filter.FilterValueId, FValue = filter.FilterValue }).AsEnumerable(); var groupNames = query.GroupBy(filter => (new { Id = filter.FNameId, Name = filter.FName })) .OrderBy(x => x.Key.Name); List <FNameViewModel> FilterList = new List <FNameViewModel>(); foreach (var filterName in groupNames) { FNameViewModel node = new FNameViewModel { Id = filterName.Key.Id, Name = filterName.Key.Name }; node.Childrens = filterName .GroupBy(f => new FValueViewItem { Id = f.FValueId, Name = f.FValue }) .Select(f => f.Key) .ToList(); FilterList.Add(node); } return(FilterList); }
public string Update(FNameViewModel filter) { var http = (HttpWebRequest)WebRequest.Create(new Uri(_url)); http.Accept = "application/json"; http.ContentType = "application/json"; http.Method = "PUT"; string parsedContent = JsonConvert.SerializeObject(filter); UTF8Encoding encoding = new UTF8Encoding(); Byte[] bytes = encoding.GetBytes(parsedContent); Stream newStream = http.GetRequestStream(); newStream.Write(bytes, 0, bytes.Length); newStream.Close(); var response = http.GetResponse(); var stream = response.GetResponseStream(); var sr = new StreamReader(stream); var content = sr.ReadToEnd(); return(content.ToString()); }
public Task <string> UpdateAsync(FNameViewModel filter) { return(Task.Run(() => Update(filter))); }