Ejemplo n.º 1
0
        public ActionResult Create(CallQueueEditModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                model = _callQueueService.SaveCallQueue(model, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId);
                var callQueue  = _callQueueRepository.GetById(model.Id);
                var queueCount = _outboundCallQueueService.GetCallQueueCustomers(callQueue).Count;

                ModelState.Clear();
                var newModel = new CallQueueEditModel
                {
                    FeedbackMessage = queueCount > 0
                     ? FeedbackMessageModel.CreateSuccessMessage(string.Format("Call Queue created sucessfully. You can create more call queue or close this page. Based on the Queue created, currently there are {0} records satisfying the criteria(s).", queueCount))
                     : FeedbackMessageModel.CreateWarningMessage(string.Format("Call Queue created sucessfully. You can create more call queue or close this page. Based on the Queue created, currently there are {0} records satisfying the criteria(s).", queueCount))
                };
                return(View(newModel));
            }
            catch (Exception ex)
            {
                model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("System Error:" + ex.Message);
                return(View(model));
            }
        }
Ejemplo n.º 2
0
        public ActionResult Create()
        {
            var model = new CallQueueEditModel();

            return(View(model));
        }
Ejemplo n.º 3
0
        public CallQueueEditModel SaveCallQueue(CallQueueEditModel callQueueEditModel, long orgRoleUserId)
        {
            var callQueue = Mapper.Map <CallQueueEditModel, CallQueue>(callQueueEditModel);

            if (callQueue.Id > 0)
            {
                var callQueueInDb = _callQueueRepository.GetById(callQueue.Id);
                callQueue.DataRecorderMetaData                      = callQueueInDb.DataRecorderMetaData;
                callQueue.LastQueueGeneratedDate                    = callQueueInDb.LastQueueGeneratedDate;
                callQueue.DataRecorderMetaData.DateModified         = DateTime.Now;
                callQueue.DataRecorderMetaData.DataRecorderModifier = new OrganizationRoleUser(orgRoleUserId);
            }
            else
            {
                callQueue.DataRecorderMetaData = new DataRecorderMetaData(orgRoleUserId, DateTime.Now, null);
            }
            Script script = null;

            if (callQueueEditModel.ScriptId > 0)
            {
                script              = _scriptRepository.GetById(callQueueEditModel.ScriptId);
                script.ScriptText   = callQueueEditModel.ScriptText;
                script.DateModified = DateTime.Now;
            }
            else
            {
                script = new Script
                {
                    Name         = callQueueEditModel.Name,
                    ScriptText   = callQueueEditModel.ScriptText,
                    Description  = "",
                    DateCreated  = DateTime.Now,
                    DateModified = DateTime.Now,
                    ScriptTypeId = (long)ScriptType.OutboundCallQueueScript
                };
            }

            script             = _scriptRepository.Save(script);
            callQueue.ScriptId = script.Id;

            callQueue = _callQueueRepository.Save(callQueue);


            foreach (var criteriaEditModel in callQueueEditModel.Criterias)
            {
                criteriaEditModel.CallQueueId = callQueue.Id;
            }
            var criterias = Mapper.Map <IEnumerable <CallQueueCriteriaEditModel>, IEnumerable <CallQueueCriteria> >(callQueueEditModel.Criterias);

            _callQueueCriteriaRepository.Save(criterias, callQueue.Id);

            foreach (var callQueueAssignmentEditModel in callQueueEditModel.Assignments)
            {
                callQueueAssignmentEditModel.CallQueueId = callQueue.Id;
            }
            var assignments = Mapper.Map <IEnumerable <CallQueueAssignmentEditModel>, IEnumerable <CallQueueAssignment> >(callQueueEditModel.Assignments);

            _callQueueAssignmentRepository.Save(assignments, callQueue.Id);

            callQueueEditModel.Id       = callQueue.Id;
            callQueueEditModel.ScriptId = script.Id;

            return(callQueueEditModel);
        }