public IActionResult UpdateUserInGroup([FromBody] AddUserGroupCommand model) { if (string.IsNullOrEmpty(model.UserType)) { return BadRequest("UserType property cannot be null (It has to be either user or admin)"); } var userGroup = new UserGroup(); if (_context.Users.Find(model.UserId) == null) { return BadRequest("User with provided id does not exist"); } if (_context.Groups.Find(model.GroupId) == null) { return BadRequest("Group with provided id does not exist"); } if (model.UserType.ToLower().Equals("admin")) { userGroup.UserType = 1; } else if (model.UserType.ToLower().Equals("user")) { userGroup.UserType = 2; } else { return BadRequest("Invalid UserType property. Please put property value to admin or user"); } userGroup.UserId = model.UserId; userGroup.GroupId = model.GroupId; try { var existingUser = _context.UserGroups.Where(x => x.UserId == model.UserId).Where(y => y.GroupId == model.GroupId).FirstOrDefault(); existingUser.UserType = userGroup.UserType; _context.SaveChanges(); return Ok(); } catch (ApplicationException ex) { return BadRequest(new { message = ex.Message }); } }
public IActionResult AddUserToGroup([FromBody] AddUserGroupCommand model) { if (string.IsNullOrEmpty(model.UserType)) { return BadRequest("UserType property cannot be null (It has to be either user or admin)"); } var userGroup = new UserGroup(); if (_context.Groups.Find(model.GroupId) == null) { return BadRequest("Group with provided id does not exist"); } if (model.UserType.ToLower().Equals("admin")) { userGroup.UserType = 1; } else if (model.UserType.ToLower().Equals("user")) { userGroup.UserType = 2; } else { return BadRequest("Invalid UserType property. Please put property value to admin or user"); } var allUserGroup = _context.UserGroups.ToList(); foreach (var ug in allUserGroup) { if (ug.GroupId == model.GroupId && ug.UserId == model.UserId) { return BadRequest("Error, this user is already in this group"); } } userGroup.UserId = model.UserId; userGroup.GroupId = model.GroupId; var users = _context.Users.ToList(); if (!string.IsNullOrEmpty(model.UserFirstLastname)) { bool foundUser = false; foreach (var user in users) { if(model.UserFirstLastname == (user.FirstName + ' ' + user.LastName)) { foreach (var ug in allUserGroup) { if(ug.GroupId == model.GroupId && ug.UserId == user.Iduser) { return BadRequest("Error, this user is already in this group"); } } userGroup.UserId = user.Iduser; foundUser = true; } } if (!foundUser) { return NotFound("Cannot find user with this first and last name(for example: Ivan Ivic). First characters must be capital!"); } } try { _context.UserGroups.Add(userGroup); _context.SaveChanges(); return Ok(); } catch (ApplicationException ex) { return BadRequest(new { message = ex.Message }); } }