public ActionResult SendMessage(String message, String username) { Debug.WriteLine(username); var pusher = new Pusher("72484", "e9473350e86cf2fd89ac", "3e1cbae89445267f362f"); IGetResult <object> result = pusher.Get <object>("/channels/presence-channel/users"); PusherUsers users = new JavaScriptSerializer().Deserialize <PusherUsers>(result.Body); pusher.Trigger("presence-channel", "my_event", new { message = message, user = Session["FBID"], username = username }); // Database logging using (ChatContext db = new ChatContext()) { // Insert chat message row ChatMessage c = new ChatMessage { FBID = (String)Session["FBID"], Message = message, UserName = username, TimeSent = DateTime.Now }; db.ChatMessages.Add(c); db.SaveChanges(); // SaveChanges() is called to get a ChatMessageID value from the DB. // Insert user-to-chat rows for all connected users foreach (PusherUser user in users.users) { UserToChatMessage u = new UserToChatMessage { FBID = user.id.ToString(), ChatMessageID = c.ChatMessageID }; db.UserToChatMessages.Add(u); } db.SaveChanges(); } return(new HttpStatusCodeResult((int)HttpStatusCode.OK)); }
public async Task <IActionResult> PostChat([FromBody] Chat chat) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } List <ChatUser> tempUsers = chat.ChatUsers.ToList(); bool chatExist = false; if (chat.Private) { var tempChats = _context.Chats.Include(c => c.ChatUsers).Where(p => p.Private == true).ToList(); for (int i = 0; i < tempChats.Count; i++) { var chatUsers = tempChats[i].ChatUsers.ToList(); for (int j = 0; j < tempUsers.Count; j++) { if (chatUsers.Where(n => n.UserId == tempUsers[j].UserId).Any()) { chatExist = true; } else { chatExist = false; break; } } if (chatExist) { chat = _context.Chats.Find(tempChats[i].ChatId); chat.ChatUsers = null; return(Ok(chat)); } } } chat.ChatUsers = null; _context.Chats.Add(chat); await _context.SaveChangesAsync(); for (int i = 0; i < tempUsers.Count; i++) { ChatUser chatUser = new ChatUser(); chatUser.Chat = chat; var user = _context.Users.Find(tempUsers[i].UserId); chatUser.User = user; _context.ChatsUsers.Add(chatUser); _context.SaveChanges(); } _context.Entry(chat).State = EntityState.Modified; _context.SaveChanges(); chat.ChatUsers = null; return(Ok(chat)); }
public int ToggleLike(int userId, int statusId) { Status status = context.Statuses.Find(statusId); string userIdString = userId.ToString(); if (status.LikedIds == null || status.LikedIds == "") { status.LikedIds = userIdString; status.Likes += 1; context.SaveChanges(); return(1); } else { List <string> currentLikes = status.LikedIds.Split(',').ToList(); if (currentLikes.Contains(userIdString)) { currentLikes.Remove(userIdString); status.LikedIds = string.Join(",", currentLikes); status.Likes -= 1; context.SaveChanges(); return(currentLikes.Count()); } else { status.LikedIds += "," + userIdString; status.Likes += 1; context.SaveChanges(); return(currentLikes.Count() + 1); } } }
public ActionResult <Boolean> CreateRoom(Room room) { if (_context.Rooms == null) { return(NotFound()); } var ro = _context.Rooms.AsNoTracking().FirstOrDefault(r => r.Name == room.Name); if (ro != null) { return(Problem("Choose different Name!")); } var result = _context.Rooms.Add(room); _context.SaveChanges(); if (result.Entity != null) { _context.UserRooms.Add(new UserRoom { UserId = room.AdminId, RoomId = room.RoomId }); _context.SaveChanges(); room.UserRooms.Clear(); //ChatHub.Rooms.Add(room.RoomId,room); return(Ok(true)); } return(Ok(false)); //var usersController = new UsersController(_context); //return usersController.GetUser(room.AdminId); }
/// <summary> /// Add a chat room to the database. /// </summary> /// <param name="chatRoomModel"> Chat room to add. </param> public ChatRoomModel Add(ChatRoomModel chatRoomModel) { var chatRoom = new ChatRoom() { DisplayName = chatRoomModel.DisplayName }; _chatContext.ChatRooms.Add(chatRoom); _chatContext.SaveChanges(); _chatContext.Entry(chatRoom).Collection(i => i.UserRooms).Load(); // set dto model's id chatRoomModel.Id = chatRoom.Id; foreach (var user in chatRoomModel.Users) { var userRoom = new UserRoom() { UserId = user.Id, ChatRoomId = chatRoom.Id }; chatRoom.UserRooms.Add(userRoom); } _chatContext.SaveChanges(); return(chatRoomModel); }
public void AddMessage(Message mess) { if (mess.IdMessage != null) { dbChat.Messages.Add(mess); dbChat.SaveChanges(); } }
public ChatMessage CreateNewMessage(string senderName, string message) { var newMessage = new ChatMessage { Sender = senderName, Message = message, Date = DateTime.Now }; _context.Messages.Add(newMessage); _context.SaveChanges(); return(newMessage); }
//determines if user is about to enter chat public ActionResult Logon(string userLogin, string userEmail, bool logon) { try { var users = db.Users.ToList(); int usersOnline = users.Where(u => u.Online == true).ToList().Count; if (usersOnline >= 10) { throw new Exception("Chat is full"); } else if (users.FirstOrDefault(u => (u.Login == userLogin) && (u.Email == userEmail)) != null) { throw new Exception("User with such login and email already exists. Choose another login/email"); } else if (users.FirstOrDefault(u => u.Login == userLogin) != null) { throw new Exception("User with such login already exists. Choose another login"); } else if (users.FirstOrDefault(u => u.Email == userEmail) != null) { throw new Exception("User with such email already exists. Choose another email"); } // adding user to chat else { ChatUser newUser = new ChatUser() { Login = userLogin, Email = userEmail, LoginTime = DateTime.Now, Online = true }; db.Messages.Add(new ChatMessage() { Text = userLogin + " entered the chat", User = newUser, PostTime = DateTime.Now }); db.Users.Add(newUser); db.SaveChanges(); } viewModel = new ChatViewModel() { Messages = db.Messages.ToList(), Users = db.Users.ToList() }; return(PartialView("ChatBox", viewModel)); } catch (Exception ex) { Response.StatusCode = 500; return(Content(ex.Message)); } }
public ActionResult Create([Bind(Include = "USER_ID,FIRST_NAME,LAST_NAME,AVATARLINK")] User user) { if (ModelState.IsValid) { db.User.Add(user); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(user)); }
public async void SendMessage(string message, int conversationId) { var user = GetCurrentUser(); var msg = new Message { Content = message, ConversationId = conversationId, Date = DateTime.Now, UserId = user.Id }; _chatContext.Messages.Add(msg); _chatContext.SaveChanges(); await Clients.Group(conversationId.ToString()).SendAsync("receiveMessage", msg); }
public ActionResult Put([FromBody] string message) { Chat chatToAdd = new Chat(); int idToAdd = (from n in chatContext.Chats orderby n.Id descending select n.Id).FirstOrDefault(); chatToAdd.Id = idToAdd + 1; chatToAdd.Message = message; chatContext.Chats.Add(chatToAdd); chatContext.SaveChanges(); return(Ok()); }
private void insertNewUser(int userId, string userName) { var user = new User { Id = userId, Name = userName, }; db.Users.Add(user); db.SaveChanges(); }
public ActionResult Create([Bind(Include = "chatlog_id,sender_name,category_id,message,timestamp")] Chatlog chatlog) { if (ModelState.IsValid) { db.Chatlog.Add(chatlog); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(chatlog)); }
public ActionResult Create([Bind(Include = "Id,Username,Color,PicUrl")] Profile profile) { if (ModelState.IsValid) { profile.Id = Guid.NewGuid(); db.Profiles.Add(profile); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(profile)); }
public void SendFriendRequest(int currentUserId, int friendId) { FriendRequest friendRequest = new FriendRequest() { Senderid = currentUserId, Recieverid = friendId, Seen = false }; context.FriendRequests.Add(friendRequest); context.SaveChanges(); }
public ActionResult Create([Bind(Include = "Id,Author,Conteudo")] Message message) { if (ModelState.IsValid) { message.Id = Guid.NewGuid(); db.messages.Add(message); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(message)); }
public bool Create(User item) { try { _context.Users.Add(item); } catch (Exception e) { return(false); } _context.SaveChanges(); return(true); }
public bool Delete(int user_id) { var dbUser = context.mdl_user.Find(user_id); if (dbUser == null) { return(false); } dbUser.record_state = 1; context.SaveChanges(); return(true); }
public ActionResult Create([Bind(Include = "Id,Content,Timestamp")] Message message) { if (ModelState.IsValid) { message.Id = Guid.NewGuid(); var profile = (Profile)Session["profile"]; message.Sender = db.Profiles.SingleOrDefault(p => p.Id == profile.Id); db.Messages.Add(message); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(message)); }
/// <summary> /// Adds a chat message to the database. /// </summary> /// <param name="message"> Message to add to the database. </param> /// <returns> The added <see cref="ChatMessage"/> with additional fields set from the database. </returns> public ChatMessage Add(ChatMessage message) { // todo: change the model on the frontend to send a model like this message.UserId = message.User.Id; message.User = null; var addedMessage = _chatContext.ChatMessages.Add(message).Entity; _chatContext.SaveChanges(); // load the user into the entity _chatContext.Entry(addedMessage).Reference(i => i.User).Load(); return(addedMessage); }
public async Task Send(Message message) { var dialog = _usersDialog .FirstOrDefault(x => x.Value.ClientUserUserId .ToString() == Context.UserIdentifier || x.Value.EmployeeUserUserId.ToString() == Context.UserIdentifier) .Value; if (dialog != null) { message.DialogId = dialog.DialogId; message.ClientId = dialog.ClientUserUserId; await Clients.User(Context.UserIdentifier).Receive(message); if (dialog.EmployeeUserUserId == _botId) { await Clients.User(Context.UserIdentifier.ToString()).Receive(_autoDialog.ReplyMessage(message)); } else { message.SenderType = "out"; await Clients.User(dialog.EmployeeUserUserId.ToString()).Receive(message); } } else { Guid dialogId = Guid.NewGuid(); Dialog newdialog = new Dialog() { ClientUserUserId = Guid.Parse(Context.UserIdentifier), DialogId = dialogId, EmployeeUserUserId = _botId }; _context.Dialogs.Add(newdialog); _usersDialog.Add(key: newdialog.DialogId, value: newdialog); _context.SaveChanges(); message.DialogId = dialogId; await Clients.User(Context.UserIdentifier.ToString()).Receive(message); await Clients.User(Context.UserIdentifier.ToString()).Receive(_autoDialog.ReplyMessage(message)); } }
public ActionResult PostQuestion(string title, string editor1) { BaiDang baiDang = new BaiDang { TieuDe = title, NoiDung = editor1, TenDangNhap = (Session["NguoiDungDangNhap"] as NguoiDung).TenDangNhap, ThoiGian = DateTime.Now }; database.BaiDangs.Add(baiDang); database.SaveChanges(); return(View("Index", database.BaiDangs)); }
public ActionResult SubmitSignup(string tenDangNhap, string hoTen, string matKhau, HttpPostedFileBase hinhAnh) { if (database.NguoiDungs.Any(e => e.TenDangNhap == tenDangNhap)) { ViewBag["ThongBao"] = "Tên đăng nhập đã tồn tại, vui lòng chọn cái khác."; return(View()); } string filename = (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond).ToString() + Path.GetExtension(hinhAnh.FileName); string path = Path.Combine(Server.MapPath("~/Upload/profile"), filename); hinhAnh.SaveAs(path); NguoiDung nguoiDung = new NguoiDung { TenDangNhap = tenDangNhap, HoTen = hoTen, MatKhau = matKhau, HinhAnh = "~/Upload/profile/" + filename }; database.NguoiDungs.Add(nguoiDung); database.SaveChanges(); Session["NguoiDungDangNhap"] = nguoiDung; return(RedirectToAction("Index")); }
public bool RemoveUser(int userId) { using (var context = new ChatContext()) { List <TopicModel> topics = context.TopicModel.Include(topic => topic.author).Where(topic => topic.author.id == userId).ToList(); foreach (TopicModel topic in topics) { List <PostModel> posts = context.PostModel.Include(post => post.topic).Where(post => post.topic.id == topic.id).ToList(); foreach (PostModel post in posts) { context.PostModel.Remove(post); } context.TopicModel.Remove(topic); } List <PostModel> postModels = context.PostModel.Include(post => post.author).Where(post => post.author.id == userId).ToList(); foreach (PostModel postModel in postModels) { context.PostModel.Remove(postModel); } UserModel userModel = context.UserModel.First(user => user.id == userId); context.UserModel.Remove(userModel); context.SaveChanges(); return(true); } }
public override int SaveChanges() { var result = _context.SaveChanges(); _publisher.Publish(new SaveEvent()); return(result); }
public JsonResult MessageDelivered(int message_id) { Conversation convo = null; using (var db = new ChatContext()) { convo = db.Conversations.FirstOrDefault(c => c.Id == message_id); if (convo != null) { convo.Status = Conversation.MessageStatus.Delivered; db.Entry(convo).State = EntityState.Modified; db.SaveChanges(); } } string socket_id = Request.Form["socket_id"]; var conversationChannel = getConvoChannel(convo.SenderId, convo.ReceiverId); pusher.TriggerAsync( conversationChannel, "message_delivered", convo, new TriggerOptions() { SocketId = socket_id }); return(Json(convo)); }
// TODO: move to service? #region Db handling private ChatUser AddUserToStorage(string userName, string clientId) { ChatUser user = null; using (var db = new ChatContext()) { user = db.ChatUsers.SingleOrDefault(u => u.Name == userName); if (user == null) { user = new ChatUser { Name = userName, JoinTime = DateTime.Now, ClientId = clientId, }; db.ChatUsers.Add(user); } //user.Connections.Add(new Connection // { // ConnectionID = Context.ConnectionId, // UserAgent = Context.Request.Headers["User-Agent"], // Connected = true // }); db.SaveChanges(); } return(user); }
/* public members */ public static void CreateUser(string username, string nickname, string authCode) { ValidateUsername(username); ValidateNickname(nickname); ValidateAuthCode(authCode); using (ChatContext context = new ChatContext()) { var usernameToLower = username.ToLower(); var nicknameToLower = nickname.ToLower(); var dbUser = context.Users.FirstOrDefault(u => u.Username.ToLower() == usernameToLower || u.Nickname.ToLower() == nicknameToLower); if (dbUser != null) { if (dbUser.Username.ToLower() == usernameToLower) { throw new ServerErrorException("Username already exists", "ERR_DUP_USR"); } else { throw new ServerErrorException("Nickname already exists", "ERR_DUP_NICK"); } } dbUser = new User() { Username = usernameToLower, Nickname = nickname, AuthCode = authCode }; context.Users.Add(dbUser); context.SaveChanges(); } }
public ActionResult SendTheNewMessage(string User, Message model) { var currentUser = (User)Session["user"]; if (string.IsNullOrEmpty(User)) { ModelState.AddModelError("Person", "Некорректный адресант"); } if (string.IsNullOrEmpty(model.TitleMessage)) { ModelState.AddModelError("header", "Некорректный заголовок"); } if (string.IsNullOrEmpty(model.TextMessage)) { ModelState.AddModelError("text", "Некорректный текс"); } if (ModelState.IsValid) { model.SenderId = currentUser.Id; model.ReciverId = db.Users.Where(x => x.Login.Equals(User)).Select(x => x.Id).FirstOrDefault(); model.CreateAt = DateTime.Now; db.Messages.Add(model); db.SaveChanges(); return(RedirectToAction("Index")); } else { ViewBag.Message = "Не верный ввод"; return(RedirectToAction("MessageCreate")); } }
private ChatUser RemoveUserFromStorage(string userName) { ChatUser currentUser = null; using (var db = new ChatContext()) { currentUser = db.ChatUsers.SingleOrDefault(u => u.Name == userName); if (currentUser != null) { currentUser.LeaveTime = DateTime.Now; db.Entry(currentUser).State = System.Data.Entity.EntityState.Deleted; db.SaveChanges(); } //user.Connections.Add(new Connection // { // ConnectionID = Context.ConnectionId, // UserAgent = Context.Request.Headers["User-Agent"], // Connected = true // }); } return(currentUser); }
static void Main() { //Create and initialize the database Database.SetInitializer(new MigrateDatabaseToLatestVersion <ChatContext, Chat.Data.Migrations.Configuration>()); var context = new ChatContext(); using (context) { var user = new User { Username = "******", Password = "******", Picture = "....." }; context.Users.Add(user); var chatRoom = new ChatRoom { Name = "chatroom", Users = new User[] { user } }; context.ChatRooms.Add(chatRoom); var post = new Post { Date = DateTime.Now, UserId = user.Id, ChatRoomId = chatRoom.Id, Content = "ok" }; context.Posts.Add(post); context.SaveChanges(); } }
protected void InsertButton_Command(object sender, CommandEventArgs e) { var tbUsername = (TextBox)Page.FindControl("tb_Username"); if (string.IsNullOrWhiteSpace(tbUsername.Text)) { return; } this.ViewState["username"] = tbUsername.Text; string username = tbUsername.Text; string text = ((TextBox)Page.FindControl("tb_Message")).Text; ChatContext db = new ChatContext(); db.Messages.Add(new Message() { Username = username, Text = text }); db.SaveChanges(); }