コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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());
        }
コード例 #3
0
 private static RegistrationDataFilter CreateRegistrationUserFilter(RegistrationPrivateDTO registration)
 {
     return(new RegistrationDataFilter
     {
         Email = registration.Email,
         Phone = registration.Phone,
         RegistrationId = registration.RegistrationNumber
     });
 }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
 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);
 }