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)); }
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); }
// 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)); }
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); }
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); }