Esempio n. 1
0
        public IActionResult CreateMessage(MessageCreateViewModel data)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            var currentUserId = this.userManager.GetUserId(this.User);
            var message       = this.chatService.AddMessage(data.Message, currentUserId, false);

//            var translatedMessage = this.translator.Translate(data.Message, LanguageCodes.English);

//            var mood = this.emotionGetter.GetEmotionFromText(translatedMessage.TranslatedText);
            var mood = this.emotionGetter.GetEmotionFromText(data.Message);

            this.moodService.Add(currentUserId, mood);

            var moodMessage       = $"I predict mood: {mood}.";
            var thinkMessage      = "I think";
            var feelBetterMessage = "will make you feel better";

//            if (translatedMessage.DetectedSourceLanguage != LanguageCodes.English)
//            {
//                moodMessage = this.translator.Translate(moodMessage, translatedMessage.DetectedSourceLanguage).TranslatedText;
//                thinkMessage = this.translator.Translate(thinkMessage, translatedMessage.DetectedSourceLanguage).TranslatedText;
//                feelBetterMessage = this.translator.Translate(feelBetterMessage, translatedMessage.DetectedSourceLanguage).TranslatedText;
//            }

            if (this.IsMoodNegative(mood))
            {
                var recommendation = this.recommender.Recommend(currentUserId);


                moodMessage += Environment.NewLine;
                moodMessage += $"{thinkMessage} '{recommendation.Content}' {feelBetterMessage}!";
                moodMessage += Environment.NewLine;



                var response = this.chatService.AddMessage(moodMessage, currentUserId, true);

                return(this.Json(new
                {
                    myMessage = this.mapper.Map <MessageListViewModel>(message),
                    response = this.mapper.Map <MessageListViewModel>(response),
                    hasRecommendation = true,
                    recommendationId = recommendation.Id
                }));
            }

            var responseMessage = this.chatService.AddMessage(moodMessage, currentUserId, true);


            return(this.Json(new
            {
                myMessage = this.mapper.Map <MessageListViewModel>(message),
                response = this.mapper.Map <MessageListViewModel>(responseMessage),
                hasRecommendation = false
            }));
        }
Esempio n. 2
0
        public IActionResult New(MessageCreateViewModel model)
        {
            if (!TempData.ContainsKey(ApplicationConstants.TempDataMessageRecepientIdKey) ||
                !TempData.ContainsKey(ApplicationConstants.TempDataMessageRecepienUserNameKey))
            {
                return(this.NotFound());
            }

            var recepientId = TempData[ApplicationConstants.TempDataMessageRecepientIdKey].ToString();

            if (!this.users.Exists(recepientId))
            {
                return(this.NotFound());
            }

            this.TempData.Keep(ApplicationConstants.TempDataMessageRecepientIdKey);
            this.TempData.Keep(ApplicationConstants.TempDataMessageRecepienUserNameKey);

            if (!ModelState.IsValid)
            {
                return(this.View(model));
            }

            var senderId = this.userManager.GetUserId(this.User);

            this.messages.Create(senderId, recepientId, model.Subject, model.Text);

            TempData[ApplicationConstants.TempDataSuccessMessageKey] =
                $"Message Sent To {TempData[ApplicationConstants.TempDataMessageRecepienUserNameKey]}!";

            return(RedirectToAction("Sent", "Messages", new { area = "" }));
        }
Esempio n. 3
0
        public IActionResult Create(MessageCreateViewModel messageCreateViewModel)
        {
            messageService.Create(messageCreateViewModel.TopicId, messageCreateViewModel.AuthorId, messageCreateViewModel.Text);

            hubContext.Clients.All.SendAsync("UpdateTopic");

            return(RedirectToAction("Details", "Topic", new { id = messageCreateViewModel.TopicId }));
        }
        public IActionResult Create(MessageCreateViewModel model)
        {
            bool success = false;

            using (MSMQManager msmq = new MSMQManager(configuration))
            {
                success = msmq.SendMessage(model.Description);
            }
            return(Json(success));
        }
Esempio n. 5
0
        // GET: MessageBoards/Create
        public ActionResult Create(string id)
        {
            var userId  = User.Identity.GetUserId();
            var linker  = db.ProfileLinkers.First(pl => (pl.LinkedProfile == userId && pl.UserLinkedId == id) || (pl.LinkedProfile == id && pl.UserLinkedId == userId));
            var message = new MessageCreateViewModel()
            {
                RecieverID = id,
                LinkerId   = linker.ID
            };

            return(PartialView(message));
        }
Esempio n. 6
0
 public ActionResult Create(MessageCreateViewModel newMessageView, string id)
 {
     try
     {
         newMessageView.SenderUser = User.Identity.GetUserId();
         SaveMessage(newMessageView);
         return(RedirectToAction("MessageList", "Home"));
     }
     catch
     {
         return(View());
     }
 }
Esempio n. 7
0
        // GET: Message/Create
        public ActionResult Create(string id)
        {
            var messageCreateView = new MessageCreateViewModel();

            messageCreateView.ReceiverView = GetProfile(id);
            var userId = User.Identity.GetUserId();
            List <TalklessData.Entities.Message> messages = TalklessData.Core.Service.GetMessages(userId);

            messages = messages.Where(messagElement => messagElement.CreateTime.Date == DateTime.Today).ToList();
            messageCreateView.sendedMessages = messages.Where(messageElement => messageElement.SenderUser.Equals(userId)).Count();

            return(View(messageCreateView));
        }
Esempio n. 8
0
        public async Task <IActionResult> SendMessage([FromBody] MessageCreateViewModel messageModel, [FromServices] IHubContext <ChatHub> chat)
        {
            var mapper     = new MapperConfiguration(cfg => cfg.CreateMap <MessageCreateViewModel, MessageCreateDto>()).CreateMapper();
            var messageDto = mapper.Map <MessageCreateViewModel, MessageCreateDto>(messageModel);

            var message = await _chatService.CreateMessage(messageDto);

            await chat.Clients.Group(messageModel.ChatId.ToString()).SendAsync("ReceiveMessage", new
            {
                Text       = message.Text,
                PosterName = message.PosterName,
                Timestamp  = message.Timestamp,
                PosterId   = message.PosterId
            });

            return(Ok(message));
        }
Esempio n. 9
0
        public IActionResult CreateMessage(MessageCreateViewModel data)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            var currentUserId = this.userManager.GetUserId(this.User);
            var message       = this.chatService.AddMessage(data.Message, currentUserId, false);

            var mood        = this.emotionGetter.GetEmotionFromText(data.Message);
            var moodMessage = $"I think you are feeling {GetMoodAdjective(mood)}";

            if (this.IsMoodNegative(mood))
            {
                var recommendation = this.recommender.Recommend(currentUserId);


                moodMessage += Environment.NewLine;
                moodMessage += $"I think '{recommendation.Content}' will make you feel better!";
                moodMessage += Environment.NewLine;

                var response = this.chatService.AddMessage(moodMessage, currentUserId, true);

                return(this.Json(new
                {
                    myMessage = this.mapper.Map <MessageListViewModel>(message),
                    response = this.mapper.Map <MessageListViewModel>(response),
                    hasRecommendation = true,
                    recommendationId = recommendation.Id
                }));
            }

            var responseMessage = this.chatService.AddMessage(moodMessage, currentUserId, true);

            this.moodService.Add(currentUserId, mood);


            return(this.Json(new
            {
                myMessage = this.mapper.Map <MessageListViewModel>(message),
                response = this.mapper.Map <MessageListViewModel>(responseMessage),
                hasRecommendation = false
            }));
        }
Esempio n. 10
0
        public async Task <ActionResult> Create(MessageCreateViewModel messageVM)
        {
            if (ModelState.IsValid)
            {
                var message = new SingleMessage {
                    id = db.SingleMessages.Count(), MessageText = messageVM.MessageText, TimeOfMessage = DateTime.Now
                };

                var userId       = User.Identity.GetUserId();
                var messageBoard = new MessageBoard {
                    MessageID = db.MessageBoards.Count(), SingleMessage = message, RecieverID = messageVM.RecieverID, SenderID = userId, ProfileLinkerID = messageVM.LinkerId
                };
                db.MessageBoards.Add(messageBoard);
                await db.SaveChangesAsync();

                return(RedirectToAction("MessagesForUser", "MessageBoards", new { id = messageVM.RecieverID }));
            }
            return(View());
        }
Esempio n. 11
0
        public async Task <IActionResult> Create(MessageCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = null;
                //获取当前用户的用户名
                ClaimsPrincipal currentUser     = this.User;
                ApplicationUser applicationUser = await
                                                  _userManager.FindByNameAsync(currentUser.Identity.Name);

                //var currentUser = _userManager.GetUserAsync(HttpContext.User);
                Message newMessage = new Message();
                {
                    //ApplicationUser applicationUser = new ApplicationUser();
                    //applicationUser.UserName = currentUser.Identity.Name;
                }
                newMessage.ApplicationUserId = applicationUser.Id;
                newMessage.Title             = model.Title;
                newMessage.PublishTime       = DateTime.Now;
                _messageRepository.Insert(newMessage);
                foreach (var item in model.Photos)
                {
                    Photo photo = new Photo
                    {
                        MessageId = newMessage.Id,
                    };
                    string uploadsFolder = Path.Combine(_webHostEnvironment.WebRootPath, "images", "Users");
                    uniqueFileName = Guid.NewGuid().ToString() + "_" + item.FileName;
                    string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                    item.CopyTo(new FileStream(filePath, FileMode.Create));
                    photo.PhotoPath = uniqueFileName;
                    _photoRepository.Insert(photo);
                    newMessage.Photos.Add(photo);
                }
                _messageRepository.Update(newMessage);
                applicationUser.Messages.Add(newMessage);
                await _userManager.UpdateAsync(applicationUser);

                return(RedirectToAction("Single", new { Id = newMessage.Id }));
            }
            return(View());
        }
        public async Task<ActionResult> Create(MessageCreateViewModel message)
        {
            if (!ModelState.IsValid)
            {
                return View(message);
            }

            var receiver = userServices.GetByEmail(message.ReceiverEmail);
            var sender = User.Identity.GetUserId();

            if (receiver.Id == sender)
            {
                ModelState.AddModelError("ReceiverEmail", "You cannot send e-mail to yourself!");
                return View(message);
            }

            var newMessage = await messageServices.Create(sender, receiver.Id, message.Title, message.Content, message.Flag, message.Notes);

            return RedirectToAction("Index", "Message", new { status = lastStatus });
        }
        public ActionResult Send(MessageCreateViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var userToSend = this.UserService.GetById(model.Receiver);
                var messageDb  = new Message()
                {
                    From    = this.UserProfile,
                    To      = userToSend,
                    Subject = model.Subject,
                    Text    = model.Text,
                    Date    = DateTime.Now
                };

                this.messageService.Add(messageDb);
                this.AddToastMessage(string.Empty, NotificationMessages.MessageSent, ToastType.Success);

                return(this.RedirectToAction("Inbox"));
            }

            return(this.View(model));
        }
Esempio n. 14
0
 private void SaveMessage(MessageCreateViewModel newMessage)
 {
     TalklessData.Core.Service.CreateMessage(newMessage.SenderUser, newMessage.ReceiverUser, newMessage.MessageText);
 }
 public void SendMessage(MessageCreateViewModel model)
 {
 }
        public ActionResult Send(MessageCreateViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var userToSend = this.UserService.GetById(model.Receiver);
                var messageDb = new Message()
                                    {
                                        From = this.UserProfile, 
                                        To = userToSend, 
                                        Subject = model.Subject, 
                                        Text = model.Text, 
                                        Date = DateTime.Now
                                    };

                this.messageService.Add(messageDb);
                this.AddToastMessage(string.Empty, NotificationMessages.MessageSent, ToastType.Success);

                return this.RedirectToAction("Inbox");
            }

            return this.View(model);
        }