public async Task <IMessage> Create(IUserSummary user, string messageText, int conversationId) { if (string.IsNullOrWhiteSpace(messageText)) { throw new ArgumentNullException("messageText"); } if (conversationId <= 0) { throw new ArgumentOutOfRangeException("conversationId", conversationId, "The conversationId must be a valid value greater than 0."); } if (user == null) { throw new ArgumentNullException("user"); } if (user.Id <= 0 || string.IsNullOrWhiteSpace(user.DisplayName)) { throw new ArgumentException("The IUserSummary could not be read. Please ensure to pass a valid instance with a hydrated id and display name.", "user"); } var entity = new DAL.Message() { ConversationId = conversationId, CreatedByUserId = user.Id, CreatedDateTime = DateTime.UtcNow, MessageText = messageText }; this._commandContext.Messages.Add(entity); await this._commandContext.SaveChangesAsync(); var message = await this.GetById(entity.MessageId); message.SetCreatedUser(user); return(message); }
public void UserLeft(IUserSummary user) { if (user != null) { var activeUsers = this.ActiveUsers.ToList(); activeUsers.RemoveAll(d => d.Id == user.Id); this.ActiveUsers = activeUsers; } }
public void UserJoined(IUserSummary user) { if (user != null && !this.ActiveUsers.Any(d => d.Id == user.Id)) { var activeUsers = this.ActiveUsers.ToList(); activeUsers.Add(user); this.ActiveUsers = activeUsers; } }
public UserSummaryViewModel(IUserSummary user) { this.id = user.id; this.first_name = user.first_name; this.last_name = user.last_name; this.email = user.email; if (user.specialization != null) { this.specialization = user.specialization; this.specDesc = user.specDesc; } }
public override Task OnDisconnected(bool stopCalled) { var conversationTask = _conversationBoundedContext.GetBySignalRConnectionIdWithActiveUser(Context.ConnectionId); conversationTask.ContinueWith(d => { if (d.Result != null && d.Result.Item1 != null && d.Result.Item2 != null) { IConversation conversation = d.Result.Item1; IUserSummary user = d.Result.Item2; Clients.Group(conversation.ConversationId.ToString()).userLeft(user); _conversationRepository.LeaveUserFromConversation(conversation, user.Id); } }); return(base.OnDisconnected(stopCalled)); }
public void SetCreatedUser(IUserSummary user) { this.CreatedByUserId = user == null ? 0 : user.Id; this.CreatedByDisplayName = user?.DisplayName; }
public Message(IUserSummary user) { this.CreatedByUserId = user == null ? 0 : user.Id; this.CreatedByDisplayName = user?.DisplayName; }