コード例 #1
0
ファイル: GroupController.cs プロジェクト: TariqHajeer/Tcc
        //  [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());
            }
        }
コード例 #2
0
        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));
            }
        }