Esempio n. 1
0
        public IHttpActionResult SendMessage(
            [FromBody] MessageBindingModels model)
        {
            if (model == null)
            {
                return(this.BadRequest("Model cannot be null (no data in request)"));
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var reciever = this.Data.Users.FirstOrDefault(u => u.UserName == model.Reciever);

            if (reciever == null)
            {
                return(this.BadRequest(string.Format(
                                           "User {0} does not exist",
                                           model.Reciever)));
            }

            string senderName = this.User.Identity.Name;

            var sender = this.Data.Users.FirstOrDefault(u => u.UserName == senderName);

            var message = new Message()
            {
                SenderId        = sender.Id,
                ReceiverId      = reciever.Id,
                MessageDateTime = DateTime.Now,
                Content         = model.Content
            };


            this.Data.Messages.Add(message);
            this.Data.SaveChanges();

            var data = this.Data.Messages
                       .Where(p => p.Id == message.Id)
                       .Select(MessageViewModels.Create)
                       .FirstOrDefault();

            return(this.Ok(data));
        }
Esempio n. 2
0
        public IHttpActionResult SendMessage(
            [FromBody] MessageBindingModels model, string channelName)
        {
            if (model == null)
            {
                return(this.BadRequest("Model cannot be null (no data in request)"));
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }



            string senderName = this.User.Identity.Name;
            var    channelId  = this.Data.ChatRooms.FirstOrDefault(c => c.Name == channelName).Id;
            var    sender     = this.Data.Users.FirstOrDefault(u => u.UserName == senderName);

            var message = new Message()
            {
                SenderId        = sender.Id,
                ChatRoomId      = channelId,
                MessageDateTime = DateTime.Now,
                Content         = model.Content
            };


            this.Data.Messages.Add(message);
            this.Data.SaveChanges();

            var data = this.Data.Messages
                       .Where(p => p.Id == message.Id)
                       .Select(MessageViewModels.Create)
                       .FirstOrDefault();

            return(this.Ok(data));
        }