예제 #1
0
        public async Task <ActionResult> Get(int id)
        {
            var circleForReturn = _mapper.Map <CircleForReturnDto>(await _repo.GetCircle(id));
            var appUser         = await GetLoggedInUserAsync();

            if (appUser != null)
            {
                if (await _repo.IsOwner(appUser.Id, circleForReturn.Id))
                {
                    circleForReturn.IsManageable = true;
                    circleForReturn.IsMember     = true;
                }
                else if (await _repo.IsMember(appUser.Id, circleForReturn.Id))
                {
                    circleForReturn.IsMember = true;
                }
                else
                {
                    var request = await _repo.GetCircleRequest(appUser.Id, circleForReturn.Id);

                    if (request != null)
                    {
                        if (request.Declined)
                        {
                            circleForReturn.IsDeclined = true;
                        }
                        else
                        {
                            circleForReturn.IsWaitingApproval = true;
                        }
                    }
                }
            }

            circleForReturn.TotalMemberCount = await _repo.GetCircleMemberCount(id);

            return(Ok(circleForReturn));
        }