public ActionResult Create(HealthPlanCallQueueCriteriaEditModel model) { try { if (!ModelState.IsValid) { return(View(model)); } else { //if ((model.Assignments == null && model.CallCenterTeamAssignments == null) // || // ((model.Assignments != null && !model.Assignments.Any()) && (model.CallCenterTeamAssignments != null && !model.CallCenterTeamAssignments.Any()))) //{ // model.FeedbackMessage = FeedbackMessageModel.CreateWarningMessage("Assignment must exist"); // return View(model); //} var healthPlanCriteria = _healthPlanCallQueueCriteriaRepository.GetCriteriaByHealthPlanCallQueue(model.HealthPlanId, model.CallQueue); if (!string.IsNullOrWhiteSpace(model.CriteriaName)) { model.CriteriaName = model.CriteriaName.Trim(); var criteriaNameList = _healthPlanCallQueueCriteriaRepository.GetAllHealthPlanCallQueueCriteriaNames(); if (criteriaNameList.Any(x => x.ToLower() == model.CriteriaName.ToLower())) { model.FeedbackMessage = FeedbackMessageModel.CreateWarningMessage("Name already exists"); return(View(model)); } } if (model.CallQueue == HealthPlanCallQueueCategory.AppointmentConfirmation) { var healthPlanCallQueueCriteria = _healthPlanCallQueueCriteriaRepository.GetQueueCriteriaForQueueByLanguage(model.CallQueue, model.HealthPlanId, model.LanguageId); if (healthPlanCallQueueCriteria != null) { model.FeedbackMessage = FeedbackMessageModel.CreateWarningMessage("Criteria already exists for selected language."); return(View(model)); } } bool isCriteriaExist = CheckHealthPlanCallQueueCriteriaAlreadyExists(model, healthPlanCriteria); if (isCriteriaExist) { model.FeedbackMessage = FeedbackMessageModel.CreateWarningMessage("Criteria for same healthplan and call queue exist"); return(View(model)); } else { //if (model.Id > 0) //{ // //check if user has changed mode of assignment (agent assignment or team assignment) // var isTeamAssignmentOld = // _healthPlanCriteriaTeamAssignmentRepository.GetTeamAssignments(model.Id).Any(); // var isAgentAssignmentOld = // _healthPlanCriteriaAssignmentRepository.GetByCriteriaId(model.Id).Any(); // if (model.IsTeamAssignment && isAgentAssignmentOld) //delete old agent assignments // { // _healthPlanCriteriaAssignmentRepository.DeleteByCriteriaId(model.Id); // } // else if (!model.IsTeamAssignment && isTeamAssignmentOld) //delete old team assignments // { // _healthPlanCriteriaTeamAssignmentRepository.DeleteAssignmentsForCriteria(model.Id); // } //} _healthPlanCallQueueCriteriaService.SaveHealthPlanCallQueueCriteria(model, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId, false); ModelState.Clear(); model.FeedbackMessage = FeedbackMessageModel.CreateSuccessMessage("Criteria for healthplan and call queue created successfully"); } } return(RedirectToAction("ManageCriteria")); } catch (Exception ex) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("System Error:" + ex.Message); return(View(model)); } }