public async Task UpdatePrivateRegistrationAsync(Guid id, RegistrationPrivateDTO registration) { RegistrationDataFilter userFilter = CreateRegistrationUserFilter(registration); using (IUnitOfWork uow = this.unitOfWorkFactory.CreateUnitOfWork()) { //Update registration var repo = uow.GetRepository <IRegistrationRepository>(); var existingRegistration = await this.GetRegistrationById(repo, id); this.mapper.Map(registration, existingRegistration); existingRegistration.DateUpdated = DateTime.UtcNow; //Update private data var userRepo = uow.GetRepository <IRegistrationUserRepository>(); var user = await userRepo.FindRegistrationUser(userFilter); if (user == null) { user = new RegistrationUser(); userRepo.Add(user); } existingRegistration.PrivateData = user; this.mapper.Map(registration, user); await uow.SaveChangesAsync(); } }
public async Task <IActionResult> UpdatePrivate(Guid id, [FromBody] RegistrationPrivateDTO registration) { // TODO ask what properties can be edited await this.registrationService.UpdatePrivateRegistrationAsync(id, registration); return(NoContent()); }
private static RegistrationDataFilter CreateRegistrationUserFilter(RegistrationPrivateDTO registration) { return(new RegistrationDataFilter { Email = registration.Email, Phone = registration.Phone, RegistrationId = registration.RegistrationNumber }); }
public async Task <IActionResult> CreatePrivate([FromBody] RegistrationPrivateDTO createRegistration) { if (createRegistration == null) { return(BadRequest(new { Message = "Invalid input data." })); } var result = await this.registrationService.CreateRegistrationPrivateAsync(createRegistration); IdDTO idDTO = new IdDTO { Id = result.ToString() }; return(CreatedAtRoute("GetRegistration", new { id = result.ToString() }, idDTO)); }
public async Task <Guid> CreateRegistrationPrivateAsync(RegistrationPrivateDTO createRegistration) { var registration = this.mapper.Map <Registration>(createRegistration); registration.DateCreated = TimeProvider.Current.UtcNow; RegistrationDataFilter userFilter = CreateRegistrationUserFilter(createRegistration); using (IUnitOfWork uow = this.unitOfWorkFactory.CreateUnitOfWork()) { var repo = uow.GetRepository <IRegistrationRepository>(); var registrationUserRepo = uow.GetRepository <IRegistrationUserRepository>(); registration.PrivateData = await registrationUserRepo.FindRegistrationUser(userFilter) ?? this.mapper.Map <RegistrationUser>(createRegistration); repo.Add(registration); await uow.SaveChangesAsync(); return(registration.Id); } }
private void SetupFindRegistrationUserBy(RegistrationPrivateDTO filter, RegistrationUser dummyRegistrationUser) { this.registrationUserRepositoryFake .Setup(x => x.FindRegistrationUser(It.Is <RegistrationDataFilter>(y => y.Email == filter.Email && y.Phone == filter.Phone && y.RegistrationId == filter.RegistrationNumber))) .ReturnsAsync(dummyRegistrationUser); }