private void SeedChannels(MessagesDbContext context) { var channel = new Channel() { Name = "Channel1" }; context.Channels.Add(channel); context.SaveChanges(); //var message = new ChannelMessage() //{ // Text = "New message", // DateSent = DateTime.Now, // Sender = context.Users.FirstOrDefault(), // Channel = channel //}; //context.ChannelMessages.Add(message); //context.SaveChanges(); var channel2 = new Channel() { Name = "Channel2", ChannelMessages = new HashSet<ChannelMessage>() }; context.Channels.Add(channel2); context.SaveChanges(); }
public IHttpActionResult PutChannel(int id, Channel channel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (channel == null) { return(BadRequest()); } var dbChannel = db.Channels.Find(id); if (dbChannel == null) { return(NotFound()); } if (db.Channels.Any(c => c.Name == channel.Name && c.Id != id)) { return(Conflict()); } dbChannel.Name = channel.Name; db.SaveChanges(); return(this.Ok(new { Message = "Channel #" + dbChannel.Id + " edited successfully." })); }
public IHttpActionResult PutChannel(int id, Channel channel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != channel.Id) { return(BadRequest()); } //db.Entry(channel).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!ChannelExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
private static void ClearDatabase() { var context = new MessagesDbContext(); context.Channels.Delete(); context.SaveChanges(); }
public void DeleteChannel_WhenIsExistingAndNonEmpty_ShoulReturn409() { // Arrange -> create a channel TestingEngine.CleanDatabase(); MessagesDbContext dbContext = new MessagesDbContext(); var existingChannel = new Channel() { Name = "Existing Channel" }; existingChannel.ChannelMessages.Add(new ChannelMessage() { Id = 11, Text = "Some text", DateSent = DateTime.Now, Sender = null }); dbContext.Channels.Add(existingChannel); dbContext.SaveChanges(); // Act -> delete the channel var httpDeleteResponse = TestingEngine.HttpClient.DeleteAsync( "/api/channels/" + existingChannel.Id).Result; // Assert -> HTTP status code is 409 Assert.AreEqual(HttpStatusCode.Conflict, httpDeleteResponse.StatusCode); var result = httpDeleteResponse.Content.ReadAsStringAsync().Result; Assert.IsNotNull(result); Assert.AreEqual(1, dbContext.Channels.Count()); }
public void SendMessage(Message message) { _context.Messages.Add(message); _context.SaveChanges(); SendMessageAsync(message); }
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 static void CleanDatabase() { using (var dbContext = new MessagesDbContext()) { dbContext.ChannelMessages.Delete(); dbContext.UserMessages.Delete(); dbContext.Users.Delete(); dbContext.Channels.Delete(); dbContext.SaveChanges(); } }
protected void MessageButton_Click(object sender, EventArgs e) { var db = new MessagesDbContext(); db.Messages.Add(new Message() { Date = DateTime.Now, Text = this.MessageText.Text }); db.SaveChanges(); this.MessageText.Text = string.Empty; this.DataBind(); }
public IHttpActionResult PostPersonalMessage([FromBody] UserMessageBindingModel userMessageModel) { if (!ModelState.IsValid) { return(BadRequest()); } if (userMessageModel == null) { return(BadRequest()); } if (string.IsNullOrEmpty(userMessageModel.Text)) { return(BadRequest()); } var recipient = db.Users.FirstOrDefault(u => u.UserName == userMessageModel.Recipient); if (recipient == null) { return(NotFound()); } var userMessage = new UserMessage() { Text = userMessageModel.Text, DateSent = DateTime.Now, Reciever = recipient, Sender = null }; db.UserMessages.Add(userMessage); db.SaveChanges(); return(this.Ok(new { Id = userMessage.Id, Message = "Anonymous message sent successfully to user " + userMessageModel.Recipient + "." })); }
public void DeleteChannel_WhenIsExisting_ShoulReturn200() { // Arrange -> create a channel TestingEngine.CleanDatabase(); var existingChannel = new Channel() { Name = "Existing Channel" }; MessagesDbContext dbContext = new MessagesDbContext(); dbContext.Channels.Add(existingChannel); dbContext.SaveChanges(); // Act -> delete the channel var httpDeleteResponse = TestingEngine.HttpClient.DeleteAsync( "/api/channels/" + existingChannel.Id).Result; // Assert -> HTTP status code is 200 Assert.AreEqual(HttpStatusCode.OK, httpDeleteResponse.StatusCode); var result = httpDeleteResponse.Content.ReadAsStringAsync().Result; Assert.IsNotNull(result); Assert.AreEqual(0, dbContext.Channels.Count()); }
private static void SeedChannels(MessagesDbContext context) { context.Channels.Add(new Channel() { Name = "EmptyChannel", ChannelMessages = new List <ChannelMessage>() }); context.Channels.Add(new Channel() { Name = "ChannelWithMessages", ChannelMessages = new List <ChannelMessage>() { new ChannelMessage() { Text = "seedSeed", DateSent = DateTime.Now, Sender = null } } }); context.SaveChanges(); }