Example #1
0
        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"));
        }