public IActionResult CreateAccount( [FromBody] AccountForCreateDto account, bool includeForms = false) { if (account == null) { return(BadRequest()); } if (account.Title == "") { ModelState.AddModelError("Title", "Title cannot be empty."); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var finalAccount = Mapper.Map <Entities.Account>(account); _accountRepository.AddAccount(finalAccount); if (!_accountRepository.Save()) { return(StatusCode(500, "A problem happened while handling your request.")); } return(Ok(finalAccount)); }
public async Task <IActionResult> CreateUser(AccountForCreateDto userForCreate) { var userToCreate = new Account { Name = userForCreate.Name, //Fullname = userForCreate.Fullname, //Email = userForCreate.Email, DepartmentId = userForCreate.Department.Id }; foreach (var role in userForCreate.AccountRoles) { userToCreate.AccountRoles.Add(new AccountRole { Account = userToCreate, RoleId = role.Id }); } _context.Add(userToCreate); if (await _context.SaveChangesAsync() > 0) { var createdUser = _mapper.Map <AccountForListDto>(userToCreate); return(Ok(createdUser)); } return(BadRequest("Creating user failed on save")); }
public async Task <IActionResult> UpdateUser(int userId, AccountForCreateDto userForUpdate) { var userToUpdate = await _context.Accounts .Include(u => u.AccountRoles) .FirstOrDefaultAsync(d => d.Id == userId); if (userToUpdate == null) { return(NotFound()); } userToUpdate.Name = userForUpdate.Name; userToUpdate.DepartmentId = userForUpdate.Department.Id; // MUST HAVE UPDATE METHOD! List <AccountRole> userRolesToBeDeleted = userToUpdate.AccountRoles .Where(c1 => userForUpdate.AccountRoles.All(c2 => c2.Id != c1.RoleId)).ToList(); foreach (AccountRole role in userRolesToBeDeleted) { userToUpdate.AccountRoles.Remove(role); } List <RoleForListDto> userRolesToBeAdded = userForUpdate.AccountRoles .Where(c1 => userToUpdate.AccountRoles.All(c2 => c2.RoleId != c1.Id)).ToList(); foreach (RoleForListDto role in userRolesToBeAdded) { userToUpdate.AccountRoles.Add(new AccountRole { RoleId = role.Id, AccountId = userToUpdate.Id }); } _context.Update(userToUpdate); if (await _context.SaveChangesAsync() > 0) { var updatedUserFromDb = await _context.Accounts .Include(u => u.AccountRoles).ThenInclude(r => r.Role) .Include(u => u.Department) .FirstOrDefaultAsync(u => u.Id == userToUpdate.Id); var updatedUser = _mapper.Map <AccountForListDto>(updatedUserFromDb); return(Ok(updatedUser)); } return(BadRequest("Failed to update user")); }