예제 #1
0
        public async Task <ActionResult <MemberDto> > AddMember([FromBody] MemberDto memberDto)
        {
            var authorizedUser = this.GetAuthorizedUser();

            return(CreatedAtAction(nameof(AddMember),
                                   await _memberService.AddMemberAsync(memberDto, authorizedUser)));
        }
예제 #2
0
        public async Task <IActionResult> AddMemberAsync()
        {
            var userId = GetCurrentSaasUserId();
            var email  = GetCurrentUserEmail();
            var result = await _memberService.AddMemberAsync(userId, email);

            return(Ok(result));
        }
예제 #3
0
        public async Task <IActionResult> AddMember([FromBody] AddMember member)
        {
            var validInsertion = await _memberService.AddMemberAsync(member);

            if (validInsertion)
            {
                return(Ok("Member added successfully"));
            }
            else
            {
                return(BadRequest("Member already exists"));
            }
        }
예제 #4
0
        public async Task <ClientResponse> AddClientAsync(AddClientRequest request)
        {
            var member = await UnitOfWork.MemberRepository.GetMemberBySaasUserIdAsync(request.SaasUserId);

            if (member == null)
            {
                await _memberService.AddMemberAsync(request.SaasUserId, request.Email);

                member = await UnitOfWork.MemberRepository.GetMemberBySaasUserIdAsync(request.SaasUserId);
            }

            await _memberService.UpdateMemberStatusAsync(member.SaasUserId, UserStatus.Online);

            var isClientExists = await UnitOfWork.ClientRepository.IsClientExistsAsync(request.ConnectionId);

            if (isClientExists)
            {
                throw new NetKitChatInvalidOperationException($"Unable to add client. Client {nameof(request.ConnectionId)}:{request.ConnectionId} already exists.");
            }

            var client = new Client
            {
                Id                 = Guid.NewGuid(),
                MemberId           = member.Id,
                Member             = member,
                ClientConnectionId = request.ConnectionId,
                LastActivity       = member.LastActivity,
                LastClientActivity = _dateTimeProvider.GetUtcNow(),
                Name               = request.UserName,
                UserAgent          = request.UserAgent
            };

            await UnitOfWork.ClientRepository.AddClientAsync(client);

            return(DomainModelsMapper.MapToClientResponse(client));
        }