//Agent Team CreateManage
        public ActionResult CreateTeam()
        {
            var model = new CallCenterTeamEditModel
            {
                AgentsMasterList = _organizationRoleUserRepository.GetIdNamePairofUsersByRole(Roles.CallCenterRep).Sort(OrderByDirection.Ascending, x => x.SecondValue)
            };

            return(View(model));
        }
示例#2
0
        public CallCenterTeamEditModel GetCallCenterTeamEditModel(long teamId)
        {
            var team = _callCenterTeamRepository.GetById(teamId);

            if (team == null)
            {
                return(null);
            }
            var currentAgentIds = _callCenterTeamRepository.GetTeamAgents(teamId);
            var agentMasterList = _organizationRoleUserRepository.GetIdNamePairofUsersByRole(Roles.CallCenterRep);
            var agentPairs      = agentMasterList.Where(x => currentAgentIds.Contains(x.FirstValue)).Select(x => x).ToArray();

            var masterListExceptAssignedAgents = agentMasterList.Select(x => x.FirstValue).Except(currentAgentIds);

            if (masterListExceptAssignedAgents.Any())
            {
                agentMasterList = agentMasterList.Where(x => masterListExceptAssignedAgents.Contains(x.FirstValue)).Select(x => x).ToArray();
            }
            else
            {
                agentMasterList = new List <OrderedPair <long, string> >();
            }

            return(new CallCenterTeamEditModel
            {
                Id = team.Id,
                Assignments = agentPairs.Sort(OrderByDirection.Ascending, x => x.SecondValue),
                Description = team.Description,
                Name = team.Name,
                TypeId = team.TypeId,
                AgentsMasterList = agentMasterList.Sort(OrderByDirection.Ascending, x => x.SecondValue)
            });
        }
示例#3
0
        public void PollForEvaluationReminderNotification()
        {
            _logger.Info("Starting the Polling Agent for Evaluation Reminder Notification.");

            var value = _configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.SendEmptyQueueEvaluationReminder);

            var physicians = _organizationRoleUserRepository.GetIdNamePairofUsersByRole(Roles.MedicalVendorUser);

            foreach (var orderedPair in physicians)
            {
                var overReadEvaluationPair = _physicianRepository.GetEventCustomerIdForOverReadPhysicianEvaluation(orderedPair.FirstValue);
                var evaluationPair         = _physicianRepository.GetEventCustomerIdForPhysicianEvaluation(orderedPair.FirstValue);
                if ((value.ToLower() == bool.TrueString.ToLower()) || (evaluationPair.ItemsAvailable > 0 || overReadEvaluationPair.ItemsAvailable > 0))
                {
                    try
                    {
                        var createdByOrgRoleUserId =
                            _organizationRoleUserRepository.GetOrganizationRoleUserIdsForRole((long)Roles.FranchisorAdmin).First();

                        var orgRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(orderedPair.FirstValue);

                        var evaluationReminderNotificationModel = _emailNotificationModelsFactory.GetEvaluationReminderNotificationModel(orderedPair.FirstValue);
                        _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.EvaluationReminder, EmailTemplateAlias.EvaluationReminder, evaluationReminderNotificationModel, orgRoleUser.UserId, createdByOrgRoleUserId, "Evaluation Reminder Notification");
                    }
                    catch (Exception ex)
                    {
                        _logger.Info(
                            String.Format("\n System failure: For Physician:{0} \n Message{1}", orderedPair.SecondValue,
                                          ex.Message));
                    }
                }
                else
                {
                    _logger.Info(String.Format("\n No Evaluation Pending For Physician:{0}", orderedPair.SecondValue));
                }
            }
        }