Пример #1
0
        public static ActivityCommentMap LeaveComment(string publicationId, string commentText, string fileName)
        {
            try
            {
                ActivityCommentMap publicationCommentMap = null;
                if (CurrentUser.Instance == null || CurrentUser.Instance.ContactID == null)
                {
                    publicationCommentMap = new ActivityCommentMap()
                    {
                        ErrorMessage = "auth"
                    };
                    return(publicationCommentMap);
                }

                var dataManager = new DataManager();

                var publication = dataManager.Publication.SelectById(Guid.Parse(publicationId));

                if (publication != null && publication.AccessComment.HasValue)
                {
                    switch ((PublicationAccessComment)publication.AccessComment)
                    {
                    case PublicationAccessComment.Company:
                        publicationCommentMap = new ActivityCommentMap()
                        {
                            ErrorMessage = "access"
                        };
                        return(publicationCommentMap);

                    case PublicationAccessComment.Personal:
                        if (CurrentUser.Instance == null || CurrentUser.Instance.ContactID != publication.AuthorID)
                        {
                            publicationCommentMap = new ActivityCommentMap()
                            {
                                ErrorMessage = "access"
                            };
                            return(publicationCommentMap);
                        }
                        break;
                    }
                }

                commentText = HttpUtility.HtmlEncode(commentText);

                publicationCommentMap = dataManager.PublicationComment.Add(CurrentUser.Instance.SiteID, (Guid)CurrentUser.Instance.ContactID, Guid.Parse(publicationId), commentText, fileName);

                return(publicationCommentMap);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("ActivityRibbon LeaveComment({0}, {1})", publicationId, commentText), ex);

                return(null);
            }
        }
        /// <summary>
        /// Adds the specified site id.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="contactId">The contact id.</param>
        /// <param name="publicationId">The publication id.</param>
        /// <param name="comment">The comment.</param>
        /// <param name="fileName">Name of the file.</param>
        /// <returns></returns>
        public ActivityCommentMap Add(Guid siteId, Guid contactId, Guid publicationId, string comment, string fileName)
        {
            var publicationComment = new tbl_PublicationComment
            {
                ID               = Guid.NewGuid(),
                CreatedAt        = DateTime.Now,
                PublicationID    = publicationId,
                UserID           = contactId,
                Comment          = comment,
                isOfficialAnswer = false,
                FileName         = fileName
            };

            Add(publicationComment);

            var publicationCommentMap = new ActivityCommentMap
            {
                ID               = publicationComment.ID,
                PublicationID    = publicationComment.PublicationID,
                CreatedAt        = publicationComment.CreatedAt,
                UserFullName     = publicationComment.tbl_Contact.UserFullName,
                Comment          = publicationComment.Comment.ToHtml(),
                isOfficialAnswer = publicationComment.isOfficialAnswer,
                FormattedDate    = ((DateTime)publicationComment.CreatedAt).ToString("d MMMM в HH:mm"),
                FileName         = publicationComment.FileName
            };

            var fsp = new FileSystemProvider();

            if (!string.IsNullOrEmpty(publicationCommentMap.FileName))
            {
                publicationCommentMap.VirtualFileName = fsp.GetLink(siteId, "PublicationComments", publicationCommentMap.FileName, FileType.Attachment);
            }

            return(publicationCommentMap);
        }