Exemplo n.º 1
0
        public ActionResult SearchSlaList(SlaSearchFilter searchFilter)
        {
            Logger.Info(_logMsg.Clear().SetPrefixMsg("Search SLA").ToInputLogString());

            try
            {
                if (ModelState.IsValid)
                {
                    _slaFacade = new SlaFacade();
                    SlaViewModel slaVM = new SlaViewModel();
                    slaVM.SearchFilter = searchFilter;

                    slaVM.SlaList    = _slaFacade.GetSlaList(slaVM.SearchFilter);
                    ViewBag.PageSize = slaVM.SearchFilter.PageSize;

                    return(PartialView("~/Views/Sla/_SlaList.cshtml", slaVM));
                }

                return(Json(new
                {
                    Valid = false,
                    Error = string.Empty
                }));
            }
            catch (Exception ex)
            {
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Search SLA").ToFailLogString());
                return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 this.ControllerContext.RouteData.Values["action"].ToString())));
            }
        }
Exemplo n.º 2
0
        public IEnumerable <SlaItemEntity> GetSlaList(SlaSearchFilter searchFilter)
        {
            var resultQuery = (from sla in _context.TB_M_SLA
                               from createUser in _context.TB_R_USER.Where(x => x.USER_ID == sla.CREATE_USER).DefaultIfEmpty()
                               from updateUser in _context.TB_R_USER.Where(x => x.USER_ID == sla.UPDATE_USER).DefaultIfEmpty()
                               from st in _context.TB_C_SR_STATUS.Where(x => x.SR_STATUS_ID == sla.SR_STATUS_ID).DefaultIfEmpty()
                               from ste in _context.TB_C_SR_STATE.Where(x => x.SR_STATE_ID == st.SR_STATE_ID).DefaultIfEmpty()
                               where ((!searchFilter.ProductGroupId.HasValue || sla.TB_R_PRODUCT.PRODUCTGROUP_ID == searchFilter.ProductGroupId) &&
                                      (!searchFilter.ProductId.HasValue || sla.PRODUCT_ID == searchFilter.ProductId) &&
                                      (!searchFilter.CampaignServiceId.HasValue || sla.CAMPAIGNSERVICE_ID == searchFilter.CampaignServiceId) &&
                                      (!searchFilter.AreaId.HasValue || sla.AREA_ID == searchFilter.AreaId) &&
                                      (!searchFilter.SubAreaId.HasValue || sla.SUBAREA_ID == searchFilter.SubAreaId) &&
                                      (!searchFilter.TypeId.HasValue || sla.TYPE_ID == searchFilter.TypeId) &&
                                      (!searchFilter.ChannelId.HasValue || searchFilter.ChannelId == Constants.ApplicationStatus.All || searchFilter.ChannelId == sla.CHANNEL_ID) &&
                                      (!searchFilter.SrStatusId.HasValue || searchFilter.SrStatusId == Constants.ApplicationStatus.All || searchFilter.SrStatusId == sla.SR_STATUS_ID) &&
                                      (!searchFilter.SrStateId.HasValue || searchFilter.SrStateId == Constants.ApplicationStatus.All ||
                                       ste.SR_STATE_ID == searchFilter.SrStateId))
                               select new SlaItemEntity
            {
                SlaId = sla.SLA_ID,
                ProductGroupName = sla.TB_R_PRODUCT.TB_R_PRODUCTGROUP.PRODUCTGROUP_NAME,
                ProductName = sla.TB_R_PRODUCT.PRODUCT_NAME,
                CampaignName = sla.TB_R_CAMPAIGNSERVICE.CAMPAIGNSERVICE_NAME,
                TypeName = sla.TB_M_TYPE.TYPE_NAME,
                AreaName = sla.TB_M_AREA.AREA_NAME,
                SubAreaName = sla.TB_M_SUBAREA.SUBAREA_NAME,
                ChannelName = sla.TB_R_CHANNEL.CHANNEL_NAME,
                IsActive = sla.SLA_IS_ACTIVE,
                StateName = ste.SR_STATE_NAME,
                StatusName = sla.TB_C_SR_STATUS.SR_STATUS_NAME,
                SlaMinute = sla.SLA_MINUTE,
                SlaTimes = sla.SLA_TIMES,
                AlertChiefTimes = sla.ALERT_CHIEF_TIMES,
                AlertChief1Times = sla.ALERT_CHIEF1_TIMES,
                AlertChief2Times = sla.ALERT_CHIEF2_TIMES,
                AlertChief3Times = sla.ALERT_CHIEF3_TIMES,
                SlaDay = sla.SLA_DAY,
                UpdateUser = (updateUser != null ? new UserEntity
                {
                    PositionCode = updateUser.POSITION_CODE,
                    Firstname = updateUser.FIRST_NAME,
                    Lastname = updateUser.LAST_NAME
                } : null),
                UpdateDate = sla.UPDATE_DATE
            });

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

            searchFilter.TotalRecords = resultQuery.Count();

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

            resultQuery = SetSlaListSort(resultQuery, searchFilter);
            return(resultQuery.Skip(startPageIndex).Take(searchFilter.PageSize).ToList());
        }
Exemplo n.º 3
0
 public IEnumerable <SlaItemEntity> GetSlaList(SlaSearchFilter searchFilter)
 {
     _slaDataAccess = new SlaDataAccess(_context);
     return(_slaDataAccess.GetSlaList(searchFilter));
 }
Exemplo n.º 4
0
        private static IQueryable <SlaItemEntity> SetSlaListSort(IQueryable <SlaItemEntity> slaList, SlaSearchFilter searchFilter)
        {
            if (searchFilter.SortField == null)
            {
                searchFilter.SortField = "";
            }

            if (searchFilter.SortOrder.ToUpper(CultureInfo.InvariantCulture).Equals("ASC"))
            {
                switch (searchFilter.SortField.ToUpper(CultureInfo.InvariantCulture))
                {
                case "ProductGroup":
                    return(slaList.OrderBy(q => q.ProductName));

                case "Product":
                    return(slaList.OrderBy(q => q.ProductName));

                case "Campaign":
                    return(slaList.OrderBy(q => q.CampaignName));

                case "Type":
                    return(slaList.OrderBy(q => q.TypeName));

                case "Area":
                    return(slaList.OrderBy(q => q.AreaName));

                case "SubArea":
                    return(slaList.OrderBy(q => q.SubAreaName));

                default:
                    return
                        (slaList.OrderBy(a => a.ProductGroupName)
                         .ThenBy(a => a.ProductName)
                         .ThenBy(a => a.CampaignName)
                         .ThenBy(a => a.TypeName)
                         .ThenBy(a => a.AreaName)
                         .ThenBy(a => a.SubAreaName));
                }
            }
            else
            {
                switch (searchFilter.SortField.ToUpper(CultureInfo.InvariantCulture))
                {
                case "ProductGroup":
                    return(slaList.OrderByDescending(q => q.ProductName));

                case "Product":
                    return(slaList.OrderByDescending(q => q.ProductName));

                case "Campaign":
                    return(slaList.OrderByDescending(q => q.CampaignName));

                case "Type":
                    return(slaList.OrderByDescending(q => q.TypeName));

                case "Area":
                    return(slaList.OrderByDescending(q => q.AreaName));

                case "SubArea":
                    return(slaList.OrderByDescending(q => q.SubAreaName));

                default:
                    return
                        (slaList.OrderByDescending(a => a.ProductGroupName)
                         .ThenByDescending(a => a.ProductName)
                         .ThenByDescending(a => a.CampaignName)
                         .ThenByDescending(a => a.TypeName)
                         .ThenByDescending(a => a.AreaName)
                         .ThenByDescending(a => a.SubAreaName));
                }
            }
        }