public ActionResult addMessage(Сообщения m) { if (!db.Пользователи.ToList().Exists(o => o.Имя == m.Получатель)) { ModelState.AddModelError("Получатель", "Такого пользователя не существует"); } if (ModelState.IsValid) { db.Сообщения.Add(m); db.SaveChanges(); } return(RedirectToAction("Messages")); }
public async Task SendMessage(string?id, string?text = "", string?friendid = "") { var UserName = Context.User.Identity.Name; if (id == "") { Беседа беседа = new Беседа { ID_Беседы = Guid.NewGuid(), Дата_создания = DateTime.Now, Название_беседы = "personal", Описание_беседы = null, }; Участник участник = new Участник { ID_беседы = беседа.ID_Беседы, Дата_добавления = DateTime.Now, Дата_последнего_просмотра = DateTime.Now, ID_Пользователя = Guid.Parse(UserName), }; Участник участник2 = new Участник { ID_беседы = беседа.ID_Беседы, Дата_добавления = DateTime.Now, Дата_последнего_просмотра = DateTime.Now, ID_Пользователя = Guid.Parse(friendid), }; _context.Add(беседа); _context.Add(участник); _context.Add(участник2); List <Участник> участникs = new List <Участник>(); участникs.Add(участник); участникs.Add(участник2); Сообщения сообщениеновое = new Сообщения { ID_беседы = беседа.ID_Беседы, ID_Пользователя = Guid.Parse(UserName.ToLower()), Дата_отправки = DateTime.Now, Текст_сообщения = text }; _context.Add(сообщениеновое); Пользователь пользовательновый = _context.Пользователь.FirstOrDefault(t => t.ID == Guid.Parse(UserName)); _context.SaveChanges(); foreach (var item in участникs) { var covertantId = участникs.FirstOrDefault(t => t.ID_Пользователя != item.ID_Пользователя).ID_Пользователя; var covertant = _context.Пользователь.FirstOrDefault(t => t.ID == covertantId); try { await Clients.User(item.ID_Пользователя.ToString().ToLower()).SendAsync("MessageSend", new { user_send = сообщениеновое.ID_Пользователя, conv_id = сообщениеновое.ID_беседы, conv_name = covertant.Фамилия + " " + covertant.Имя, conv_user_id = covertant.ID, date = сообщениеновое.Дата_отправки.Hour + " " + сообщениеновое.Дата_отправки.Minute, text = сообщениеновое.Текст_сообщения, firstname = пользовательновый.Имя, secondname = пользовательновый.Фамилия }); } catch (Exception ex) { var a = 1; } } } else { Сообщения сообщение = new Сообщения { ID_беседы = Guid.Parse(id), ID_Пользователя = Guid.Parse(UserName.ToLower()), Дата_отправки = DateTime.Now, Текст_сообщения = text }; _context.Add(сообщение); Пользователь пользователь = _context.Пользователь.FirstOrDefault(t => t.ID == Guid.Parse(UserName)); var members = _context.Участник.Where(t => t.ID_беседы == Guid.Parse(id)).ToList(); Беседа беседа = _context.Беседа.Include(t => t.Участники).FirstOrDefault(t => t.ID_Беседы == Guid.Parse(id)); string conv_name = ""; _context.SaveChanges(); if (беседа.Участники.Count() == 2) { foreach (var item in members) { var covertantId = members.FirstOrDefault(t => t.ID_Пользователя != item.ID_Пользователя).ID_Пользователя; var covertant = _context.Пользователь.FirstOrDefault(t => t.ID == covertantId); if (item.ID_Пользователя.ToString().ToLower() == UserName.ToLower()) { await Clients.User(item.ID_Пользователя.ToString().ToLower()).SendAsync("MessageSend", new { flag = 1, user_send = сообщение.ID_Пользователя, conv_id = сообщение.ID_беседы, conv_name = covertant.Фамилия + " " + covertant.Имя, conv_user_id = covertant.ID, date = сообщение.Дата_отправки.ToLongDateString(), time = сообщение.Дата_отправки.Hour + ":" + сообщение.Дата_отправки.Minute, text = сообщение.Текст_сообщения, firstname = пользователь.Имя, secondname = пользователь.Фамилия }); } else { await Clients.User(item.ID_Пользователя.ToString().ToLower()).SendAsync("MessageSend", new { user_send = сообщение.ID_Пользователя, conv_id = сообщение.ID_беседы, conv_name = covertant.Фамилия + " " + covertant.Имя, conv_user_id = covertant.ID, date = сообщение.Дата_отправки.ToLongDateString(), time = сообщение.Дата_отправки.Hour + ":" + сообщение.Дата_отправки.Minute, text = сообщение.Текст_сообщения, firstname = пользователь.Имя, secondname = пользователь.Фамилия }); } } } else { conv_name = беседа.Название_беседы; foreach (var item in members) { var covertantId = members.FirstOrDefault(t => t.ID_Пользователя != item.ID_Пользователя).ID_Пользователя; var covertant = _context.Пользователь.FirstOrDefault(t => t.ID == covertantId); await Clients.User(item.ID_Пользователя.ToString().ToLower()).SendAsync("MessageSend", new { user_send = сообщение.ID_Пользователя, conv_id = сообщение.ID_беседы, conv_name = covertant.Фамилия + " " + covertant.Имя, conv_user_id = covertant.ID, date = сообщение.Дата_отправки.ToLongDateString(), time = сообщение.Дата_отправки.Hour + ":" + сообщение.Дата_отправки.Minute, text = сообщение.Текст_сообщения, firstname = пользователь.Имя, secondname = пользователь.Фамилия }); } } } }
public ActionResult addMessage() { Сообщения s = new Сообщения(); return(View(s)); }