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 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))); }
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); } }