Ejemplo n.º 1
0
        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);

        }
Ejemplo n.º 2
0
        public ActionResult MessageInputPartial(int roomId, int courseId, long? parentId)
        {
            var token = new DiscussionMessageInputDTO
            {
                RoomId           = roomId
                ,CourseId        = courseId
                ,ParentMessageId = parentId
            };

            return PartialView("Discussion/_MessageInputForm", token);
        }
Ejemplo n.º 3
0
 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
     });
 }
Ejemplo n.º 4
0
        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);
            }
        }