public IHttpActionResult PostChannelMessage(string channelName, [FromBody] ChannelMessageBindingModel channelMessageModel) { var userId = User.Identity.GetUserId(); var channel = db.Channels.FirstOrDefault(c => c.Name == channelName); User user = null; if (userId != null) { user = db.Users.Find(userId); } if (channel == null) { return(NotFound()); } if (channelMessageModel == null) { return(BadRequest("Null text")); } if (!ModelState.IsValid) { return(BadRequest()); } if (user == null && userId != null) { return(Unauthorized()); } var channelMessage = new ChannelMessage() { Text = channelMessageModel.Text, DateSent = DateTime.Now, Sender = user }; channel.ChannelMessages.Add(channelMessage); db.SaveChanges(); if (user == null) { return(this.Ok(new { Id = channelMessage.Id, Message = "Anonymous message sent to channel " + channel.Name + "." })); } return(this.Ok(new { Id = channelMessage.Id, Sender = user.UserName, Message = "Message sent to channel " + channel.Name + "." })); }
public IHttpActionResult PostAnonymoustMessage([FromUri] string channelName, [FromBody] ChannelMessageBindingModel model) { if (string.IsNullOrEmpty(channelName) || model == null || !this.ModelState.IsValid) { return(this.BadRequest()); } var dbChannel = this.Data.Channels.FirstOrDefault(c => c.Name == channelName); if (dbChannel == null) { return(this.NotFound()); } if (this.User.Identity.IsAuthenticated) { var userId = this.User.Identity.GetUserId(); var dbUser = this.Data.Users.First(u => u.Id == userId); var message = new ChannelMessage() { DateSent = DateTime.Now, Sender = dbUser, Text = model.Text }; dbChannel.ChannelMessages.Add(message); this.Data.SaveChanges(); var viewModel = new ChannelMessageCreateWithUserViewModel() { Id = message.Id, Sender = message.Sender.UserName, Message = "Message sent to channel " + dbChannel.Name + "." }; return(this.Ok(viewModel)); } else { var message = new ChannelMessage() { DateSent = DateTime.Now, Sender = null, Text = model.Text }; dbChannel.ChannelMessages.Add(message); this.Data.SaveChanges(); var viewModel = new ChannelMessageCreateViewModel() { Id = message.Id, Message = "Anonymous message sent to channel " + dbChannel.Name + "." }; return(this.Ok(viewModel)); } }
public IHttpActionResult SendChannelMessage( string channelName, ChannelMessageBindingModel channelMessageData) { if (channelMessageData == null) { return(BadRequest("Missing message data.")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var channel = db.Channels.All().FirstOrDefault(c => c.Name == channelName); if (channel == null) { return(this.NotFound()); } var currentUserId = User.Identity.GetUserId(); var currentUser = this.db.Users.Find(currentUserId); var message = new ChannelMessage() { Text = channelMessageData.Text, Channel = channel, DateSent = DateTime.Now, SenderUser = currentUser }; db.ChannelMessages.Add(message); db.SaveChanges(); if (message.SenderUser == null) { return(this.Ok( new { message.Id, Message = "Anonymous message sent successfully to channel " + channelName + "." } )); } return(this.Ok( new { message.Id, Sender = message.SenderUser.UserName, Message = "Message sent successfully to channel " + channelName + "." } )); }
public IHttpActionResult PostMessage(string channelName, ChannelMessageBindingModel model) { if (model == null) { return(this.BadRequest()); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var channel = this.Data.Channels .FirstOrDefault(x => x.Name == channelName); if (channel == null) { return(this.BadRequest("No existing channel")); } var channelMessage = new ChannelMessage { Text = model.Text, ChannelId = channel.Id }; if (this.User.Identity.IsAuthenticated) { channelMessage.UserId = this.User.Identity.GetUserId(); } this.Data.ChannelMessages.Add(channelMessage); this.Data.SaveChanges(); return(this.CreatedAtRoute("GetById", new { id = channelMessage.Id }, ChannelMessageDataModel.ReturnFix(channelMessage))); // //return this.Ok("message created"); // return this.CreatedAtRoute("GetById", new { id = channelMessage.Id }, // this.Data.ChannelMessages // .Where(x => x.Id == channelMessage.Id) // .Select(ChannelMessageDataModel.DataModel) // .FirstOrDefault()); }
public IHttpActionResult PostChannelMessage(string channelName, ChannelMessageBindingModel channelMessageData) { if (channelMessageData == null) { return(this.BadRequest("Missing message data.")); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var channel = this.Data.Channels.All().FirstOrDefault(c => c.Name == channelName); if (channel == null) { return(this.NotFound()); } var loggedUserId = this.User.Identity.GetUserId(); var loggedUser = this.Data.Users.Find(loggedUserId); var message = new ChannelMessage { Text = channelMessageData.Text, FileContent = channelMessageData.FileContent, ChannelId = channel.Id, Date = DateTime.Now, SenderId = loggedUser.Id }; this.Data.ChannelMessages.Add(message); this.Data.SaveChanges(); return(this.Ok(ChannelMessageViewModel.CreateSingleView(message))); }