private bool IsCriteriaIsSameAsPerious(HealthPlanCallQueueCriteriaEditModel model, HealthPlanCallQueueCriteria domain) { switch (model.CallQueue) { case HealthPlanCallQueueCategory.CallRound: return(domain.NoOfDays == model.NoOfDays && domain.RoundOfCalls == model.RoundOfCalls); case HealthPlanCallQueueCategory.ZipRadius: return(domain.Radius.HasValue && domain.ZipCode == model.Zipcode && domain.Radius.Value == model.Radius); case HealthPlanCallQueueCategory.FillEventsHealthPlan: return(domain.NoOfDays == model.NoOfDaysOfEvents && domain.Percentage == model.Percentage); case HealthPlanCallQueueCategory.NoShows: return(domain.StartDate == model.StartDate && domain.EndDate == model.EndDate); case HealthPlanCallQueueCategory.AppointmentConfirmation: return(domain.StartDate == model.StartDate && domain.EndDate == model.EndDate); case HealthPlanCallQueueCategory.LanguageBarrier: return(true); } return(false); }
private void SaveFileInfoForCsvUpload(HealthPlanCallQueueCriteriaEditModel model, HealthPlanCallQueueCriteria criteria) { if (!model.UploadFileName.IsNullOrEmpty()) { var file = new FileInfo(_mediaRepository.GetTempMediaFileLocation().PhysicalPath + model.UploadFileName); var files = new File { Path = file.Name, FileSize = file.Length, Type = FileType.Csv, UploadedBy = new OrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId), UploadedOn = file.CreationTime, IsArchived = false }; files = _fileRepository.Save(files); var healthPlanCriteriaAssignmentUpload = new HealthPlanCriteriaAssignmentUpload { FileId = files.Id, UploadTime = file.CreationTime, UploadedByOrgRoleUserId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId, CriteriaId = criteria.Id }; _healthPlanCriteriaAssignmentUploadRepository.Save(healthPlanCriteriaAssignmentUpload); model.UploadFileName = null; System.IO.File.Copy(_mediaRepository.GetTempMediaFileLocation().PhysicalPath + file.Name, _mediaRepository.GetMassAgentAssignmentUploadMediaFileLocation().PhysicalPath + file.Name); } }
private bool CheckHealthPlanCallQueueCriteriaAlreadyExists(HealthPlanCallQueueCriteriaEditModel model, IEnumerable <HealthPlanCallQueueCriteria> healthPlanCriterias) { bool isCriteriaExist = false; if (healthPlanCriterias != null && healthPlanCriterias.Any()) { healthPlanCriterias = healthPlanCriterias.Where(x => x.Id != model.Id); if (model.CallQueue == HealthPlanCallQueueCategory.CallRound) { isCriteriaExist = healthPlanCriterias.Any(x => x.NoOfDays == model.NoOfDays && x.RoundOfCalls == model.RoundOfCalls); } else if (model.CallQueue == HealthPlanCallQueueCategory.NoShows) { isCriteriaExist = healthPlanCriterias.Any(x => x.StartDate == model.StartDate && x.EndDate == model.EndDate); } else if (model.CallQueue == HealthPlanCallQueueCategory.FillEventsHealthPlan) { isCriteriaExist = healthPlanCriterias.Any(x => x.Percentage == model.Percentage && x.NoOfDays == model.NoOfDaysOfEvents); } else if (model.CallQueue == HealthPlanCallQueueCategory.ZipRadius) { isCriteriaExist = healthPlanCriterias.Any(x => x.ZipCode == model.Zipcode && x.Radius == model.Radius); } } return(isCriteriaExist); }
public HealthPlanCallQueueCriteria GetHealthPlanCallQueueCriteriaForNoShow(HealthPlanCallQueueCriteriaEditModel model, long orgRoleId) { return(new HealthPlanCallQueueCriteria { CallQueueId = model.CallQueueId, DataRecorderMetaData = new DataRecorderMetaData(orgRoleId, DateTime.Now, DateTime.Now), HealthPlanId = model.HealthPlanId, IsQueueGenerated = false, StartDate = model.StartDate, EndDate = model.EndDate, CriteriaName = model.CriteriaName }); }
public HealthPlanCallQueueCriteriaEditModel GetCriteriaEditModel(long criteriaId = 0) { bool isTeamAssignment = false; IEnumerable <HealthPlanCriteriaAssignment> criteriaAssignments = null; IEnumerable <HealthPlanCriteriaTeamAssignment> teamAssignments = null; if (criteriaId <= 0) { var defaultLanguageForConfirmation = _languageRepository.GetByName(DefaultLanguageForConfirmation); var emptyModel = new HealthPlanCallQueueCriteriaEditModel(); if (defaultLanguageForConfirmation != null) { emptyModel.LanguageId = defaultLanguageForConfirmation.Id; } return(emptyModel); } var criteria = _healthPlanCallQueueCriteriaRepository.GetById(criteriaId); var callQueue = _callQueueRepository.GetById(criteria.CallQueueId); var model = _healthPlanCallQueueCriteriaEditModelFactory.DomainToModel(criteria); criteriaAssignments = _healthPlanCriteriaAssignmentRepository.GetByCriteriaId(model.Id); if (!criteriaAssignments.Any()) { teamAssignments = _healthPlanCriteriaTeamAssignmentRepository.GetTeamAssignments(model.Id); isTeamAssignment = teamAssignments.Any(); } if (!isTeamAssignment) { var callQueueAssignmentEditModel = new List <CallQueueAssignmentEditModel>(); if (criteriaAssignments != null && criteriaAssignments.Any()) { var assignedToIds = criteriaAssignments.Select(x => x.AssignedToOrgRoleUserId).ToArray(); var nameIdPairs = _organizationRoleUserRepository.GetNameIdPairofUsers(assignedToIds); foreach (var assignedTo in assignedToIds) { var criteriaAssignment = criteriaAssignments.First(x => x.AssignedToOrgRoleUserId == assignedTo); callQueueAssignmentEditModel.Add(new CallQueueAssignmentEditModel { Name = nameIdPairs.First(x => x.FirstValue == assignedTo).SecondValue, AssignedOrgRoleUserId = assignedTo, StartDate = criteriaAssignment.StartDate, EndDate = criteriaAssignment.EndDate }); } } model.Assignments = callQueueAssignmentEditModel; model.CallCenterTeamAssignments = null; model.IsTeamAssignment = false; } else { var teamAssignmentEditModel = new List <HealthPlanCriteriaTeamAssignmentEditModel>(); var idnamePairOfTeams = _callCenterTeamRepository.GetIdNamePairOfTeams(teamAssignments.Select(x => x.TeamId).ToArray()); foreach (var healthPlanCriteriaTeamAssignment in teamAssignments) { var idnamePairOfTeam = idnamePairOfTeams.FirstOrDefault(x => x.FirstValue == healthPlanCriteriaTeamAssignment.TeamId); if (idnamePairOfTeam == null) { continue; } var assignmentEditModel = new HealthPlanCriteriaTeamAssignmentEditModel { TeamId = healthPlanCriteriaTeamAssignment.TeamId, Name = idnamePairOfTeam.SecondValue, StartDate = healthPlanCriteriaTeamAssignment.StartDate, EndDate = healthPlanCriteriaTeamAssignment.EndDate }; teamAssignmentEditModel.Add(assignmentEditModel); } model.CallCenterTeamAssignments = teamAssignmentEditModel; model.Assignments = null; model.IsTeamAssignment = true; } model.CallQueue = callQueue.Category; model.CallQueueId = callQueue.Id; if (callQueue.Category == HealthPlanCallQueueCategory.MailRound) { //var healthPlanCallQueueCriterias = _healthPlanCallQueueCriteriaRepository.GetCriteriaByHealthPlanCallQueue(model.HealthPlanId, HealthPlanCallQueueCategory.MailRound); var healthPlanCallQueueCriteria = _healthPlanCallQueueCriteriaRepository.GetById(criteriaId); //var campaigns = _campaignRepository.GetByIds(healthPlanCallQueueCriterias.Where(x => x.CampaignId.HasValue).Select(x => x.CampaignId.Value)); //var campaignIds = new List<long>(); //campaignIds.Add(healthPlanCallQueueCriteria.CampaignId.Value); //foreach (var campaign in campaigns) //{ // campaignIds.Add(campaign.Id); //} //model.Campaigns = campaignIds; var campaignDirectMailDates = new List <CampaignDirectMailDatesEditModel>(); var directMailDates = _healthPlanCriteriaDirectMailService.GetDirectMailDateEditModel(criteriaId); campaignDirectMailDates.Add(new CampaignDirectMailDatesEditModel { CampaignId = healthPlanCallQueueCriteria.CampaignId.Value, DirectMailDateActivities = directMailDates }); model.CampaignDirectMailDates = campaignDirectMailDates; } return(model); }
public HealthPlanCallQueueCriteriaEditModel SaveHealthPlanCallQueueCriteria(HealthPlanCallQueueCriteriaEditModel model, long orgRoleId, bool isCriteriaSameAsPervious) { var callQueue = _callQueueRepository.GetCallQueueByCategory(model.CallQueue); model.CallQueueId = callQueue.Id; model.IsCriteriaSameAsPervious = isCriteriaSameAsPervious; if (model.CallQueue == HealthPlanCallQueueCategory.MailRound) { model.IsCriteriaSameAsPervious = true; var healthPlanCallQueueCriterias = new List <HealthPlanCallQueueCriteria>(); HealthPlanCallQueueCriteria existingCriteria = model.Id > 0 ? _healthPlanCallQueueCriteriaRepository.GetById(model.Id) : null; foreach (var campaign in model.CampaignDirectMailDates) { var criteria = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCallQueueCriteriaForMailRound(model, campaign.CampaignId, orgRoleId); if (existingCriteria != null) { if (existingCriteria.CampaignId.HasValue && model.CampaignDirectMailDates.Any(x => x.CampaignId == existingCriteria.CampaignId.Value)) { if (campaign.CampaignId == existingCriteria.CampaignId.Value) { criteria.Id = model.Id; criteria.IsQueueGenerated = existingCriteria.IsQueueGenerated; } } else { if (campaign.CampaignId == model.CampaignDirectMailDates.First().CampaignId) { criteria.Id = model.Id; } } } if (criteria.Id > 0) { var directmailActivities = _healthPlanCriteriaDirectMailRepository.GetByCriteriaId(criteria.Id); if (directmailActivities.IsNullOrEmpty() && !campaign.DirectMailDateActivities.IsNullOrEmpty()) { criteria.IsQueueGenerated = false; model.IsCriteriaSameAsPervious = false; } else if (!directmailActivities.IsNullOrEmpty() && campaign.DirectMailDateActivities.IsNullOrEmpty()) { criteria.IsQueueGenerated = false; model.IsCriteriaSameAsPervious = false; } else if (!directmailActivities.IsNullOrEmpty() && !campaign.DirectMailDateActivities.IsNullOrEmpty()) { if (directmailActivities.Count() != campaign.DirectMailDateActivities.Count()) { criteria.IsQueueGenerated = false; model.IsCriteriaSameAsPervious = false; } else { var activtyIdsInDB = directmailActivities.Select(x => x.CampaignActivityId); var activityIdsInModel = campaign.DirectMailDateActivities.Select(x => x.ActivityId); if (!(activtyIdsInDB.All(activityIdsInModel.Contains) && activityIdsInModel.All(activtyIdsInDB.Contains))) { criteria.IsQueueGenerated = false; model.IsCriteriaSameAsPervious = false; } } } } else { criteria.IsQueueGenerated = false; model.IsCriteriaSameAsPervious = false; } criteria = _healthPlanCallQueueCriteriaRepository.Save(criteria); if (!campaign.DirectMailDateActivities.IsNullOrEmpty()) { var activityIds = campaign.DirectMailDateActivities.Select(x => x.ActivityId); _healthPlanCriteriaDirectMailRepository.Save(activityIds, criteria.Id); } healthPlanCallQueueCriterias.Add(criteria); } if (!model.IsTeamAssignment) { foreach (var healthPlanCallQueueCriteria in healthPlanCallQueueCriterias) { SaveFileInfoForCsvUpload(model, healthPlanCallQueueCriteria); } if (!model.Assignments.IsNullOrEmpty()) { var assignments = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCriteriaAssignmentForMailRound(model.Assignments, healthPlanCallQueueCriterias, orgRoleId); _healthPlanCriteriaAssignmentRepository.Save(model.HealthPlanId, model.CallQueueId, model.Id, assignments); } } else { if (!model.CallCenterTeamAssignments.IsNullOrEmpty()) { var assignments = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCriteriaTeamAssignmentForMailRound(model.CallCenterTeamAssignments, healthPlanCallQueueCriterias, orgRoleId); _healthPlanCriteriaTeamAssignmentRepository.Save(assignments); } } } else if (model.CallQueue == HealthPlanCallQueueCategory.LanguageBarrier) { var healthPlanCallQueueCriteria = _healthPlanCallQueueCriteriaRepository.GetQueueCriteriaForQueue(model.CallQueueId, model.HealthPlanId); if (!model.IsTeamAssignment) { if (!model.Assignments.IsNullOrEmpty()) { SaveFileInfoForCsvUpload(model, healthPlanCallQueueCriteria); var assignments = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCriteriaAssignment(model.Assignments, healthPlanCallQueueCriteria.Id, orgRoleId); _healthPlanCriteriaAssignmentRepository.Save(model.HealthPlanId, model.CallQueueId, model.Id, assignments); } } else { if (!model.CallCenterTeamAssignments.IsNullOrEmpty()) { var assignments = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCriteriaTeamAssignment(model.CallCenterTeamAssignments, healthPlanCallQueueCriteria, orgRoleId); _healthPlanCriteriaTeamAssignmentRepository.Save(assignments); } } } else if (model.CallQueue == HealthPlanCallQueueCategory.AppointmentConfirmation) { var healthPlanCallQueueCriteria = model.Id > 0 ? _healthPlanCallQueueCriteriaRepository.GetById(model.Id) : _healthPlanCallQueueCriteriaRepository.GetQueueCriteriaForQueueByLanguage(model.CallQueue, model.HealthPlanId, model.LanguageId); var organization = _organizationRepository.GetOrganizationbyId(model.HealthPlanId); var language = model.LanguageId.HasValue ? _languageRepository.GetById(model.LanguageId.Value) : null; model.CriteriaName = organization.Name + " Confirmation" + (language != null ? " for " + language.Name : ""); if (healthPlanCallQueueCriteria == null) { healthPlanCallQueueCriteria = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCallQueueCriteriaForConfirmation(model, orgRoleId); healthPlanCallQueueCriteria = _healthPlanCallQueueCriteriaRepository.Save(healthPlanCallQueueCriteria); } else { /*if (healthPlanCallQueueCriteria.LanguageId != model.LanguageId) * healthPlanCallQueueCriteria.IsQueueGenerated = false;*/ healthPlanCallQueueCriteria.LanguageId = model.LanguageId; healthPlanCallQueueCriteria.CriteriaName = model.CriteriaName; healthPlanCallQueueCriteria = _healthPlanCallQueueCriteriaRepository.Save(healthPlanCallQueueCriteria); } if (!model.IsTeamAssignment) { if (!model.Assignments.IsNullOrEmpty()) { SaveFileInfoForCsvUpload(model, healthPlanCallQueueCriteria); var assignments = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCriteriaAssignment(model.Assignments, healthPlanCallQueueCriteria.Id, orgRoleId); _healthPlanCriteriaAssignmentRepository.Save(model.HealthPlanId, model.CallQueueId, model.Id, assignments); } } else { if (!model.CallCenterTeamAssignments.IsNullOrEmpty()) { var assignments = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCriteriaTeamAssignment(model.CallCenterTeamAssignments, healthPlanCallQueueCriteria, orgRoleId); _healthPlanCriteriaTeamAssignmentRepository.Save(assignments); } } } else { HealthPlanCallQueueCriteria criteria = null; if (!isCriteriaSameAsPervious) { if (model.CallQueue == HealthPlanCallQueueCategory.FillEventsHealthPlan) { criteria = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCallQueueCriteriaForFillEvent(model, orgRoleId); } #region not in use //switch (model.CallQueue) //{ // //case HealthPlanCallQueueCategory.CallRound: // // criteria = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCallQueueCriteriaForCallRound(model, orgRoleId); // // break; // case HealthPlanCallQueueCategory.FillEventsHealthPlan: // criteria = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCallQueueCriteriaForFillEvent(model, orgRoleId); // break; // //case HealthPlanCallQueueCategory.NoShows: // // criteria = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCallQueueCriteriaForNoShow(model, orgRoleId); // // break; // //case HealthPlanCallQueueCategory.ZipRadius: // // criteria = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCallQueueCriteriaForZipRadius(model, orgRoleId); // // break; //} #endregion _healthPlanCallQueueCriteriaRepository.MarkForDelete(model.Id, true); criteria = _healthPlanCallQueueCriteriaRepository.Save(criteria); model.Id = criteria.Id; } else if (model.Id > 0) { criteria = _healthPlanCallQueueCriteriaRepository.GetById(model.Id); criteria.DataRecorderMetaData.DateModified = DateTime.Now; criteria.DataRecorderMetaData.DataRecorderModifier = new OrganizationRoleUser(orgRoleId); criteria.CriteriaName = model.CriteriaName; criteria = _healthPlanCallQueueCriteriaRepository.Save(criteria); } if (!model.IsTeamAssignment) { SaveFileInfoForCsvUpload(model, criteria); if (!model.Assignments.IsNullOrEmpty()) { var assignments = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCriteriaAssignment(model.Assignments, model.Id, orgRoleId); _healthPlanCriteriaAssignmentRepository.Save(model.HealthPlanId, model.CallQueueId, model.Id, assignments); } } else { if (!model.CallCenterTeamAssignments.IsNullOrEmpty()) { var assignments = _healthPlanCallQueueCriteriaEditModelFactory.GetHealthPlanCriteriaTeamAssignment(model.CallCenterTeamAssignments, criteria, orgRoleId); _healthPlanCriteriaTeamAssignmentRepository.Save(assignments); } } } if (!model.IsTeamAssignment) { if (model.Assignments != null && model.Assignments.Any()) { var list = new List <CallQueueAssignmentEditModel>(); foreach (var assignment in model.Assignments) { assignment.IsExistInOtherCriteria = false; list.Add(assignment); } model.Assignments = list; } return(model); } else { model.IsTeamAssignment = true; model.Assignments = null; return(model); } }
public HealthPlanCallQueueCriteria GetHealthPlanCallQueueCriteriaForZipRadius(HealthPlanCallQueueCriteriaEditModel model, long orgRoleId) { return(new HealthPlanCallQueueCriteria { CallQueueId = model.CallQueueId, DataRecorderMetaData = new DataRecorderMetaData(orgRoleId, DateTime.Now, DateTime.Now), HealthPlanId = model.HealthPlanId, IsQueueGenerated = false, Radius = model.Radius, ZipCode = model.Zipcode, CriteriaName = model.CriteriaName }); }
public HealthPlanCallQueueCriteria GetHealthPlanCallQueueCriteriaForCallRound(HealthPlanCallQueueCriteriaEditModel model, long orgRoleId) { return(new HealthPlanCallQueueCriteria { CallQueueId = model.CallQueueId, DataRecorderMetaData = new DataRecorderMetaData(orgRoleId, DateTime.Now, DateTime.Now), HealthPlanId = model.HealthPlanId, IsQueueGenerated = false, NoOfDays = model.NoOfDays.HasValue ? model.NoOfDays.Value : 0, RoundOfCalls = model.RoundOfCalls.HasValue ? model.RoundOfCalls.Value : -1, CriteriaName = model.CriteriaName }); }
public HealthPlanCallQueueCriteria GetHealthPlanCallQueueCriteriaForFillEvent(HealthPlanCallQueueCriteriaEditModel model, long orgRoleId) { return(new HealthPlanCallQueueCriteria { CallQueueId = model.CallQueueId, DataRecorderMetaData = new DataRecorderMetaData(orgRoleId, DateTime.Now, DateTime.Now), HealthPlanId = model.HealthPlanId, IsQueueGenerated = false, NoOfDays = model.NoOfDaysOfEvents.HasValue ? model.NoOfDaysOfEvents.Value : -1, Percentage = model.Percentage.HasValue ? model.Percentage.Value : 0, CriteriaName = model.CriteriaName }); }
public HealthPlanCallQueueCriteria GetHealthPlanCallQueueCriteriaForMailRound(HealthPlanCallQueueCriteriaEditModel model, long campaignId, long orgRoleId) { return(new HealthPlanCallQueueCriteria { CallQueueId = model.CallQueueId, DataRecorderMetaData = new DataRecorderMetaData(orgRoleId, DateTime.Now, DateTime.Now), HealthPlanId = model.HealthPlanId, IsQueueGenerated = true, CampaignId = campaignId }); }
public HealthPlanCallQueueCriteria GetHealthPlanCallQueueCriteriaForConfirmation(HealthPlanCallQueueCriteriaEditModel model, long orgRoleId) { return(new HealthPlanCallQueueCriteria { CallQueueId = model.CallQueueId, DataRecorderMetaData = new DataRecorderMetaData(orgRoleId, DateTime.Now, DateTime.Now), HealthPlanId = model.HealthPlanId, IsQueueGenerated = false, CriteriaName = model.CriteriaName, LanguageId = model.LanguageId }); }
public ActionResult Edit(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 currentCriteria = healthPlanCriteria.FirstOrDefault(x => x.Id == model.Id); //if we are Modifying Criteria Name then check for Uniqueness if (currentCriteria.CriteriaName.ToLower() != model.CriteriaName.ToLower()) { 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 && currentCriteria.LanguageId != model.LanguageId) { 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 { var criteria = healthPlanCriteria.First(x => x.Id == model.Id); var isCriteriaSameAsPervious = IsCriteriaIsSameAsPerious(model, criteria); if (isCriteriaSameAsPervious) { isCriteriaSameAsPervious = CheckCustomerDataHasBeenUploaded(criteria); } //check if user has changed mode of assignment (agent assignment or team assignment) var isTeamAssignmentOld = _healthPlanCriteriaTeamAssignmentRepository.GetTeamAssignments(criteria.Id).Any(); var isAgentAssignmentOld = _healthPlanCriteriaAssignmentRepository.GetByCriteriaId(criteria.Id).Any(); if (model.IsTeamAssignment && isAgentAssignmentOld) //delete old agent assignments { _healthPlanCriteriaAssignmentRepository.DeleteByCriteriaId(criteria.Id); } else if (!model.IsTeamAssignment && isTeamAssignmentOld) //delete old team assignments { _healthPlanCriteriaTeamAssignmentRepository.DeleteAssignmentsForCriteria(criteria.Id); } else if (model.IsTeamAssignment && isTeamAssignmentOld && model.CallCenterTeamAssignments.IsNullOrEmpty()) { _healthPlanCriteriaTeamAssignmentRepository.DeleteAssignmentsForCriteria(criteria.Id); } else if (!model.IsTeamAssignment && isAgentAssignmentOld && model.Assignments.IsNullOrEmpty()) { _healthPlanCriteriaAssignmentRepository.DeleteByCriteriaId(criteria.Id); } _healthPlanCallQueueCriteriaService.SaveHealthPlanCallQueueCriteria(model, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId, isCriteriaSameAsPervious); if (model.IsCriteriaSameAsPervious) { model.FeedbackMessage = FeedbackMessageModel.CreateSuccessMessage("Criteria Updated"); return(View(model)); } else { return(RedirectToAction("Edit", new { criteriaId = model.Id, isSuccessfull = true })); } } } } catch (Exception ex) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("System Error:" + ex.Message); return(View(model)); } }
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)); } }