private static VisitorDetails ExtractVisitorDetails(MigrationDbNotification notification) { var hasVisitor = Converter.GetStatusFromString(notification.HasVisitor); int?numberOfCountries = Converter.ToNullableInt(notification.visitor_TotalNumberOfCountries); var countriesRecorded = new List <int?> { notification.visitor_Country1, notification.visitor_Country2, notification.visitor_Country3 }.Distinct() .Count(c => c != null); int?totalNumberOfCountries = hasVisitor == Status.Yes && numberOfCountries != null ? Math.Max(numberOfCountries.Value, countriesRecorded) : (int?)null; var details = new VisitorDetails(); details.HasVisitor = hasVisitor; details.TotalNumberOfCountries = totalNumberOfCountries; details.Country1Id = notification.visitor_Country1; details.Country2Id = notification.visitor_Country2; details.Country3Id = notification.visitor_Country3; details.StayLengthInMonths1 = notification.visitor_StayLengthInMonths1; details.StayLengthInMonths2 = notification.visitor_StayLengthInMonths2; details.StayLengthInMonths3 = notification.visitor_StayLengthInMonths3; RemoveDuplicateCountries(details); return(details); }
private void UpdateVisitorDetails(Notification notification, VisitorDetails visitorDetails) { if (visitorDetails.HasVisitor != Status.Yes) { ClearTravelOrVisitorFields(visitorDetails); } _context.SetValues(notification.VisitorDetails, visitorDetails); }
protected override async Task ValidateAndSave() { TravelDetails.SetValidationContext(Notification); VisitorDetails.SetValidationContext(Notification); CleanModel(); TryValidateModel(TravelDetails, TravelDetails.GetType().Name); TryValidateModel(VisitorDetails, VisitorDetails.GetType().Name); if (ModelState.IsValid) { await Service.UpdateTravelAndVisitorAsync(Notification, TravelDetails, VisitorDetails); } }
protected override async Task <IActionResult> PrepareAndDisplayPageAsync(bool isBeingSubmitted) { TravelDetails = Notification.TravelDetails; VisitorDetails = Notification.VisitorDetails; await SetNotificationProperties(isBeingSubmitted, TravelDetails); await SetNotificationProperties(isBeingSubmitted, VisitorDetails); if (TravelDetails.ShouldValidateFull) { TryValidateModel(TravelDetails, TravelDetails.GetType().Name); } if (VisitorDetails.ShouldValidateFull) { TryValidateModel(VisitorDetails, VisitorDetails.GetType().Name); } return(Page()); }
public IHttpActionResult InsertUpdateVisitorDetails([FromBody] VisitorDetails visitorDetails) { if (visitorDetails.Id == 0) { var visitorDetailsFromDb = _visitorDetailsBO.Insert(visitorDetails); if (visitorDetailsFromDb == null) { return(NotFound()); } return(Ok(visitorDetailsFromDb)); } else { _visitorDetailsBO.Update(visitorDetails); return(Ok(visitorDetails)); } }
/// <inheritdoc /> public Task CreateVisitorAsync(string visitId, VisitorDetails visitor) { if (string.IsNullOrEmpty(visitId)) { throw new ArgumentException("Visit Id has to be set.", nameof(visitId)); } if (visitor == null) { throw new ArgumentException("Visitor details has to be set.", nameof(visitor)); } var request = new CreateVisitorRequest { VisitId = visitId, Visitor = visitor }; return(PostAsync <object>($"{TrackingEndpointRoutePrefix}/visitor", JsonConvert.SerializeObject(request))); }
public async Task <IActionResult> Checkin([FromQuery] int adviserId, [FromBody] VisitorDetails details) { await _notifier.NotifyVisitorArrived(adviserId, details); return(Ok()); }
public IActionResult OnPostValidateVisitor([FromBody] VisitorDetails visitorDetails) { Service.ClearTravelOrVisitorFields(visitorDetails); return(ValidationService.GetFullModelValidationResult(visitorDetails)); }
public async Task UpdateTravelAndVisitorAsync(Notification notification, TravelDetails travelDetails, VisitorDetails visitorDetails) { UpdateTravelDetails(notification, travelDetails); UpdateVisitorDetails(notification, visitorDetails); await _notificationRepository.SaveChangesAsync(); }