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);
        }
Exemple #2
0
 public void UserLeft(IUserSummary user)
 {
     if (user != null)
     {
         var activeUsers = this.ActiveUsers.ToList();
         activeUsers.RemoveAll(d => d.Id == user.Id);
         this.ActiveUsers = activeUsers;
     }
 }
Exemple #3
0
 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;
            }
        }
Exemple #5
0
        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));
        }
Exemple #6
0
 public void SetCreatedUser(IUserSummary user)
 {
     this.CreatedByUserId      = user == null ? 0 : user.Id;
     this.CreatedByDisplayName = user?.DisplayName;
 }
Exemple #7
0
 public Message(IUserSummary user)
 {
     this.CreatedByUserId      = user == null ? 0 : user.Id;
     this.CreatedByDisplayName = user?.DisplayName;
 }