예제 #1
0
        public IEnumerable <OrderedPair <long, long> > GetTotalCallcount(CallCenterBonusFilter filter, IEnumerable <long> callCenterAgentids)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                return((from c in linqMetaData.VwGetCallsForCalculatingBonus
                        where c.DateCreated >= filter.StartDate && c.DateCreated < filter.EndDate.Value.AddDays(1)
                        where callCenterAgentids.Contains(c.CreatedByOrgRoleUserId)
                        group c by c.CreatedByOrgRoleUserId into cgrp
                        select new OrderedPair <long, long>(cgrp.Key, cgrp.Count())).ToArray());
            }
        }
예제 #2
0
        public ActionResult AppointmentsShowed(CallCenterBonusFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;

            filter = filter ?? new CallCenterBonusFilter();

            var model = _callCenterBounsReportingService.GetAppointmentsShowed(pageNumber, _pageSize, filter, out totalRecords) ?? new AppointmentsShowedListModel();

            model.Filter = filter;

            var currentAction = ControllerContext.RouteData.Values["action"].ToString();

            Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.StartDate, filter.EndDate, filter.CallCenterAgentId });

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }
예제 #3
0
        public ActionResult CallCenterBonus(CallCenterBonusFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;

            filter = filter ?? new CallCenterBonusFilter();
            if (filter.PayPeriodId <= 0 || string.IsNullOrEmpty(filter.PayRange))
            {
                return(View(new CallCenterBonusListModel {
                    Filter = filter, FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Please select both the filters.")
                }));
            }

            var model = _callCenterBounsReportingService.GetCallCenterBonus(pageNumber, _pageSize, filter, out totalRecords) ?? new CallCenterBonusListModel();

            model.Filter = filter;

            var currentAction = ControllerContext.RouteData.Values["action"].ToString();

            Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.PayPeriodId, filter.CallCenterAgentId, filter.PayRange });

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }
예제 #4
0
        public IEnumerable <OrderedPair <long, string> > GetIdNamePairofUsersByRoleOrParentRole(CallCenterBonusFilter filter, int pageNumber, int pageSize, out int totalRecords)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                if (filter.CallCenterAgentId > 0)
                {
                    var callCenterAgent = (from u in linqMetaData.User
                                           join oru in linqMetaData.OrganizationRoleUser on u.UserId equals oru.UserId
                                           where (oru.OrganizationRoleUserId == filter.CallCenterAgentId) && oru.IsActive && u.IsActive
                                           select new OrderedPair <long, string>(oru.OrganizationRoleUserId, u.FirstName + " " + u.LastName))

                                          .OrderBy(op => op.SecondValue);

                    totalRecords = callCenterAgent.Count();

                    return(callCenterAgent.TakePage(pageNumber, pageSize).ToList());
                }

                var query = (from u in linqMetaData.User
                             join oru in linqMetaData.OrganizationRoleUser on u.UserId equals oru.UserId
                             join r in linqMetaData.Role on oru.RoleId equals r.RoleId
                             where (r.RoleId == (long)Roles.CallCenterRep || (r.ParentId.HasValue && r.ParentId.Value == (long)Roles.CallCenterRep)) && oru.IsActive && u.IsActive
                             select new OrderedPair <long, string>(oru.OrganizationRoleUserId, u.FirstName + " " + u.LastName))
                            .OrderBy(op => op.SecondValue);

                totalRecords = query.Count();

                return(query.TakePage(pageNumber, pageSize).ToList());
            }
        }
예제 #5
0
        public IEnumerable <OrderedPair <long, long> > GetCustomerAppeardOnEventCount(CallCenterBonusFilter filter, IEnumerable <long> callCenterAgentids)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                return((from ec in linqMetaData.EventCustomers
                        join oru in linqMetaData.OrganizationRoleUser on ec.CreatedByOrgRoleUserId equals oru.OrganizationRoleUserId
                        //join eaccount in linqMetaData.EventAccount on ec.EventId equals eaccount.EventId
                        join ea in linqMetaData.EventAppointment on ec.AppointmentId equals ea.AppointmentId
                        // join a in linqMetaData.Account on eaccount.AccountId equals a.AccountId
                        where ec.DateCreated >= filter.StartDate && ec.DateCreated < filter.EndDate.Value.AddDays(1) &&
                        callCenterAgentids.Contains(ec.CreatedByOrgRoleUserId) &&
                        ea.CheckinTime != null && !ec.NoShow
                        // && a.IsHealthPlan
                        group ec by ec.CreatedByOrgRoleUserId into cgrp
                        select new OrderedPair <long, long>(cgrp.Key, cgrp.Count())).ToArray());
            }
        }