Beispiel #1
0
        public ApiResultObject <List <Post> > Reject(PcsPostSDO data)
        {
            ApiResultObject <List <Post> > result = new ApiResultObject <List <Post> >(null);

            try
            {
                bool valid = true;
                valid = valid && IsNotNull(param);
                valid = valid && IsNotNull(data);
                List <Post> resultData = null;
                if (valid)
                {
                    new PcsPostReject(param).Run(data, ref resultData);
                }
                result = this.PackResult(resultData);
                this.FailLog(result.Success, data, result.Data);
            }
            catch (Exception ex)
            {
                LogSystem.Error(ex);
                param.HasException = true;
            }

            return(result);
        }
Beispiel #2
0
        internal bool ValidNote(PcsPostSDO data)
        {
            bool valid = true;

            try
            {
                if (IsNotNullOrEmpty(data.Posts))
                {
                    valid = valid && (!data.Posts.Exists(e => String.IsNullOrWhiteSpace(e.ApprovalNote)) && String.IsNullOrWhiteSpace(data.Note));
                }
                else
                {
                    valid = valid && String.IsNullOrWhiteSpace(data.Note);
                }
                if (!valid)
                {
                    MessageUtil.SetMessage(param, LibraryMessage.Message.Enum.PcsPost__ThieuThongTinLyDoTuChoiDuyet);
                }
            }
            catch (Exception ex)
            {
                LogSystem.Error(ex);
                valid = true;
            }
            return(valid);
        }
Beispiel #3
0
        internal bool Run(PcsPostSDO data, ref List <Post> resultData)
        {
            bool result = false;

            try
            {
                bool               valid           = true;
                Project            project         = null;
                List <Post>        listRaw         = null;
                string             loginname       = DungLH.Util.Token.Backend.BackendTokenManager.GetLoginname();
                string             username        = DungLH.Util.Token.Backend.BackendTokenManager.GetUsername();
                PcsPostRejectCheck checker         = new PcsPostRejectCheck(param);
                PcsProjectCheck    projectChecker  = new PcsProjectCheck(param);
                PcsEmployeeCheck   employeeChecker = new PcsEmployeeCheck(param);
                valid = valid && IsNotNull(data);
                valid = valid && IsGreaterThanZero(data.ProjectId);
                valid = valid && projectChecker.VerifyId(data.ProjectId, ref project);
                valid = valid && checker.ValidData(data, ref listRaw);
                valid = valid && projectChecker.IsUnFinish(project);
                valid = valid && checker.AllowReject(listRaw);
                valid = valid && checker.ValidNote(data);
                valid = valid && employeeChecker.CheckRoleApproveOrReject(loginname);
                if (valid)
                {
                    Mapper.CreateMap <Post, Post>();
                    List <Post> befores     = Mapper.Map <List <Post> >(listRaw);
                    long        approveTime = Convert.ToInt64(DateTime.Now.ToString("yyyyMMddHHmmss"));
                    foreach (Post raw in listRaw)
                    {
                        Post p = data.Posts != null?data.Posts.FirstOrDefault(o => o.Id == raw.Id) : null;

                        raw.PostSttId         = PostSttConstant.POST_STT_ID__REJECT;
                        raw.ApprovalLoginname = loginname;
                        raw.ApprovalTime      = approveTime;
                        raw.ApprovalUsername  = username;
                        raw.ApprovalNote      = (p == null || String.IsNullOrWhiteSpace(p.ApprovalNote)) ? data.Note : p.ApprovalNote;
                    }

                    if (!this.pcsPostUpdate.UpdateList(listRaw, befores))
                    {
                        throw new Exception("pcsPostUpdate. Ket thuc nghiep vu. Rollback du lieu");
                    }
                    result     = true;
                    resultData = listRaw;
                }
            }
            catch (Exception ex)
            {
                LogSystem.Error(ex);
                param.HasException = true;
                this.Rollback();
                result     = false;
                resultData = null;
            }
            return(result);
        }
Beispiel #4
0
        internal bool ValidData(PcsPostSDO data, ref List <Post> listPost)
        {
            bool valid = true;

            try
            {
                List <Post> posts = new List <Post>();
                if (IsNotNullOrEmpty(data.Posts))
                {
                    valid = valid && new PcsPostCheck(param).VerifyIds(data.Posts.Select(s => s.Id).ToList(), posts);
                    if (valid)
                    {
                        if (!IsNotNullOrEmpty(posts))
                        {
                            BugUtil.SetBugCode(param, LibraryBug.Bug.Enum.Common__DuLieuDauVaoKhongChinhXac);
                            throw new Exception("PostIds invalid");
                        }

                        if (posts.Exists(e => e.ProjectId != data.ProjectId))
                        {
                            MessageUtil.SetMessage(param, LibraryMessage.Message.Enum.PcsPost__TonTaiBaiDangKhongThuocDuAn);
                            throw new Exception("Ton tai bai dang khong thuoc du an");
                        }
                    }
                    else
                    {
                        return(valid);
                    }
                }
                else
                {
                    PcsPostFilterQuery filterQuery = new PcsPostFilterQuery();
                    filterQuery.ProjectId = data.ProjectId;
                    filterQuery.PostSttId = PostSttConstant.POST_STT_ID__NOT_APPROVAL;
                    posts = new PcsPostManagerGet().Get(filterQuery);
                    if (!IsNotNullOrEmpty(posts))
                    {
                        MessageUtil.SetMessage(param, LibraryMessage.Message.Enum.PcsPost__DuAnKhongCoBaiDangNaoHopLe);
                        throw new Exception("Project Khong co bai dang nao hop le");
                    }
                }
                listPost = posts;
            }
            catch (Exception ex)
            {
                LogSystem.Error(ex);
                valid = false;
                param.HasException = true;
            }
            return(valid);
        }