Esempio n. 1
0
        public ActionResult Reply(Epm_QuestionTrack model)
        {
            string errorMsg = "";
            if (model.QuestionId <= 0)
            {
                errorMsg = "请选择要回复的问题!";
            }
            if (string.IsNullOrWhiteSpace(model.Content))
            {
                errorMsg = "请填写回复内容!";
            }

            if (!string.IsNullOrWhiteSpace(errorMsg))
            {
                return Json(new ResultView<bool>()
                {
                    Flag = false,
                    Data = false,
                    Message = errorMsg
                });
            }

            using (ClientSiteClientProxy proxy = new ClientSiteClientProxy(ProxyEx(Request)))
            {
                var result = proxy.ReplyQuestion(model);
                return Json(result.ToResultView());
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 回复问题
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public Result <bool> ReplyQuestion(Epm_QuestionTrack model)
        {
            Result <bool> result = new Result <bool>();

            try
            {
                Epm_Question question = DataOperateBusiness <Epm_Question> .Get().GetModel(model.QuestionId ?? 0);

                if (question == null)
                {
                    throw new Exception("问题不存在或已被删除!");
                }
                if (model.State == 2)
                {
                    throw new Exception("该问题已关闭,无法在进行回复操作!");
                }

                model = SetCurrentUser(model);

                DataOperateBusiness <Epm_QuestionTrack> .Get().Add(model);

                result.Data = true;
                result.Flag = EResultFlag.Success;

                WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "回复问题: " + model.Id);


                #region 处理待办
                var tempApp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == question.Id && t.IsApprover == false).FirstOrDefault();

                if (tempApp != null)
                {
                    ComplateApprover(tempApp.Id);

                    #region 生成待办
                    List <Epm_Approver> list = new List <Epm_Approver>();
                    Epm_Approver        app  = new Epm_Approver();
                    app.ApproverId       = CurrentUserID.ToLongReq();
                    app.ApproverName     = CurrentUserName;
                    app.Title            = question.CreateUserName + "发起的问题沟通,已有回复";
                    app.Content          = question.CreateUserName + "发起的问题沟通,已有回复";
                    app.SendUserId       = CurrentUserID.ToLongReq();
                    app.SendUserName     = CurrentUserName;
                    app.SendTime         = DateTime.Now;
                    app.LinkURL          = string.Empty;
                    app.BusinessTypeNo   = BusinessType.Question.ToString();
                    app.Action           = SystemRight.Reply.ToString();
                    app.BusinessTypeName = BusinessType.Question.GetText();
                    app.BusinessState    = (int)(EnumState.Normal);
                    app.BusinessId       = question.Id;
                    app.ProjectId        = question.ProjectId;
                    app.ProjectName      = question.ProjectName;
                    list.Add(app);
                    AddApproverBatch(list);
                    WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "提交问题生成待办: " + question.Id);
                    #endregion
                }
                #endregion

                #region 消息
                var waitSend = GetWaitSendMessageList(question.ProjectId.Value);
                foreach (var send in waitSend)
                {
                    Epm_Massage modelMsg = new Epm_Massage();
                    modelMsg.ReadTime     = null;
                    modelMsg.RecId        = send.Key;
                    modelMsg.RecName      = send.Value;
                    modelMsg.RecTime      = DateTime.Now;
                    modelMsg.SendId       = CurrentUserID.ToLongReq();
                    modelMsg.SendName     = CurrentUserName;
                    modelMsg.SendTime     = DateTime.Now;
                    modelMsg.Title        = question.CreateUserName + "发起了问题沟通," + CurrentUserName + "有回复";
                    modelMsg.Content      = question.CreateUserName + "发起了问题沟通," + CurrentUserName + "有回复";
                    modelMsg.Type         = 2;
                    modelMsg.IsRead       = false;
                    modelMsg.BussinessId  = model.Id;
                    modelMsg.BussinesType = BusinessType.Question.ToString();
                    modelMsg.ProjectId    = question.ProjectId.Value;
                    modelMsg.ProjectName  = question.ProjectName;
                    modelMsg = base.SetCurrentUser(modelMsg);
                    modelMsg = base.SetCreateUser(modelMsg);
                    DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg);
                }
                #endregion
            }
            catch (Exception ex)
            {
                result.Flag      = EResultFlag.Failure;
                result.Data      = false;
                result.Exception = new ExceptionEx(ex, "QuestionClose");
            }
            return(result);
        }