示例#1
0
        public ActionResult SearchGroupAssign(GroupAssignSearchFilter searchFilter)
        {
            Logger.Info(_logMsg.Clear().SetPrefixMsg("User Monitoring :: Search GroupAssign").ToInputLogString());

            try
            {
                if (ModelState.IsValid)
                {
                    _userMonitoringFacade = new UserMonitoringFacade();

                    var viewModel = new SearchGroupAssignViewModel();
                    viewModel.SearchFilter = searchFilter;
                    viewModel.ResultList   = _userMonitoringFacade.SearchGroupAssign(searchFilter);
                    ViewBag.PageSize       = viewModel.SearchFilter.PageSize;

                    Logger.Info(_logMsg.Clear().SetPrefixMsg("User Monitoring :: Search GroupAssign").ToSuccessLogString());
                    return(PartialView("~/Views/UserMonitoring/_SearchGroupAssign.cshtml", viewModel));
                }

                return(Json(new
                {
                    Valid = false,
                    Error = string.Empty,
                    Errors = GetModelValidationErrors()
                }));
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                Logger.Info(_logMsg.Clear().SetPrefixMsg("User Monitoring :: Search GroupAssign").Add("Error Message", ex.Message).ToFailLogString());
                return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 this.ControllerContext.RouteData.Values["action"].ToString())));
            }
        }
示例#2
0
        public List <GroupAssignEntity> SearchGroupAssign(GroupAssignSearchFilter searchFilter)
        {
            //var branchIds = searchFilter.BranchIds.Split(',').Select(Int32.Parse).ToList();
            var ignoreStatusList = new int?[] { Constants.SRStatusId.Cancelled, Constants.SRStatusId.Closed };
            var branchIds        = StringHelpers.ConvertStringToList(searchFilter.BranchIds, ',').Select(x => Int32.Parse((string)x)).ToList();

            var fromDate = searchFilter.AssignDateFromValue.HasValue ? searchFilter.AssignDateFromValue.Value.Date : new Nullable <DateTime>();
            var toDate   = searchFilter.AssignDateToValue.HasValue ? searchFilter.AssignDateToValue.Value.Date : new Nullable <DateTime>();

            var query = from branch in _context.TB_R_BRANCH
                        from dummyUser in _context.TB_R_USER.Where(x => x.BRANCH_ID.HasValue && x.BRANCH_ID.Value == branch.BRANCH_ID && (x.IS_GROUP ?? false)).OrderByDescending(x => x.EMAIL).Take(1).DefaultIfEmpty()
                        where branchIds.Contains(branch.BRANCH_ID) && branch.STATUS == 1
                        select new GroupAssignEntity
            {
                BranchId    = branch.BRANCH_ID,
                BranchCode  = branch.BRANCH_CODE,
                BranchName  = branch.BRANCH_NAME,
                Email       = dummyUser != null ? dummyUser.EMAIL : string.Empty,
                OwnerSrList = (from sr in _context.TB_T_SR
                               where sr.OWNER_USER_ID.HasValue &&
                               _context.TB_R_USER.Where(x => (x.IS_GROUP ?? false) && x.BRANCH_ID == branch.BRANCH_ID).Select(x => x.USER_ID).Contains(sr.OWNER_USER_ID.Value) &&
                               (!searchFilter.ProductId.HasValue || sr.PRODUCT_ID == searchFilter.ProductId.Value) &&
                               (!searchFilter.CampaignServiceId.HasValue || sr.CAMPAIGNSERVICE_ID == searchFilter.CampaignServiceId.Value) &&
                               (!searchFilter.AreaId.HasValue || sr.AREA_ID == searchFilter.AreaId.Value) &&
                               (!searchFilter.SubAreaId.HasValue || sr.SUBAREA_ID == searchFilter.SubAreaId.Value) &&
                               (!fromDate.HasValue || EntityFunctions.TruncateTime(sr.CREATE_DATE.Value) >= fromDate.Value) &&
                               (!toDate.HasValue || EntityFunctions.TruncateTime(sr.CREATE_DATE.Value) <= toDate.Value)
                               //&& sr.SR_STATUS_ID != Constants.SRStatusId.Cancelled
                               //&& sr.SR_STATUS_ID != Constants.SRStatusId.Closed
                               && !ignoreStatusList.Contains(sr.SR_STATUS_ID)
                               select new ServiceRequestWithStatusEntity
                {
                    SrId = sr.SR_ID,
                    SrStatusCode = sr.TB_C_SR_STATUS.SR_STATUS_CODE
                }).ToList(),
                DelegateSrList = (from sr in _context.TB_T_SR
                                  where sr.DELEGATE_USER_ID.HasValue &&
                                  _context.TB_R_USER.Where(x => (x.IS_GROUP ?? false) && x.BRANCH_ID == branch.BRANCH_ID).Select(x => x.USER_ID).Contains(sr.DELEGATE_USER_ID.Value) &&
                                  (!searchFilter.ProductId.HasValue || sr.PRODUCT_ID == searchFilter.ProductId.Value) &&
                                  (!searchFilter.CampaignServiceId.HasValue || sr.CAMPAIGNSERVICE_ID == searchFilter.CampaignServiceId.Value) &&
                                  (!searchFilter.AreaId.HasValue || sr.AREA_ID == searchFilter.AreaId.Value) &&
                                  (!searchFilter.SubAreaId.HasValue || sr.SUBAREA_ID == searchFilter.SubAreaId.Value) &&
                                  (!fromDate.HasValue || EntityFunctions.TruncateTime(sr.CREATE_DATE.Value) >= fromDate.Value) &&
                                  (!toDate.HasValue || EntityFunctions.TruncateTime(sr.CREATE_DATE.Value) <= toDate.Value)
                                  //&& sr.SR_STATUS_ID != Constants.SRStatusId.Cancelled
                                  //&& sr.SR_STATUS_ID != Constants.SRStatusId.Closed
                                  && !ignoreStatusList.Contains(sr.SR_STATUS_ID)
                                  select new ServiceRequestWithStatusEntity
                {
                    SrId = sr.SR_ID,
                    SrStatusCode = sr.TB_C_SR_STATUS.SR_STATUS_CODE
                }).ToList(),
                CreateSrList = (from sr in _context.TB_T_SR
                                where sr.CREATE_USER.HasValue &&
                                _context.TB_R_USER.Where(x => (x.IS_GROUP ?? false) && x.BRANCH_ID == branch.BRANCH_ID).Select(x => x.USER_ID).Contains(sr.CREATE_USER.Value) &&
                                (!searchFilter.ProductId.HasValue || sr.PRODUCT_ID == searchFilter.ProductId.Value) &&
                                (!searchFilter.CampaignServiceId.HasValue || sr.CAMPAIGNSERVICE_ID == searchFilter.CampaignServiceId.Value) &&
                                (!searchFilter.AreaId.HasValue || sr.AREA_ID == searchFilter.AreaId.Value) &&
                                (!searchFilter.SubAreaId.HasValue || sr.SUBAREA_ID == searchFilter.SubAreaId.Value) &&
                                (!fromDate.HasValue || EntityFunctions.TruncateTime(sr.CREATE_DATE.Value) >= fromDate.Value) &&
                                (!toDate.HasValue || EntityFunctions.TruncateTime(sr.CREATE_DATE.Value) <= toDate.Value)
                                //&& sr.SR_STATUS_ID != Constants.SRStatusId.Cancelled
                                //&& sr.SR_STATUS_ID != Constants.SRStatusId.Closed
                                && !ignoreStatusList.Contains(sr.SR_STATUS_ID)
                                select new ServiceRequestWithStatusEntity
                {
                    SrId = sr.SR_ID,
                    SrStatusCode = sr.TB_C_SR_STATUS.SR_STATUS_CODE
                }).ToList(),
            };

            int startPageIndex = (searchFilter.PageNo - 1) * searchFilter.PageSize;

            searchFilter.TotalRecords = query.Count();
            if (startPageIndex >= searchFilter.TotalRecords)
            {
                startPageIndex      = 0;
                searchFilter.PageNo = 1;
            }

            query = SetGroupAssignSort(query, searchFilter);
            return(query.Skip(startPageIndex).Take(searchFilter.PageSize).ToList <GroupAssignEntity>());
        }
示例#3
0
        private static IQueryable <GroupAssignEntity> SetGroupAssignSort(IQueryable <GroupAssignEntity> resultList, GroupAssignSearchFilter searchFilter)
        {
            if (string.IsNullOrEmpty(searchFilter.SortOrder))
            {
                searchFilter.SortOrder = "ASC";
            }

            if (string.IsNullOrEmpty(searchFilter.SortField))
            {
                searchFilter.SortField = "BranchCode";
            }

            if (searchFilter.SortOrder.ToUpper(CultureInfo.InvariantCulture).Equals("ASC"))
            {
                switch (searchFilter.SortField.ToUpper(CultureInfo.InvariantCulture))
                {
                default:
                    return(resultList.OrderBy(a => a.BranchCode));
                }
            }
            else
            {
                switch (searchFilter.SortField.ToUpper(CultureInfo.InvariantCulture))
                {
                default:
                    return(resultList.OrderByDescending(a => a.BranchCode));
                }
            }
        }
示例#4
0
        public List <GroupAssignEntity> SearchGroupAssign(GroupAssignSearchFilter searchFilter)
        {
            var dataAccess = new UserMonitoringDataAccess(_context);

            return(dataAccess.SearchGroupAssign(searchFilter));
        }