private void SetDecision(Guid applicationId, ApplicationStatuses applicationStatus, string candidateApplicationFeedback = null) { var apprenticeshipApplication = _apprenticeshipApplicationReadRepository.Get(applicationId); var legacyApplicationId = apprenticeshipApplication.LegacyApplicationId; if (legacyApplicationId == 0) { legacyApplicationId = _referenceNumberRepository.GetNextLegacyApplicationId(); } var applicationStatusSummary = new ApplicationStatusSummary { // CRITICAL: make the update look like it came from legacy AVMS application ApplicationId = Guid.Empty, ApplicationStatus = applicationStatus, LegacyApplicationId = legacyApplicationId, LegacyCandidateId = 0, // not required LegacyVacancyId = 0, // not required VacancyStatus = apprenticeshipApplication.VacancyStatus, ClosingDate = apprenticeshipApplication.Vacancy.ClosingDate, UpdateSource = ApplicationStatusSummary.Source.Raa //Ensure this update is from RAA so ownership of the application is verified }; if (candidateApplicationFeedback != null) { applicationStatusSummary.UnsuccessfulReason = candidateApplicationFeedback; } _applicationStatusUpdateStrategy.Update(apprenticeshipApplication, applicationStatusSummary); _serviceBus.PublishMessage(new ApprenticeshipApplicationUpdate(applicationId, ApplicationUpdateType.Update)); }
public void UpdateApplicationStatus(Guid applicationId, ApplicationStatuses updatedStatus) { _logService.Info($"Updating status for {applicationId} to {updatedStatus}"); var result = _database.GetCollection <VacancyApplication>(_collectionName).UpdateOne( Builders <VacancyApplication> .Filter.Eq(e => e.Id, applicationId), Builders <VacancyApplication> .Update.Set(e => e.Status, updatedStatus)); if (result.IsAcknowledged) { if (result.IsModifiedCountAvailable && result.ModifiedCount == 1) { _logService.Info($"Updated status for {applicationId} to {updatedStatus}"); } else { _logService.Warn($"Did not update status for {applicationId} to {updatedStatus} as application wasn't found"); } } else { var message = $"Updating status for {applicationId} to {updatedStatus} failed! {result}"; _logService.Error(message); throw new Exception(message); } }
private static ApplicationStatusTypeIds GetApplicationStatusTypeId(ApplicationStatuses status) { switch (status) { case ApplicationStatuses.Saved: return(ApplicationStatusTypeIds.ApplicationStatusTypeIdSaved); case ApplicationStatuses.Draft: case ApplicationStatuses.Submitting: return(ApplicationStatusTypeIds.ApplicationStatusTypeIdUnsent); case ApplicationStatuses.ExpiredOrWithdrawn: return(ApplicationStatusTypeIds.ApplicationStatusTypeIdWithdrawn); case ApplicationStatuses.Submitted: return(ApplicationStatusTypeIds.ApplicationStatusTypeIdSent); case ApplicationStatuses.InProgress: return(ApplicationStatusTypeIds.ApplicationStatusTypeIdInProgress); case ApplicationStatuses.Successful: return(ApplicationStatusTypeIds.ApplicationStatusTypeIdSuccessful); case ApplicationStatuses.Unsuccessful: return(ApplicationStatusTypeIds.ApplicationStatusTypeIdUnsuccessful); default: throw new ArgumentException($"Status value {status} was not recognised."); } }
public int GetApplicationStatusChangedTo(ApplicationStatuses applicationStatus, DateTime statusChangeStartDate, DateTime statusChangeEndDate) { return(Collection .AsQueryable() .Count(each => each.DateCreated >= statusChangeStartDate && each.DateCreated < statusChangeEndDate && each.Status == applicationStatus)); }
private static ApprenticeshipApplicationDetail CreateApplicationDetail( Candidate candidate, ApprenticeshipVacancyDetail vacancyDetails, ApplicationStatuses applicationStatus, ApplicationTemplate applicationTemplate) { return(new ApprenticeshipApplicationDetail { EntityId = Guid.NewGuid(), Status = applicationStatus, DateCreated = DateTime.UtcNow, CandidateId = candidate.EntityId, CandidateDetails = Mapper.Map <RegistrationDetails, RegistrationDetails>(candidate.RegistrationDetails), VacancyStatus = vacancyDetails.VacancyStatus, Vacancy = new ApprenticeshipSummary { Id = vacancyDetails.Id, VacancyReference = vacancyDetails.VacancyReference, Title = vacancyDetails.Title, EmployerName = vacancyDetails.IsEmployerAnonymous ? vacancyDetails.AnonymousEmployerName : vacancyDetails.EmployerName, IsPositiveAboutDisability = vacancyDetails.IsPositiveAboutDisability, StartDate = vacancyDetails.StartDate, ClosingDate = vacancyDetails.ClosingDate, Description = vacancyDetails.IsEmployerAnonymous ? vacancyDetails.AnonymousAboutTheEmployer : vacancyDetails.EmployerDescription, NumberOfPositions = vacancyDetails.NumberOfPositions, Location = null, // NOTE: no equivalent in legacy vacancy details. VacancyLocationType = vacancyDetails.VacancyLocationType, }, // Populate apprenticeshipApplication template with candidate's most recent information. CandidateInformation = applicationTemplate }); }
public static List <MyApprenticeshipApplicationViewModel> GetApprenticeships(int count, ApplicationStatuses applicationStatus = ApplicationStatuses.Draft, string unsuccessfulReason = null) { var apprenticeships = new List <MyApprenticeshipApplicationViewModel>(); for (var i = 0; i < count; i++) { var myApprenticeshipApplicationViewModel = new MyApprenticeshipApplicationViewModel { ApplicationStatus = applicationStatus }; if (applicationStatus == ApplicationStatuses.Submitted) { myApprenticeshipApplicationViewModel.DateApplied = new DateTime(2015, 01, 01); } if (unsuccessfulReason != null) { myApprenticeshipApplicationViewModel.UnsuccessfulReason = unsuccessfulReason; myApprenticeshipApplicationViewModel.UnsuccessfulDateTime = DateTime.Now; } apprenticeships.Add(myApprenticeshipApplicationViewModel); } return(apprenticeships); }
public UndecidedAppsModel GetUndecidedApplications(ApplicationStatuses applicationStatus) { UndecidedAppsModel model = new UndecidedAppsModel(); model.UndecidedApplicationsRows = _applicationRepository.GetUndecidedApplications(applicationStatus); model.ApplicationsCount = model.UndecidedApplicationsRows.Count; return model; }
public AppsForListModel GetApplications(ApplicationStatuses applicationStatus) { AppsForListModel model = new AppsForListModel(); model.ApplicationsRows = _applicationRepository.GetApplicationsByStatus(applicationStatus); model.ApplicationsCount = model.ApplicationsRows.Count; return model; }
public int GetApplicationStateCountPerCandidate(ApplicationStatuses applicationStatus) { return(Collection .AsQueryable() .Where(each => each.Status == applicationStatus) .Select(each => each.CandidateId) .Distinct() .ToList() .Count); }
public void AddReasonLog(ApplicationStatuses status, int applicationId, int reasonId, Guid userId, DateTime date) { ReasonLog log = new ReasonLog(); log.ApplicationId = applicationId; log.DateLogged = date; log.ReasonId = reasonId; log.UserAdderId = userId; context.ReasonLogs.InsertOnSubmit(log); context.SubmitChanges(); }
public void UpdateExistingAlert() { const int legacyApplicationId = 3456789; const ApplicationStatuses applicationStatus = ApplicationStatuses.Unsuccessful; const string unsuccessfulReason = "You do not have the required grades"; var applicationId = Guid.NewGuid(); var applicationReadRepository = new Mock <IApprenticeshipApplicationReadRepository>(); var apprenticeshipApplicationDetail = new Fixture().Build <ApprenticeshipApplicationDetail>() .With(aad => aad.EntityId, applicationId) .With(aad => aad.LegacyApplicationId, legacyApplicationId) .Create(); applicationReadRepository.Setup(r => r.Get(legacyApplicationId, true)).Returns(apprenticeshipApplicationDetail); var existingApplicationStatusAlert = new Fixture().Build <ApplicationStatusAlert>() .With(asa => asa.ApplicationId, applicationId) .With(asa => asa.Status, ApplicationStatuses.Successful) .With(asa => asa.BatchId, null) .With(asa => asa.SentDateTime, null) .Create(); var statusAlertRepository = new Mock <IApplicationStatusAlertRepository>(); statusAlertRepository.Setup(r => r.GetForApplication(applicationId)).Returns(new List <ApplicationStatusAlert> { existingApplicationStatusAlert }); ApplicationStatusAlert applicationStatusAlert = null; statusAlertRepository.Setup(r => r.Save(It.IsAny <ApplicationStatusAlert>())).Callback <ApplicationStatusAlert>(asa => { applicationStatusAlert = asa; }); var subscriber = new ApplicationStatusChangedSubscriberBuilder().With(applicationReadRepository).With(statusAlertRepository).Build(); var applicationStatusChanged = new Fixture().Build <ApplicationStatusChanged>() .With(asc => asc.LegacyApplicationId, legacyApplicationId) .With(asc => asc.ApplicationStatus, applicationStatus) .With(asc => asc.UnsuccessfulReason, unsuccessfulReason) .Create(); var state = subscriber.Consume(applicationStatusChanged); state.Should().NotBeNull(); state.Should().Be(ServiceBusMessageStates.Complete); applicationStatusAlert.EntityId.Should().Be(existingApplicationStatusAlert.EntityId); applicationStatusAlert.Status.Should().Be(applicationStatus); applicationStatusAlert.UnsuccessfulReason.Should().Be(unsuccessfulReason); applicationStatusAlert.BatchId.Should().Be(null); applicationStatusAlert.SentDateTime.Should().Be(null); }
public StatusTransition(JobApplication application, ApplicationStatuses from, ApplicationStatuses to, DateTime timestamp, ApplicationResolution resolution = ApplicationResolution.UNRESOLVED) { ApplicationId = application.Id; Application = application; Timestamp = timestamp; TransitionFrom = from; TransitionTo = to; Resolution = resolution; }
public static List <MyApprenticeshipApplicationViewModel> GetApprenticeships(int count, ApplicationStatuses applicationStatus = ApplicationStatuses.Draft) { var apprenticeships = new List <MyApprenticeshipApplicationViewModel>(); for (var i = 0; i < count; i++) { apprenticeships.Add(new MyApprenticeshipApplicationViewModel { ApplicationStatus = applicationStatus }); } return(apprenticeships); }
public bool UpdateApplicationStatus(ApprenticeshipApplicationDetail entity, ApplicationStatuses updatedStatus, bool ignoreOwnershipCheck) { var applicationId = entity.EntityId; var now = _dataTimeService.UtcNow; _logger.Info("Calling repository to try to update apprenticeship application status={1} for application with Id={0}", applicationId, updatedStatus); var idMatchQuery = Query <MongoApprenticeshipApplicationDetail> .EQ(e => e.Id, applicationId); //Only update if not owned by RAA (using the setting of DateLastViewed as a proxy for that ownership) or if ownership should be ignored //http://stackoverflow.com/questions/4057196/how-do-you-query-this-in-mongo-is-not-null var isNotOwnedByRaaQuery = Query <MongoApprenticeshipApplicationDetail> .EQ(e => e.DateLastViewed, null); var query = ignoreOwnershipCheck ? idMatchQuery : new QueryBuilder <MongoApprenticeshipApplicationDetail>().And(idMatchQuery, isNotOwnedByRaaQuery); var update = Update <MongoApprenticeshipApplicationDetail> .Set(e => e.Status, updatedStatus) .Set(e => e.IsArchived, false) // Application status has changed, ensure it appears on the candidate's dashboard. .Set(e => e.DateUpdated, now); switch (updatedStatus) { case ApplicationStatuses.Successful: update = update.Set(e => e.SuccessfulDateTime, now); break; case ApplicationStatuses.Unsuccessful: update = update.Set(e => e.UnsuccessfulDateTime, now); break; } var result = Collection.Update(query, update); if (result.Ok) { _logger.Info("Called repository to update apprenticeship application status={1} for application with Id={0} successfully with code={2}. Documents affected={3}", applicationId, updatedStatus, result.Code, result.DocumentsAffected); return(result.DocumentsAffected == 1); } var message = $"Call to repository to update apprenticeship application status={updatedStatus} for application with Id={applicationId} failed! Exit code={result.Code}, error message={result.ErrorMessage}"; _logger.Error(message); throw new Exception(message); }
public void GivenSingleApplicationStatusAlert(ApplicationStatuses applicationStatus) { var alerts = new ApplicationStatusAlertsBuilder().WithApplicationStatusAlerts(1, applicationStatus).Build(); var emailRequest = new DailyDigestEmailRequestBuilder().WithApplicationStatusAlerts(alerts).Build(); List <SendGridMessageSubstitution> sendGridMessageSubstitutions; var sendGridMessage = GetSendGridMessage(out sendGridMessageSubstitutions); var emailMessageFormatter = new EmailDailyDigestMessageFormatterBuilder().Build(); emailMessageFormatter.PopulateMessage(emailRequest, sendGridMessage.Object); var applicationStatusAlertTagSubstitution = sendGridMessageSubstitutions.Single(s => s.ReplacementTag == ApplicationStatusAlertTag); applicationStatusAlertTagSubstitution.SubstitutionValues.Count.Should().Be(1); applicationStatusAlertTagSubstitution.SubstitutionValues.Single().Should().Be(GetExpectedInfoSubstitution(alerts)); }
public void Mapping() { const int legacyApplicationId = 3456789; const ApplicationStatuses applicationStatus = ApplicationStatuses.Unsuccessful; const string unsuccessfulReason = "You do not have the required grades"; var applicationReadRepository = new Mock <IApprenticeshipApplicationReadRepository>(); var apprenticeshipApplicationDetail = new Fixture().Build <ApprenticeshipApplicationDetail>().With(aad => aad.LegacyApplicationId, legacyApplicationId).Create(); applicationReadRepository.Setup(r => r.Get(legacyApplicationId, true)).Returns(apprenticeshipApplicationDetail); var statusAlertRepository = new Mock <IApplicationStatusAlertRepository>(); ApplicationStatusAlert applicationStatusAlert = null; statusAlertRepository.Setup(r => r.Save(It.IsAny <ApplicationStatusAlert>())).Callback <ApplicationStatusAlert>(asa => { applicationStatusAlert = asa; }); statusAlertRepository.Setup(r => r.GetForApplication(It.IsAny <Guid>())).Returns(new List <ApplicationStatusAlert>()); var subscriber = new ApplicationStatusChangedSubscriberBuilder().With(applicationReadRepository).With(statusAlertRepository).Build(); var applicationStatusChanged = new Fixture().Build <ApplicationStatusChanged>() .With(asc => asc.LegacyApplicationId, legacyApplicationId) .With(asc => asc.ApplicationStatus, applicationStatus) .With(asc => asc.UnsuccessfulReason, unsuccessfulReason) .Create(); var state = subscriber.Consume(applicationStatusChanged); state.Should().NotBeNull(); state.Should().Be(ServiceBusMessageStates.Complete); applicationStatusAlert.Should().NotBeNull(); applicationStatusAlert.CandidateId.Should().Be(apprenticeshipApplicationDetail.CandidateId); applicationStatusAlert.ApplicationId.Should().Be(apprenticeshipApplicationDetail.EntityId); applicationStatusAlert.VacancyId.Should().Be(apprenticeshipApplicationDetail.Vacancy.Id); applicationStatusAlert.Title.Should().Be(apprenticeshipApplicationDetail.Vacancy.Title); applicationStatusAlert.EmployerName.Should().Be(apprenticeshipApplicationDetail.Vacancy.EmployerName); applicationStatusAlert.Status.Should().Be(applicationStatus); applicationStatusAlert.UnsuccessfulReason.Should().Be(unsuccessfulReason); // ReSharper disable once PossibleInvalidOperationException applicationStatusAlert.DateApplied.Should().Be(apprenticeshipApplicationDetail.DateApplied.Value); applicationStatusAlert.BatchId.Should().Be(null); applicationStatusAlert.SentDateTime.Should().Be(null); }
public List<UndecidedApplication> GetUndecidedApplications(ApplicationStatuses applicationStatus) { List<UndecidedApplication> undecidedApplications = (from application in context.Applications join applicant in context.Applicants on application.ApplicantId equals applicant.ApplicantId where application.AppStatus == applicationStatus.ToString() select new UndecidedApplication { ApplicationDate = application.ApplicationDate, ApplicationId = application.ApplicationId, FirstName = applicant.FirstName, MiddleName = applicant.MiddleNames, LastName = applicant.LastName, Email = application.Contacts.Where(a => a.ContactTypeId == (int)ContactsOfType.EmailAddress).FirstOrDefault().ContactDetail, LoanAmount = application.Amount, LoanPaybackDate = application.PaybackDate }).OrderByDescending(a => a.ApplicationDate).ToList(); return undecidedApplications; }
public static string GetPortugueseNameOfStatus(ApplicationStatuses status) { switch (status) { case ApplicationStatuses.Approved: return "Aprovado"; case ApplicationStatuses.Declined: return "Rejeitado"; case ApplicationStatuses.New: return "Nova Entrada"; case ApplicationStatuses.Undecided: return "Pendente"; } return ""; }
/// <summary> /// Transition this application from one status to another. /// </summary> /// <remarks> /// This method is agnostic about workflows, and will only enforce that you cannot transition from one statu to the same status. /// Use an appropriate class that derives from <see cref="StatusWrapper"/> (e.g. <see cref="SubmittedApplication"/>) as helpers to more /// effective manage the status. /// </remarks> /// <param name="transitionTo"></param> /// <param name="effectiveAsOf"></param> /// <param name="resolution"></param> /// <returns></returns> public Result <StatusTransition> Transition(ApplicationStatuses transitionTo, DateTime effectiveAsOf, ApplicationResolution resolution = ApplicationResolution.UNRESOLVED) { // CAUTION: if the inner logic of this method changes, you may have to revisit the first transition created // in the ctor if (CurrentStatus == transitionTo) { return(Result.Fail("Unable to transition to the current status.")); } if (transitionTo != ApplicationStatuses.CLOSED) { resolution = ApplicationResolution.UNRESOLVED; } var transition = new StatusTransition(this, CurrentStatus, transitionTo, effectiveAsOf, resolution); ((List <StatusTransition>)Transitions).Add(transition); return(Result.Ok(transition)); }
public void GivenSingleApplicationStatusAlert(ApplicationStatuses applicationStatus) { var alerts = new ApplicationStatusAlertsBuilder().WithApplicationStatusAlerts(1, applicationStatus).Build(); var smsRequest = new DailyDigestSmsRequestBuilder().WithApplicationStatusAlerts(alerts).Build(); var formatter = new SmsDailyDigestMessageFormatterBuilder().WithMessageTemplate(MessageTemplate).Build(); var message = formatter.GetMessage(smsRequest.Tokens); int draftCount; int draftLineCount; int alertCount; int alertLineCount; var expectedMessage = GetExpectedMessage(null, alerts, out draftCount, out draftLineCount, out alertCount, out alertLineCount); message.Should().Be(expectedMessage); draftCount.Should().Be(0); draftLineCount.Should().Be(0); alertCount.Should().Be(1); alertLineCount.Should().Be(1); }
public void ShouldUpdateApplicationStatus( ApplicationStatuses oldStatus, ApplicationStatuses newStatus, ApplicationStatusSummary.Source source, bool expected) { // Arrange. var detail = new ApprenticeshipApplicationDetail { Status = oldStatus, IsArchived = true }; var summary = new ApplicationStatusSummary { ApplicationId = Guid.Empty, ApplicationStatus = newStatus }; var ignoreOwnershipCheck = summary.UpdateSource == ApplicationStatusSummary.Source.Raa; _mockReadRepository.Setup(mock => mock.Get(detail.EntityId)).Returns(new ApprenticeshipApplicationDetail { Status = newStatus }); _mockWriteRepository.Setup(mock => mock .UpdateApplicationStatus(detail, newStatus, ignoreOwnershipCheck)) .Returns(expected); // Act. var actual = detail.UpdateApprenticeshipApplicationDetail(summary, _mockReadRepository.Object, _mockWriteRepository.Object); // Assert. actual.Should().Be(expected); detail.IsArchived.Should().Be(!expected); detail.Status.Should().Be(summary.ApplicationStatus); _mockWriteRepository.Verify(mock => mock .UpdateApplicationStatus(detail, newStatus, ignoreOwnershipCheck), Times.Exactly(expected ? 1 : 0)); }
private static BsonDocument GetApplicationStatusCount(ApplicationStatuses applicationStatus) { return(new BsonDocument { { "$sum", new BsonDocument { { "$cond", new BsonArray { new BsonDocument { { "$eq", new BsonArray { "$Status", (int)applicationStatus } } }, 1, 0 } } } } }); }
public void ShouldSendWellFormedAlert() { // Arrange. const ApplicationStatuses currentStatus = ApplicationStatuses.Submitted; const ApplicationStatuses newStatus = ApplicationStatuses.Successful; const int legacyApplicationId = 3456789; const string unsuccessfulReason = "You do not have the required grades"; ApplicationStatusChanged applicationStatusChanged = null; var serviceBus = new Mock <IServiceBus>(); serviceBus.Setup(mock => mock .PublishMessage(It.IsAny <ApplicationStatusChanged>())) .Callback <ApplicationStatusChanged>(each => { applicationStatusChanged = each; }); var strategy = new ApplicationStatusAlertStrategyBuilder() .With(serviceBus) .Build(); var summary = new ApplicationStatusSummaryBuilder(newStatus) .WithLegacyApplicationId(legacyApplicationId) .WithUnsuccessfulReason(unsuccessfulReason) .Build(); // Act. strategy.Send(currentStatus, summary); // Assert. applicationStatusChanged.Should().NotBeNull(); applicationStatusChanged.LegacyApplicationId.Should().Be(legacyApplicationId); applicationStatusChanged.ApplicationStatus.Should().Be(newStatus); applicationStatusChanged.UnsuccessfulReason.Should().Be(unsuccessfulReason); }
public int GetCandidatesWithApplicationsInStatusCount(ApplicationStatuses applicationStatus, int minimumCount) { var statusMatch = new BsonDocument { { "$match", new BsonDocument { { "Status", (int)applicationStatus } } } }; var candidateIdGroup = new BsonDocument { { "$group", new BsonDocument { { "_id", "$CandidateId" }, { "count", new BsonDocument { { "$sum", 1 } } } } } }; var countMatch = new BsonDocument { { "$match", new BsonDocument { { "count", new BsonDocument { { "$gte", minimumCount } } } } } }; var sumGroup = new BsonDocument { { "$group", new BsonDocument { { "_id", "candidatesWithApplicationsInStatusCount" }, { "candidatesWithApplicationsInStatusCount", new BsonDocument { { "$sum", 1 } } } } } }; var pipeline = new[] { statusMatch, candidateIdGroup, countMatch, sumGroup }; var result = Collection.Aggregate(new AggregateArgs { Pipeline = pipeline }).ToArray(); var count = result.Length == 0 ? 0 : result[0].ToArray()[1].Value.AsInt32; return(count); }
public void Send(ApplicationStatuses currentStatus, ApplicationStatusSummary applicationStatusSummary) { if (!applicationStatusSummary.IsLegacySystemUpdate()) { return; } if (currentStatus == applicationStatusSummary.ApplicationStatus) { return; } if (!(applicationStatusSummary.ApplicationStatus == ApplicationStatuses.Successful || applicationStatusSummary.ApplicationStatus == ApplicationStatuses.Unsuccessful)) { return; } var applicationStatusChanged = new ApplicationStatusChanged { LegacyApplicationId = applicationStatusSummary.LegacyApplicationId, ApplicationStatus = applicationStatusSummary.ApplicationStatus, UnsuccessfulReason = applicationStatusSummary.UnsuccessfulReason }; var message = $"Queuing application status changed for LegacyApplicationId: {applicationStatusChanged.LegacyApplicationId} with ApplicationStatus: {applicationStatusChanged.ApplicationStatus}, UnsuccessfulReason: {applicationStatusChanged.UnsuccessfulReason}"; try { _logService.Debug(message); _serviceBus.PublishMessage(applicationStatusChanged); } catch (Exception e) { _logService.Warn(message + " failed!", e); } }
private void SetValues() { try { query = "Select * from APPLICATIONS where ApplicationId=" + id; cmd = new SqlCommand(query, con); con.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { body = (string)reader[1]; date = (DateTime)reader[2]; status = (ApplicationStatuses)Convert.ToInt16(reader[3]); parentId = (int)reader[4]; } con.Close(); } catch (SqlException ex) { Exception e = new Exception("Error Occured in Database processing. CodeIndex:137", ex); throw e; } }
public void ShouldSendAlertWhenApplicationStatusHasChangedToSuccessfulOrUnsuccessful( ApplicationStatuses currentStatus, ApplicationStatuses newStatus, bool shouldSendAlert) { // Arrange. var serviceBus = new Mock <IServiceBus>(); var strategy = new ApplicationStatusAlertStrategyBuilder() .With(serviceBus) .Build(); var summary = new ApplicationStatusSummaryBuilder(newStatus) .Build(); // Act. strategy.Send(currentStatus, summary); // Assert. var times = shouldSendAlert ? Times.Once() : Times.Never(); serviceBus.Verify(mock => mock .PublishMessage(It.IsAny <ApplicationStatusChanged>()), times); }
public ActionResult UpdateApplicationStatus(ApplicationStatuses applicationStatus, int applicationId, int reasonId) { Guid userId = (Guid)Membership.GetUser(User.Identity.Name).ProviderUserKey; _applicationDetailsService.UpdateApplicationStatus(applicationStatus, applicationId, reasonId, userId, DateTime.Now); return JavaScript("window.top.location.href ='" + Url.Action("Index") + "';"); }
public int GetApplicationStateCount(ApplicationStatuses applicationStatus) { return(Collection .AsQueryable() .Count(each => each.Status == applicationStatus)); }
public ApplicationStatusSummaryBuilder(ApplicationStatuses applicationStatus) { _applicationStatus = applicationStatus; }
public VacancyApplicationBuilder WithStatus(ApplicationStatuses status) { _status = status; return(this); }
public ApprenticeshipApplicationBuilder WithApplicationStatus(ApplicationStatuses applicationStatus) { _applicationStatus = applicationStatus; return(this); }
public ApprenticeshipApplicationViewModelBuilder HasError(ApplicationStatuses status, string viewModelMessage) { _status = status; _viewModelMessage = viewModelMessage; return(this); }
public void UpdateApplicationStatus(ApprenticeshipApplicationDetail applicationDetail, ApplicationStatuses newApplicationStatus) { Collection.Update(Query.EQ("EntityId", applicationDetail.EntityId), new UpdateDocument { { "$set", new BsonDocument("Status", newApplicationStatus) } }); }
public void UpdateApplicationStatus(ApplicationStatuses status, int applicationId, int reasonId, Guid userId, DateTime dateAdded ) { _applicationRepository.UpdateApplicationStatus(status, applicationId); _reasonRepository.AddReasonLog(status, applicationId, reasonId, userId, dateAdded); _actionLogRepository.LogAction(status.ToString(), applicationId, userId, dateAdded); }
public void UpdateApplicationStatus(ApplicationStatuses applicationStatus, int applicationId) { Application application = GetApplication(applicationId); application.AppStatus = applicationStatus.ToString(); context.SubmitChanges(); }
public ApprenticeshipApplicationViewModelBuilder WithStatus(ApplicationStatuses status) { _status = status; return(this); }
private static ApprenticeshipApplicationDetail CreateTestApplication(DateTime dateUpdated = new DateTime(), ApplicationStatuses status = ApplicationStatuses.Unknown, bool ownedByRaa = true) { return(new ApprenticeshipApplicationDetail { EntityId = Guid.NewGuid(), CandidateId = Guid.NewGuid(), LegacyApplicationId = LegacyApplicationId, VacancyStatus = VacancyStatuses.Live, Status = status, DateLastViewed = ownedByRaa ? DateTime.Today : new DateTime?(), DateUpdated = dateUpdated, DateCreated = DateTime.Now.AddDays(-3), CandidateDetails = { FirstName = "Johnny", LastName = "Candidate", DateOfBirth = DateTime.UtcNow.AddYears(-30), EmailAddress = "*****@*****.**", PhoneNumber = "07777111222", Address = { AddressLine1 = "Address line 1", AddressLine2 = "Address line 2", AddressLine3 = "Address line 3", AddressLine4 = "Address line 4", Postcode = "CV1 2WT" } }, CandidateInformation = { AboutYou = { HobbiesAndInterests = "Hobbies and interests", Improvements = "Improvements are not needed", Strengths = "My strengths are many", Support = "Third line" } } }); }