public async Task <IActionResult> CreateAvioAdmin([FromBody] RegisterAdminDTO adminDTO) { if (ModelState.IsValid) { if (await AvioAdminService.AdminExists(adminDTO.Username)) { return(BadRequest("Admin already exists with that username.")); } if (await CarAdminService.AdminExists(adminDTO.Username)) { return(BadRequest("Admin already exists with that username.")); } if (adminDTO.Password != adminDTO.ConfirmPassword) { return(BadRequest("Password and confirmation password don't match.")); } RegularUser user = new RegularUser() { UserName = adminDTO.Username, Status = UserStatus.Activated }; var foundAdmin = await UserManager.FindByNameAsync(user.UserName) != null; if (!foundAdmin) { var createdAdmin = await UserManager.CreateAsync(user, adminDTO.Password); if (createdAdmin.Succeeded) { await UserManager.AddToRoleAsync(user, "AvioAdmin"); AvioAdmin admin = new AvioAdmin() { UserId = user.Id, AvioCompanyId = (await AvioService.GetCompanyByName(adminDTO.CompanyName)).AvioCompanyId }; if (admin.AvioCompanyId > 0) { await AvioAdminService.RegisterAdmin(user.Id, admin); return(Ok(200)); } else { return(BadRequest("Avio company not found.")); } } } return(BadRequest("Admin already exists.")); } return(BadRequest("No sufficient data provided.")); }