/// <summary>
        /// Gets the shared discussions with latest posts.
        /// </summary>
        /// <returns></returns>
        public List <DiscussionViewModel> GetSharedDiscussionsWithLatestPosts()
        {
            List <DiscussionViewModel> models = new List <DiscussionViewModel>();

            try
            {
                //Get shared discussions
                List <Discussion> discussionList = DiscussionManager.GetSharedDiscussionsWithLatestPosts();

                if (discussionList.Count > 0)
                {
                    foreach (Discussion obj in discussionList)
                    {
                        if (obj.LatestPostId != null)
                        {
                            obj.LatestPost = PostManager.GetTopicById((int)obj.LatestPostId);
                        }
                    }
                }
                models = ObjectMapper.Map <Model.Entities.Discussion, DiscussionViewModel>(discussionList);
                return(models);
            }
            catch (Exception ex)
            {
                ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing);
            }
            return(models);
        }
Exemple #2
0
        private DataCacheInternal createCacheInternal(
            InternalCacheUpdater cacheUpdater,
            string hostname,
            IHostProperties hostProperties,
            User user,
            SearchQueryCollection queryCollection,
            IModificationNotifier modificationNotifier,
            INetworkOperationStatusListener networkOperationStatusListener,
            bool isApprovalStatusSupported)
        {
            MergeRequestManager mergeRequestManager = new MergeRequestManager(
                _cacheContext, cacheUpdater, hostname, hostProperties, queryCollection, networkOperationStatusListener,
                isApprovalStatusSupported);
            DiscussionManager discussionManager = new DiscussionManager(
                _cacheContext, hostname, hostProperties, user, mergeRequestManager,
                modificationNotifier, networkOperationStatusListener);
            TimeTrackingManager timeTrackingManager = new TimeTrackingManager(
                hostname, hostProperties, user, discussionManager, modificationNotifier, networkOperationStatusListener);

            ProjectCache projectCache = null;

            if (_cacheContext.SupportProjectCache)
            {
                IProjectListLoader loader = new ProjectListLoader(hostname, _operator);
                projectCache = new ProjectCache(loader, _cacheContext, hostname);
            }
            UserCache userCache = null;

            if (_cacheContext.SupportUserCache)
            {
                IUserListLoader userListLoader = new UserListLoader(hostname, _operator);
                userCache = new UserCache(userListLoader, _cacheContext, hostname);
            }
            return(new DataCacheInternal(mergeRequestManager, discussionManager, timeTrackingManager, projectCache, userCache));
        }
Exemple #3
0
 protected void Button1_Click(object sender, EventArgs e)
 {
     if (Session["user_name"] != null)
     {
         try
         {
             discussion dis = new discussion();
             dis.user_id   = int.Parse(Session["user_id"].ToString());
             dis.dis_cont  = myEditor.InnerText;
             dis.dis_title = title.Text.Trim();
             dis.pub_time  = DateTime.Now;
             int result = DiscussionManager.InsertDiscussion(dis);
             if (result >= 1)
             {
                 Page.ClientScript.RegisterStartupScript(this.GetType(), "true", "<script>alert('讨论贴发表成功!');</script>");
             }
         }
         catch
         {
             Page.ClientScript.RegisterStartupScript(this.GetType(), "true", "<script>alert('发布失败!请仔细检查');</script>");
         }
     }
     else
     {
         Page.ClientScript.RegisterStartupScript(this.GetType(), "true", "<script>alert('请登录之后再发帖!'); </script>");
         Response.Redirect("login1.aspx");
     }
 }
        private void UpdateLatestPostForDiscussion(int topicId, int latestTopicPostId)
        {
            Topic      topic      = TopicManager.FindBy(topicId);
            Discussion discussion = DiscussionManager.FindBy(topic.DiscussionId);

            discussion.LatestPostId = latestTopicPostId;
            DiscussionManager.Update(discussion);
        }
Exemple #5
0
        public void BindUsers()
        {
            DataTable dt = DiscussionManager.SelectPubNum();

            if (dt != null && dt.Rows.Count > 0)
            {
                ReUsers.DataSource = dt;
                ReUsers.DataBind();
            }
        }
 public DiscussController(
     IDataRepository <User> _UserManager,
     IDataRepository <Discussion> _DiscussionManager,
     IDataRepository <DiscussionUser> _DiscussionUserManager,
     IDataRepository <DiscussionUserMessage> _DiscussionUserMessageManager)
 {
     this._UserManager                  = (UserManager)_UserManager;
     this._DiscussionManager            = (DiscussionManager)_DiscussionManager;
     this._DiscussionUserManager        = (DiscussionUserManager)_DiscussionUserManager;
     this._DiscussionUserMessageManager = (DiscussionUserMessageManager)_DiscussionUserMessageManager;
 }
Exemple #7
0
 public ChatHub(
     IDataRepository <User> _UserManager,
     IDataRepository <Discussion> _DiscussionManager,
     IDataRepository <DiscussionUser> _DiscussionUserManager,
     IDataRepository <DiscussionUserMessage> _DiscussionUserMessageManager)
 {
     this._UserManager                  = (UserManager)_UserManager;
     this._DiscussionManager            = (DiscussionManager)_DiscussionManager;
     this._DiscussionUserManager        = (DiscussionUserManager)_DiscussionUserManager;
     this._DiscussionUserMessageManager = (DiscussionUserMessageManager)_DiscussionUserMessageManager;
 }
Exemple #8
0
        public void BindDiscussion()
        {
            //int discussion = int.Parse(Request.QueryString["id"]);
            DataTable dt = DiscussionManager.SelectAll();

            if (dt != null && dt.Rows.Count > 0)
            {
                LVDiscussion.DataSource = dt;
                LVDiscussion.DataBind();
            }
        }
        public void BindDiscussion()
        {
            int       id = Convert.ToInt32(Request.QueryString["id"]);
            DataTable dt = DiscussionManager.SelectDiscussion(id);

            if (dt != null && dt.Rows.Count > 0)
            {
                LVdis_de.DataSource = dt;
                LVdis_de.DataBind();
            }
        }
Exemple #10
0
        private static void submitDiscussion(Snapshot snapshot, DiffToolInfo diffToolInfo, DiffPosition position,
                                             string body, bool includeContext)
        {
            if (body.Length == 0)
            {
                MessageBox.Show("Discussion text cannot be empty", "Warning",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            NewDiscussionParameters parameters = new NewDiscussionParameters
            {
                Body     = body,
                Position = includeContext ? createPositionParameters(position) : new Nullable <PositionParameters>()
            };

            MergeRequestDescriptor mergeRequestDescriptor = new MergeRequestDescriptor
            {
                HostName    = snapshot.Host,
                ProjectName = snapshot.Project,
                IId         = snapshot.MergeRequestIId
            };

            UserDefinedSettings settings = new UserDefinedSettings(false);
            DiscussionManager   manager  = new DiscussionManager(settings);
            DiscussionCreator   creator  = manager.GetDiscussionCreator(mergeRequestDescriptor);

            try
            {
                creator.CreateDiscussionAsync(parameters).Wait();
            }
            catch (DiscussionCreatorException ex)
            {
                Trace.TraceInformation(
                    "Additional information about exception:\n" +
                    "Position: {0}\n" +
                    "Include context: {1}\n" +
                    "Snapshot refs: {2}\n" +
                    "DiffToolInfo: {3}\n" +
                    "Body:\n{4}",
                    position.ToString(),
                    includeContext.ToString(),
                    snapshot.Refs.ToString(),
                    diffToolInfo.ToString(),
                    body);

                if (!ex.Handled)
                {
                    throw;
                }
            }
        }
Exemple #11
0
        /// <summary>
        /// Throws:
        /// ArgumentException
        /// </summary>
        internal DiscussionsForm(MergeRequestDescriptor mrd, string mrTitle, User mergeRequestAuthor,
                                 IGitRepository gitRepository, int diffContextDepth, ColorScheme colorScheme, List <Discussion> discussions,
                                 DiscussionManager manager, User currentUser, Func <MergeRequestDescriptor, Task> updateGitRepository)
        {
            _mergeRequestDescriptor = mrd;
            _mergeRequestTitle      = mrTitle;
            _mergeRequestAuthor     = mergeRequestAuthor;

            _gitRepository    = gitRepository;
            _diffContextDepth = diffContextDepth;

            _colorScheme = colorScheme;

            _manager             = manager;
            _updateGitRepository = updateGitRepository;

            _currentUser = currentUser;
            if (_currentUser.Id == 0)
            {
                throw new ArgumentException("Bad user Id");
            }

            InitializeComponent();

            DiscussionFilterState state = new DiscussionFilterState
            {
                ByCurrentUserOnly = false,
                ByAnswers         = FilterByAnswers.Answered | FilterByAnswers.Unanswered,
                ByResolution      = FilterByResolution.Resolved | FilterByResolution.NotResolved
            };

            DisplayFilter = new DiscussionFilter(_currentUser, _mergeRequestAuthor, state);
            SystemFilter  = new DiscussionFilter(_currentUser, _mergeRequestAuthor, state);

            FilterPanel = new DiscussionFilterPanel(DisplayFilter.Filter,
                                                    () =>
            {
                DisplayFilter.Filter = FilterPanel.Filter;
                updateLayout(null);
            });
            ActionsPanel = new DiscussionActionsPanel(async() => await onRefresh());

            Controls.Add(FilterPanel);
            Controls.Add(ActionsPanel);

            if (!renderDiscussions(discussions))
            {
                throw new NoDiscussionsToShow();
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="discussionViewModel"></param>
        /// <returns></returns>
        public DiscussionViewModel CreateDiscussion(DiscussionViewModel discussionViewModel)
        {
            DiscussionViewModel model = new DiscussionViewModel();

            try
            {
                Discussion discussion = ObjectMapper.Map <DiscussionViewModel, Discussion>(discussionViewModel);
                discussion = DiscussionManager.Add(discussion);
                model      = ObjectMapper.Map <Discussion, DiscussionViewModel>(discussion);
            }
            catch (Exception ex)
            {
                ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing);
            }
            return(model);
        }
Exemple #13
0
        private DataCacheInternal createCacheInternal(
            InternalCacheUpdater cacheUpdater,
            string hostname,
            IHostProperties hostProperties,
            User user,
            DataCacheConnectionContext context)
        {
            MergeRequestManager mergeRequestManager = new MergeRequestManager(
                _dataCacheContext, cacheUpdater, hostname, hostProperties, context, _modificationNotifier);
            DiscussionManager discussionManager = new DiscussionManager(
                _dataCacheContext, hostname, hostProperties, user, mergeRequestManager, context, _modificationNotifier);
            TimeTrackingManager timeTrackingManager = new TimeTrackingManager(
                hostname, hostProperties, user, discussionManager, _modificationNotifier);

            IProjectListLoader loader = ProjectListLoaderFactory.CreateProjectListLoader(
                hostname, _operator, context, cacheUpdater);
            ProjectCache projectCache = new ProjectCache(cacheUpdater, loader, _dataCacheContext);

            return(new DataCacheInternal(mergeRequestManager, discussionManager, timeTrackingManager, projectCache));
        }