public ActionResult UserTaskList(DataTablesViewModel param, string type) { try { if (!PermissionControl.CheckPermission(UserAppPermissions.UserTask_View)) { return(RedirectToAction("Restricted", "Home")); } if (string.IsNullOrEmpty(type)) { type = User.Identity.GetUserId(); } logger.DebugFormat("Getting User Task List with Ticket Type [{0}]", type); UserTaskVM userTask = new UserTaskVM(); userTask.DTObject = param; var userDepartments = userdepartmentManagement.GetAllUserDepartmentById(User.Identity.GetUserId()); var list = userTaskManagement.GetTaskByCriteria(userTask, type, userDepartments); logger.DebugFormat("Successfully Retrieve User Task List Records [{1}] with Ticket Type [{0}]", type, list.Count()); return(Json(new { sEcho = param.draw, iTotalRecords = list.Select(i => i.DTObject.TotalRecordsCount).FirstOrDefault(), iTotalDisplayRecords = list.Select(i => i.DTObject.TotalRecordsCount).FirstOrDefault(), // Filtered Count aaData = list })); } catch (Exception ex) { logger.ErrorFormat("Exception Raised : Message[{0}] Stack Trace [{1}] ", ex.Message, ex.StackTrace); return(null); } }
private IQueryable <UserTaskVM> GetUserTaskFiltersOrderQuery(IQueryable <UserTaskVM> query, UserTaskVM param, bool forAll = false) { try { if (param == null) { return(query); } int index = -1; foreach (var columnData in param.DTObject.columns) { index += 1; if (columnData.orderable) { foreach (var row in param.DTObject.order.Where(i => i.column == index)) { if (row.dir == "asc") { query = query.OrderBy(columnData.data); } else { query = query.OrderByDescending(columnData.data); } } } if (columnData.search.value == null || string.IsNullOrEmpty(columnData.search.value.Trim())) { continue; } switch (columnData.data) { case "Description": if (!forAll) { query = query.Where(col => col.Description.ToUpper().Contains(columnData.search.value.ToUpper())); } break; } } string id = Utility.CovertID(param.DTObject.search.value, "UT-"); if (param.DTObject.search.value != null && !string.IsNullOrEmpty(param.DTObject.search.value)) { query = query.Where(col => ( col.Description.ToUpper().Contains(param.DTObject.search.value.ToUpper()) || col.Title.ToUpper().Contains(param.DTObject.search.value.ToUpper()) || col.Status.ToString().Contains(param.DTObject.search.value.ToUpper()) || col.Priority.ToString().Contains(param.DTObject.search.value.ToUpper()) || col.UserTaskID.ToString().Equals(id))); } return(query); return(query); } catch (Exception ex) { logger.ErrorFormat("Exception Raised : Message[{0}] Stack Trace [{1}] ", ex.Message, ex.StackTrace); return(null); } }
public IEnumerable <UserTaskVM> GetTaskByCriteria(UserTaskVM param, string userId, IEnumerable <UserDepartment> departments) { try { List <long> deptId = new List <long>(); foreach (var depts in departments) { deptId.Add(depts.DepartmentID); } IQueryable <UserTaskVM> query = null; if (userId == "1") { query = (from Record in DbContext.UserTasks.AsNoTracking() join UTD in DbContext.UserTaskDetails.AsNoTracking() on Record.UserTaskID equals UTD.UserTaskID join FU in DbContext.Users.AsNoTracking() on UTD.FromUserID.ToString() equals FU.Id join TU in DbContext.Users.AsNoTracking() on UTD.ToUserID.ToString() equals TU.Id join userdept in DbContext.UserDepartments.AsNoTracking() on FU.Id equals userdept.UserID where !Record.IsDeleted && UTD.IsActive orderby Record.CreatedOn descending where deptId.Contains(userdept.DepartmentID) select new UserTaskVM { UserTaskID = Record.UserTaskID, Title = Record.Title, Description = Record.Description, Type = Record.Type, Priority = Record.Priority, DueDate = Record.DueDate, FromUser = FU.FirstName + " " + FU.LastName, ToUser = TU.FirstName + " " + TU.LastName, Remarks = UTD.Remarks, Status = UTD.Status, CreatedDate = Record.CreatedOn }).Distinct(); } else { query = (from Record in DbContext.UserTasks.AsNoTracking() join UTD in DbContext.UserTaskDetails.AsNoTracking() on Record.UserTaskID equals UTD.UserTaskID join FU in DbContext.Users.AsNoTracking() on UTD.FromUserID.ToString() equals FU.Id join TU in DbContext.Users.AsNoTracking() on UTD.ToUserID.ToString() equals TU.Id where !Record.IsDeleted && UTD.IsActive orderby Record.CreatedOn descending where (UTD.ToUserID.ToString() == userId && UTD.Status != "Closed") select new UserTaskVM { UserTaskID = Record.UserTaskID, Title = Record.Title, Description = Record.Description, Type = Record.Type, Priority = Record.Priority, DueDate = Record.DueDate, FromUser = FU.FirstName + " " + FU.LastName, ToUser = TU.FirstName + " " + TU.LastName, Remarks = UTD.Remarks, Status = UTD.Status, CreatedDate = Record.CreatedOn }); } query = GetUserTaskFiltersOrderQuery(query, param); int totalRecord = query.Count(); var pettyCashList = query.Skip(param.DTObject.start).Take(param.DTObject.length).ToList().Select(index => new UserTaskVM { UserTaskID = index.UserTaskID, Title = index.Title, Description = index.Description, Type = index.Type, Priority = index.Priority, DueDate = index.DueDate, FromUser = index.FromUser, ToUser = index.ToUser, Remarks = index.Remarks, Status = index.Status, CreatedDate = index.CreatedDate, DTObject = new DataTablesViewModel() { TotalRecordsCount = totalRecord } }).ToList(); return(pettyCashList); } catch (Exception ex) { logger.ErrorFormat("Exception Raised : Message[{0}] Stack Trace [{1}] ", ex.Message, ex.StackTrace); return(null); } }
public IEnumerable <UserTaskVM> GetTaskByCriteria(UserTaskVM param, string userId, IEnumerable <UserDepartment> departments) { return(userTaskRepository.GetTaskByCriteria(param, userId, departments)); }