コード例 #1
0
        public async Task <IActionResult> Create([FromBody] CreateGroup model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dto = _mapper.Map <DtoGroup>(model);

            var result = await _groupService.CreateAsync(dto, UserId);

            if (!result.Succeeded)
            {
                return(UnprocessableEntity(result.Errors));
            }

            var newDto = result.Result;
            // TODO make GroupRole not by Id but by name
            await _groupMemberService.CreateAsync(new DtoGroupMember
            {
                GroupId     = newDto.Id,
                UserId      = UserId,
                GroupRoleId = 3
            }, UserId);

            // TODO Error checking
            return(CreatedAtAction(nameof(GetById), new { id = newDto.Id }, newDto));
        }
コード例 #2
0
        public async Task <IHttpActionResult> Create(GroupCreateModel createModel)
        {
            if (!_groupService.CanCreate())
            {
                return(StatusCode(HttpStatusCode.Forbidden));
            }

            var currentMemberId = await _memberService.GetCurrentMemberIdAsync();

            var groupId = await _groupMemberService.CreateAsync(createModel, new GroupMemberSubscriptionModel
            {
                IsAdmin  = true,
                MemberId = currentMemberId,
            });

            return(Ok(_groupLinkProvider.GetGroupRoomLink(groupId)));
        }
コード例 #3
0
        public async Task <IActionResult> Create([FromBody] ViewUser model, [FromRoute] int groupId)
        {
            // TODO Error checking
            var userResult = await _groupMemberService.GetAllByGroupAndUserId(groupId, UserId);

            var user       = userResult.Result;
            var userPolicy = await _groupRoleService.GetPoliceNameById(user.GroupRoleId);

            if (userPolicy.Result != GroupPoliceName.CanAddAndDeleteUser &&
                userPolicy.Result != GroupPoliceName.CanEverything)
            {
                return(Unauthorized("You cannot do it in this group"));
            }

            var groupResult = await _groupService.GetById(groupId);

            if (!groupResult.Succeeded)
            {
                return(BadRequest(groupResult.Errors));
            }

            //Todo Error checking
            var roleId = await _groupRoleService.GeIdByName(model.userRole);

            // TODO use UserService to find Id by Name
            var dto = new DtoGroupMember
            {
                Id          = 0,
                GroupId     = groupId,
                UserId      = model.Id,
                GroupRoleId = roleId.Result,
            };
            var dtoResult = await _groupMemberService.CreateAsync(dto, UserId);

            if (!dtoResult.Succeeded)
            {
                return(BadRequest(dtoResult.Errors));
            }

            return(NoContent());
        }