public async Task EditAsync(TourOperatorEditDto input) { var tourOperator = this.tourOperatorRepository .All() .Include(x => x.Agent) .Include(x => x.Company) .FirstOrDefault(x => x.Id == input.Id); tourOperator.Name = input.Name; if (tourOperator.Agent != null) { tourOperator.Agent.FirstName = input.Agent.FirstName; tourOperator.Agent.LastName = input.Agent.LastName; tourOperator.Agent.PhoneNumber = input.Agent.PhoneNumber; tourOperator.Agent.Email = input.Agent.Email; } else { var agent = new TourOperatorAgent { FirstName = input.Agent.FirstName, LastName = input.Agent.LastName, Email = input.Agent.Email, PhoneNumber = input.Agent.PhoneNumber, }; tourOperator.Agent = agent; } if (tourOperator.Company != null) { tourOperator.Company.Name = input.Company.Name; tourOperator.Company.Bulstat = input.Company.Bulstat; tourOperator.Company.PhoneNumber = input.Company.PhoneNumber; tourOperator.Company.Email = input.Company.Email; } else { var company = new TourOperatorCompany { Name = input.Company.Name, Bulstat = input.Company.Bulstat, Email = input.Company.Email, PhoneNumber = input.Company.PhoneNumber, }; tourOperator.Company = company; } await this.tourOperatorRepository.SaveChangesAsync(); }
public async Task <IActionResult> Edit(TourOperatorEditInputModel input) { var userId = this.userManager.GetUserId(this.User); var user = this.userManager.Users .Include(x => x.Hotel) .ThenInclude(x => x.TourOperators) .First(x => x.Id == userId); if (!this.ModelState.IsValid) { return(this.View(input)); } if (user.Hotel.TourOperators.All(x => x.Id != input.Id)) { return(this.RedirectToAction("Index")); } var dto = new TourOperatorEditDto { Id = input.Id, Name = input.Name, Agent = new TourOperatorAgentEditDto { FirstName = input.Agent.FirstName, LastName = input.Agent.LastName, Email = input.Agent.Email, PhoneNumber = input.Agent.PhoneNumber, }, Company = new TourOperatorCompanyEditDto { Name = input.Company.Name, Bulstat = input.Company.Bulstat, Email = input.Company.Email, PhoneNumber = input.Company.PhoneNumber, }, }; await this.tourOperatorsService.EditAsync(dto); return(this.RedirectToAction("Index")); }