Пример #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 UpdateCompanyRegistrationAsync(Guid id, RegistrationCompanyDTO registration)
        {
            RegistrationDataFilter companyFilter = CreateRegistrationCompanyFilter(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 company data
                var companyRepo = uow.GetRepository <IRegistrationCompanyRepository>();
                var company     = await companyRepo.FindRegistrationCompany(companyFilter);

                if (company == null)
                {
                    company = new RegistrationCompany();
                    companyRepo.Add(company);
                }

                existingRegistration.CompanyData = company;
                this.mapper.Map(registration, company);

                await uow.SaveChangesAsync();
            }
        }
 public Task <RegistrationCompany> FindRegistrationCompany(RegistrationDataFilter filter)
 {
     return(this.Queryable
            .FirstOrDefaultAsync(u => u.RegistrationName.Equals(filter.RegistrationId) &&
                                 u.Email.Equals(filter.Email) &&
                                 u.Phone.Equals(filter.Phone)));
 }
Пример #4
0
        public async Task <Guid> CreateRegistrationCompanyAsync(RegistrationCompanyDTO createRegistration)
        {
            var registration = this.mapper.Map <Registration>(createRegistration);

            registration.DateCreated = TimeProvider.Current.UtcNow;
            RegistrationDataFilter companyFilter = CreateRegistrationCompanyFilter(createRegistration);

            using (IUnitOfWork uow = this.unitOfWorkFactory.CreateUnitOfWork())
            {
                var repo = uow.GetRepository <IRegistrationRepository>();
                var registrationCompanyRepo = uow.GetRepository <IRegistrationCompanyRepository>();

                registration.CompanyData = await registrationCompanyRepo.FindRegistrationCompany(companyFilter)
                                           ?? this.mapper.Map <RegistrationCompany>(createRegistration);

                repo.Add(registration);

                await uow.SaveChangesAsync();

                return(registration.Id);
            }
        }