public JsonResult <object> PostsDataHandler(PostDTViewModel param) { try { return(Json((object)PostingService.PostsDataHandler(param, User.Identity.GetUserId()))); } catch (Exception ex) { return(Json((object)(new { error = ex.Message }))); } }
public DTResult <PostViewModel> PostsDataHandler(PostDTViewModel param, string userId) { try { var dtsource = PostRepository.FindAll(w => w.UserId == userId && w.SocialNetworkId == param.SocialNetworkId && w.Status != EntityStatus.Disabled) .Select(t => new PostViewModel { Id = t.Id, Name = t.Name, DateOfCreation = t.DateOfCreation, DateOfPublish = t.DateOfPublish, Status = t.Status.ToString(), StatusOfSending = t.SendingStatus.ToString() }); List <String> columnFilters = new List <string>(); foreach (var col in param.Columns) { columnFilters.Add(col.Search.Value); } var search = param.Search.Value.ToLower(); var col0 = columnFilters[0]; var col1 = columnFilters[1]; var col2 = columnFilters[2]; var col3 = columnFilters[3]; var col4 = columnFilters[4]; var col5 = columnFilters[5]; Expression <Func <PostViewModel, bool> > predicate = p => (search == null || ((p.Name != null && p.Name.ToLower().Contains(search)) || (p.DateOfCreation != null && p.DateOfCreation.ToString().ToLower().Contains(search)) || (p.DateOfPublish != null && p.DateOfPublish.ToString().ToLower().Contains(search)) || (p.StatusOfSending != null && p.StatusOfSending.ToString().ToLower().Contains(search)) || (p.Status != null && p.Status.ToString().ToLower().Contains(search))) && (col1 == null || (p.Name != null && p.Name.ToLower().Contains(col1))) && (col2 == null || (p.DateOfCreation != null && p.DateOfCreation.ToString().ToLower().Contains(col2))) && (col3 == null || (p.DateOfPublish != null && p.DateOfPublish.ToString().ToLower().Contains(col3))) && (col4 == null || (p.StatusOfSending != null && p.StatusOfSending.ToString().ToLower().Contains(col4))) && (col5 == null || (p.Status != null && p.Status.ToString().ToLower().Contains(col5)))); List <PostViewModel> data = new ResultSet <PostViewModel>().GetResult(param.Search.Value, param.SortOrder, param.Start, param.Length, dtsource, predicate); int count = new ResultSet <PostViewModel>().Count(param.Search.Value, dtsource, predicate); DTResult <PostViewModel> result = new DTResult <PostViewModel> { draw = param.Draw, data = data.Select(p => new PostViewModel { Id = p.Id, Name = p.Name, DateOfCreation = p.DateOfCreation, DateOfPublish = p.DateOfPublish, StatusOfSending = p.StatusOfSending, Status = p.Status }).ToList(), recordsFiltered = count, recordsTotal = count }; return(result); } catch (Exception ex) { throw ex; } }