public JsonResult SaveMessage(DiscussionMessageInputDTO token) { string error; var saved = _discussionServices.SaveUserMessage(ref token,CurrentUserId, out error); MessageViewDTO dto = null; if (saved && token.MessageId >= 0 && token.Uid != null) { dto = _discussionServices.GetMessageDTO((Guid) token.Uid); //var newMessage = _userNotificationServices.GetNotificationToken((int)dto.MessageId); //if (newMessage != null) //{ // var hubContext = GlobalHost.ConnectionManager.GetHubContext<DiscussionNotificationHub>(); // hubContext.Clients.All.create(newMessage); //} } return Json(new JsonResponseToken { success = saved ,error = error ,result = dto }, JsonRequestBehavior.AllowGet); }
public ActionResult MessageInputPartial(int roomId, int courseId, long? parentId) { var token = new DiscussionMessageInputDTO { RoomId = roomId ,CourseId = courseId ,ParentMessageId = parentId }; return PartialView("Discussion/_MessageInputForm", token); }
public static DSC_Messages Dto2MessageEntity(this DiscussionMessageInputDTO dto, int userId) { return(new DSC_Messages { ClassRoomId = dto.RoomId , Uid = Guid.NewGuid() , ParentMessageId = dto.ParentMessageId , CourseId = dto.CourseId , MessageKindId = (short)dto.Kind , Text = dto.UserMessage , HtmlVersion = dto.HTMLVersion , AddOn = DateTime.Now , CreatedBy = userId }); }
public bool SaveUserMessage(ref DiscussionMessageInputDTO token, int userId, out string error) { try { //var oid = FbServices.GetCourseFbObjectId(token.CourseId); token.HTMLVersion = CURRENT_MSG_HTML_VERSION; var entity = token.Dto2MessageEntity(userId); DiscussionMessageRepository.Add(entity); DiscussionMessageRepository.UnitOfWork.CommitAndRefreshChanges(); var messageId = entity.MessageId; var names = String.IsNullOrEmpty(token.NamesArrayStr) ? new string[0] : JsSerializer.Deserialize <string[]>(token.NamesArrayStr); var tags = String.IsNullOrEmpty(token.TagsArrayStr) ? new string[0] : JsSerializer.Deserialize <string[]>(token.TagsArrayStr); if (tags.Length > 0) { if (!SaveHashtags(tags, userId, out error)) { return(false); } if (!SaveMessageHashtags(tags, messageId, out error)) { return(false); } } if (names.Length > 0) { if (!SaveMessageUsers(names, messageId, out error)) { return(false); } } if (!SaveMessageHtml(messageId, FEED_LINK_V2, out error)) { return(false); } if (!SaveRoomFollower(userId, token.RoomId, out error)) { return(false); } SaveMessageNotifications(messageId, userId, out error); //token.RoomId, if (token.ParentMessageId != null) { SaveReplayMessageNotifications(messageId, (long)token.ParentMessageId, out error); } SaveMessageEmails(messageId); //UnitOfWork.CommitAndRefreshChanges(); SaveFbPostMessages(messageId, token.CourseId, userId); token.MessageId = messageId; token.Uid = entity.Uid; return(true); } catch (Exception ex) { error = Utils.FormatError(ex); Logger.Error("save user message", token.RoomId, ex, CommonEnums.LoggerObjectTypes.Discussion); return(false); } }