public IHttpActionResult PostChannelMessages(string channelName, ChannelMessagesBindingModel model)
        {
            if (model == null)
            {
                return(this.BadRequest("Name is required!Cannot be empty."));
            }

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

            var channel = this.Data.Channels
                          .FirstOrDefault(ch => ch.Name == channelName);

            if (channel == null)
            {
                return(this.NotFound());
            }

            var message = new ChannelMessage
            {
                Text      = model.Text,
                DateSent  = DateTime.Now,
                ChannelId = channel.Id
            };

            if (this.User.Identity.IsAuthenticated)
            {
                message.SenderId = this.User.Identity.GetUserId();
            }

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

            if (this.User.Identity.IsAuthenticated)
            {
                return(this.Ok(new
                {
                    Id = message.Id,
                    Sender = this.User.Identity.GetUserName(),
                    Message = "Message sent to channel " + channel.Name
                }));
            }

            return(this.Ok(new
            {
                Id = message.Id,
                Message = "Anonymous message sent to channel " + channel.Name
            }));
        }
示例#2
0
        public IHttpActionResult PostMessagesToChannel(string channelName, ChannelMessagesBindingModel m)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (string.IsNullOrEmpty(channelName))
            {
                return(BadRequest());
            }

            if (!Data.Channels.Any(c => c.Name == channelName))
            {
                return(NotFound());
            }

            var channelId = Data.Channels.First(c => c.Name == channelName).Id;

            var message = new ChannelMessage
            {
                Text      = m.Text,
                DateSent  = DateTime.Now,
                ChannelId = channelId
            };

            Data.ChannelMessages.Add(message);

            Data.SaveChanges();

            return(Ok(new
            {
                message.Id,
                Message = "Anonymous message sent to channel " + channelName + "."
            }));
        }