public async Task <ChatDto> CreateGroupAsync(NewChatModel newChat) { var chat = new Chat { Name = newChat.Name, Type = ChatType.Group }; await _unitOfWork.Chats.CreateAsync(chat); var principal = _contextAccessor.HttpContext.User; var ownerUser = await _userManager.GetUserAsync(principal); var ownerParticipant = new UserChat() { ChatId = chat.Id, UserId = ownerUser.Id, IsAdmin = true }; chat.Participants.Add(ownerParticipant); ownerUser.Chats.Add(ownerParticipant); foreach (var participantId in newChat.ParticipantIds) { var validator = new ValidateGuidAttribute(); if (!validator.IsValid(participantId)) { throw new ItemNotFoundException("Specified Id is not a valid GUID"); } var user = await _userManager.FindByIdAsync(participantId); if (user == null) { throw new ItemNotFoundException("User with specified Id was not found"); } var chatParticipant = new UserChat() { ChatId = chat.Id, UserId = new Guid(participantId), }; chat.Participants.Add(chatParticipant); user.Chats.Add(chatParticipant); } try { await _unitOfWork.SaveChangesAsync(); } catch (InvalidOperationException ex) when(ex.Message.Contains("already being tracked")) { throw new DuplicateChatParticipantException("Participant is already in this chat"); } return(chat.ToDto()); }
public void InsertNewMessage(NewChatModel chatModel) { var request = new RestRequest(CahtUrl, Method.POST); request.AddHeader("token", "aiteam2018"); request.AddParameter("application/json; charset=utf-8", JsonConvert.SerializeObject(chatModel), ParameterType.RequestBody); var asyncHandle = Client.ExecuteAsync <bool>(request, response => { NotifyObserver(response.Data); }); }
private void SendMessageFromRobot(int chatId, int senderId, string message) { NewChatModel newChat = new NewChatModel(); newChat.ChatId = chatId; newChat.ChatMessageText = message; newChat.UserIdReciver = Program.UserId; newChat.UserIdSender = senderId; newChat.UserIdStarter = senderId; RobotMessageUploader chatUploader = new RobotMessageUploader(); chatUploader.Attach(this); chatUploader.InsertNewMessage(newChat); }
private void SendNewMessage(int userIdReceiver, int chatId) { NewChatModel newChat = new NewChatModel(); newChat.ChatId = chatId; newChat.ChatMessageText = textBoxMessage.Text; newChat.UserIdReciver = userIdReceiver; newChat.UserIdSender = Program.UserId; newChat.UserIdStarter = userIdReceiver; ChatUploader chatUploader = new ChatUploader(); chatUploader.Attach(this); chatUploader.InsertNewMessage(newChat); labelWating.Visible = true; }
public async Task <IActionResult> CreateGroupChat([FromBody][Required] NewChatModel newChat) { try { var chat = await _chatsService.CreateGroupAsync(newChat); return(CreatedAtAction(nameof(GetChatById), new { chatId = chat.Id }, chat)); } catch (DuplicateChatParticipantException) { return(BadRequest(new ApiError("Participant list contains duplicates", HttpStatusCode.BadRequest))); } catch (ItemNotFoundException) { return(BadRequest(new ApiError("Participant list contains invalid user Id", HttpStatusCode.BadRequest))); } }
public ActionResult Create(NewChatModel newChatModel) { IEnumerable <Contact> contacts = contactRepository.GetAllContacts(((Account)Session["loggedin_account"]).Id); ViewBag.Contacts = contacts; if (ModelState.IsValid) { Chat chat = new Chat(); chat.ChatName = newChatModel.ChatName; chat.ChatDesc = newChatModel.ChatDesc; chat.Participants.Add(chatRepository.GetAccountById(newChatModel.participant)); chat.Participants.Add(chatRepository.GetAccountById(((Account)Session["loggedin_account"]).Id)); chatRepository.CreateChat(chat); return(RedirectToAction("Index")); } return(View(newChatModel)); }
public IHttpActionResult New(NewChatModel model) { Chats.Add(new ChatModel { ChatId = Random.Next(1000000, 9999999), BotId = model.BotId, BotUsername = BotsController.Bots.Single(x => x.User.Id == model.BotId).User.Username, Sender = new User { Id = Random.Next(1000000, 9999999), IsBot = false, FirstName = model.FirstName, LastName = model.LastName, Username = model.Username } }); return(Ok()); }
private void InsertNewChat(int userIdReceiver) { NewChatModel newChat = new NewChatModel(); newChat.ChatId = 0; string messageText = "سلام، وقت بخیر... بنده مشاور شغلی شما هستم. بیایید درمورد شغل آینده شما صحبت کنیم لطفا به سوالاتی که میپرسم با دقت پاسخ دهید.."; //string messageText = Questions[0].QuestionTitle; newChat.ChatMessageText = messageText; newChat.UserIdReciver = userIdReceiver; newChat.UserIdSender = Program.UserId; newChat.UserIdStarter = Program.UserId; ChatUploader chatUploader = new ChatUploader(); chatUploader.Attach(this); chatUploader.InsertNewMessage(newChat); labelWating.Visible = true; IsFirstMessage = true; }
private void SendNewMessage(int userIdReceiver, int chatId) { NewChatModel newChat = new NewChatModel(); newChat.ChatId = chatId; string messageText = Questions[listBoxQuestions.SelectedIndex].QuestionTitle; newChat.ChatMessageText = messageText; newChat.UserIdReciver = userIdReceiver; newChat.UserIdSender = Program.UserId; newChat.UserIdStarter = Program.UserId; CurrentRecipentUserId = userIdReceiver; ChatUploader chatUploader = new ChatUploader(); chatUploader.Attach(this); chatUploader.InsertNewMessage(newChat); labelWating.Visible = true; IsFirstMessage = false; }