Пример #1
0
        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);
            }
        }
Пример #4
0
 public IEnumerable <UserTaskVM> GetTaskByCriteria(UserTaskVM param, string userId, IEnumerable <UserDepartment> departments)
 {
     return(userTaskRepository.GetTaskByCriteria(param, userId, departments));
 }