// [Authorize(Roles = "AddGroup")] public IActionResult Create([FromBody] AddGroupDTO addGroupDto) { try { if (string.IsNullOrWhiteSpace(addGroupDto.Name)) { var message = Messages.EmptyName; message.ActionName = "Add Group"; message.ControllerName = "Group"; return(BadRequest(message)); } // test if there is another group with the same name Group group = _groupRepositroy.Get(c => c.Name == addGroupDto.Name).FirstOrDefault(); if (group != null) { var message = Messages.Exist; message.ActionName = "Add Group"; message.ControllerName = "Group"; return(Conflict(message)); } var priveleges = _privilageRepositroy.Get().Select(c => c.Id); List <int> privelgesId = addGroupDto.Priveleges; if (privelgesId != null) { // test if theres an priveleg Id not in database if (privelgesId.Except(priveleges).Any()) { var message = Messages.NotFound; message.ActionName = "Add Group"; message.ControllerName = "Group"; message.Message = "الصلاحية غير موجودة"; return(NotFound(message)); } } group = new Group() { Name = addGroupDto.Name }; _abstractUnitOfWork.Add(group, UserName()); // for add group without priveleges if (privelgesId != null) { foreach (var item in addGroupDto.Priveleges) { _abstractUnitOfWork.Add(new GroupPrivilage() { GroupId = group.Id, PrivilageId = item }, UserName()); } } _abstractUnitOfWork.Commit(); return(Ok(_mapper.Map <GroupResopnseDTO>(group))); } catch (Exception) { return(BadRequestAnonymousError()); } }
public IActionResult AddGroup(AddGroupDTO AddGroupDTO) { try { if (ModelState.IsValid) { var CurrentUser = _context.Users.Find(userManager.GetUserId(User)); var existingAccount = _userStore.GetByIdentityUserId(CurrentUser.Id); if (existingAccount.AccountStatus.Equals(Status.Suspended)) { signInManager.SignOutAsync(); } var Group = new Group() { UserId = CurrentUser.Id, Name = AddGroupDTO.Name, Description = AddGroupDTO.Description, CreationDate = DateTime.Now }; _GroupStore.CreateGroup(Group); _logger.LogInformation("Success: " + Group.Id.ToString() + " " + "Group Name: " + Group.Name); var GroupOwner = new GroupOwner() { UserId = CurrentUser.Id, Username = CurrentUser.UserName, GroupId = Group.Id }; var GroupUser = new GroupUser() { UserId = CurrentUser.Id, Username = CurrentUser.UserName, GroupId = Group.Id }; _GroupStore.CreateGroupOwner(GroupOwner); _GroupStore.CreateGroupUser(GroupUser); return(RedirectToAction("Profile", "Accounts", HttpStatusCode.OK)); } return(View(AddGroupDTO)); } catch (DomainException ex) { _logger.LogError(ex.Message); return(RedirectToAction(ActionName.Login, ControllerName.Accounts)); } catch (Exception ex) { _logger.LogError(ex.Message); return(RedirectToAction(ActionName.ServerError, ControllerName.Accounts)); } }