public JsonNetResult SortCategoryByDate(Guid categoryID, string sortType, ResourceFilters filter) { try { var model = new CategoryResourceItemsViewModel(); var availableResources = new List <Guid>(); model.CategoryItem = ExigoDAL.GetResourceCategoryItems(new GetResourceCategoryItemsRequest() { CategoryID = categoryID }).FirstOrDefault(); model.IsResourceManager = filter.isResourceManager; model.ResourceList = ExigoDAL.GetResourceItemsByCategory(categoryID); model.Types = ExigoDAL.GetResourceTypes(new GetResourceTypeRequest() { TypeDescriptions = filter.MediaFilter }); if (filter.MarketFilter != null && filter.MarketFilter != string.Empty) { if (filter.LanguageFilter != null && filter.LanguageFilter != string.Empty) { var language = Convert.ToInt32(filter.LanguageFilter); var cc = filter.MarketFilter; var getAvailableResources = ExigoDAL.GetResourceAvailabilities(new GetResourceAvailabilitiesRequest() { CountryCode = cc, LanguageID = language }); availableResources = getAvailableResources.Select(ar => ar.ItemID).ToList(); } else { var cc = filter.MarketFilter; var getAvailableResources = ExigoDAL.GetResourceAvailabilities(new GetResourceAvailabilitiesRequest() { CountryCode = cc }); availableResources = getAvailableResources.Select(ar => ar.ItemID).ToList(); } } model.ResourceList = model.ResourceList.Where(x => availableResources.Contains(x.ItemID)); if (!model.IsResourceManager) { model.ResourceList = model.ResourceList.Where(c => c.StatusID == ExigoDAL.ResourceStatuses.Active && (c.PostDate <= DateTime.Now.ToCST() || c.PostDate == null)).ToList(); } switch (sortType) { case "asc": model.ResourceList = model.ResourceList.OrderBy(c => c.CreatedDate); break; case "desc": model.ResourceList = model.ResourceList.OrderByDescending(c => c.CreatedDate); break; default: model.ResourceList = model.ResourceList.OrderBy(c => c.ItemOrder); break; } if (filter.MediaFilter != null && filter.MediaFilter.Count() > 0) { var typeIDs = model.Types.Select(v => v.TypeID); model.ResourceList = model.ResourceList.Where(x => typeIDs.Contains(x.TypeID)).ToList(); } if (filter.KeyWord != null && filter.KeyWord.Any()) { var keyword = filter.KeyWord; var tag = ExigoDAL.GetTagsForResources(new GetTagsForResourcesRequest() { Names = keyword }).FirstOrDefault(); if (tag != null) { var resourceitemtagIDs = ExigoDAL.GetResourceItemTags(new GetResourceItemTagsRequest() { TagID = tag.TagID }).AsEnumerable().Select(rt => rt.ItemID); model.ResourceList = model.ResourceList.Where(rl => resourceitemtagIDs.Contains(rl.ItemID)); } } var html = this.RenderPartialViewToString("Partials/_CategoryResourceItems", model); return(new JsonNetResult(new { success = true, html = html })); } catch (Exception ex) { return(new JsonNetResult(new { success = false, message = ex.Message })); } }