Exemple #1
0
        public async Task <MemberSummary> AddMemberAsync(string saasUserId, string email)
        {
            var member = await UnitOfWork.MemberRepository.GetMemberBySaasUserIdAsync(saasUserId);

            if (member != null)
            {
                return(member.ToMemberSummary(_configuration));
            }

            var newMember = new Domain.Member.Member
            {
                Id           = Guid.NewGuid(),
                Role         = UserRole.User,
                IsAfk        = false,
                IsBanned     = false,
                Status       = UserStatus.Active,
                SaasUserId   = saasUserId,
                Email        = email,
                LastActivity = DateTimeOffset.UtcNow,
                Name         = email,
            };
            await UnitOfWork.MemberRepository.AddMemberAsync(newMember);

            return(newMember.ToMemberSummary(_configuration));
        }
Exemple #2
0
        public static MemberSummary ToMemberSummary(this Domain.Member.Member member, CloudStorageConfiguration configuration)
        {
            var summary = new MemberSummary();

            if (member != null)
            {
                summary.Id           = member.Id;
                summary.SaasUserId   = member.SaasUserId;
                summary.UserName     = member.Name;
                summary.Status       = member.Status;
                summary.Role         = member.Role;
                summary.IsAfk        = member.IsAfk;
                summary.Email        = member.Email;
                summary.LastActivity = member.LastActivity;
                summary.AvatarUrl    = member.PhotoName != null ? $"{configuration.ContentStorageHost}/{configuration.MemberAvatarsContainer}/{member.PhotoName}" : null;
            }
            return(summary);
        }
Exemple #3
0
        // TODO:Add unit test
        public async Task <ClientResponse> GetOrAddClientAsync(AddClientRequest request)
        {
            var member = await UnitOfWork.MemberRepository.GetMemberBySaasUserIdAsync(request.SaasUserId);

            if (member == null)
            {
                var newMember = new Domain.Member.Member
                {
                    Id           = Guid.NewGuid(),
                    Role         = UserRole.User,
                    IsAfk        = false,
                    IsBanned     = false,
                    Status       = UserStatus.Active,
                    Name         = request.UserName,
                    LastActivity = DateTimeOffset.UtcNow,
                    SaasUserId   = request.SaasUserId
                };
                await UnitOfWork.MemberRepository.AddMemberAsync(newMember);
            }

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

            var client = await UnitOfWork.ClientRepository.GetClientByConnectionIdAsync(request.ConnectionId);

            if (client != null)
            {
                return(client.ToClientResponse(member.SaasUserId));
            }

            client = new Domain.Client.Client
            {
                Id                 = Guid.NewGuid(),
                MemberId           = member.Id,
                ClientConnectionId = request.ConnectionId,
                LastActivity       = member.LastActivity,
                LastClientActivity = DateTimeOffset.UtcNow,
                Name               = request.UserName,
                UserAgent          = request.UserAgent
            };

            await UnitOfWork.ClientRepository.AddClientAsync(client);

            return(client.ToClientResponse(member.SaasUserId));
        }
Exemple #4
0
        public static Domain.Member.Member ToMember(this ParticipantResponse response)
        {
            var member = new Domain.Member.Member();

            if (response != null)
            {
                member.Id           = response.Id;
                member.Email        = response.Email;
                member.Role         = response.Role;
                member.IsAfk        = response.IsAfk;
                member.IsBanned     = response.IsBanned;
                member.LastActivity = response.LastActivity;
                member.LastNudged   = response.LastNudged;
                member.SaasUserId   = response.SaasUserId;
                member.Name         = response.UserName;
                member.Status       = response.Status;
            }
            return(member);
        }
Exemple #5
0
        public static ParticipantResponse ToParticipantResponse(this Domain.Member.Member member)
        {
            var participant = new ParticipantResponse();

            if (member != null)
            {
                participant.Id           = member.Id;
                participant.Email        = member.Email;
                participant.Role         = member.Role;
                participant.IsAfk        = member.IsAfk;
                participant.IsBanned     = member.IsBanned;
                participant.LastActivity = member.LastActivity;
                participant.LastNudged   = member.LastNudged;
                participant.SaasUserId   = member.SaasUserId;
                participant.UserName     = member.Name;
                participant.Status       = member.Status;
            }
            return(participant);
        }