public async Task <ServiceResponse <GetCompanyDto> > AddCompanyOwner(AddCompanyUserDto newCompanyUserDto)
        {
            ServiceResponse <GetCompanyDto> response = new ServiceResponse <GetCompanyDto>();

            try
            {
                Company company = await _context.Companies
                                  .Include(c => c.CompanyUsers).ThenInclude(cu => cu.User)
                                  .FirstOrDefaultAsync(c => c.Id == newCompanyUserDto.CompanyId);

                if (company == null)
                {
                    response.Success = false;
                    response.Message = "Company not found.";
                    return(response);
                }

                User user = await _context.Users
                            .FirstOrDefaultAsync(u => u.Id == newCompanyUserDto.UserId);

                if (user == null)
                {
                    response.Success = false;
                    response.Message = "User not found";
                    return(response);
                }

                Role role = await _context.Roles
                            .FirstOrDefaultAsync(r => r.RoleName == "Owner");

                CompanyUser companyUser = new CompanyUser
                {
                    Company = company,
                    User    = user,
                    Role    = role
                };

                await _context.CompanyUsers.AddAsync(companyUser);

                await _context.SaveChangesAsync();

                response.Data = _mapper.Map <GetCompanyDto>(company);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }
            return(response);
        }
Example #2
0
 public async Task <IActionResult> AddCompanyUser(AddCompanyUserDto newCompanyUser)
 {
     return(Ok(await _companyUserService.AddCompanyOwner(newCompanyUser)));
 }