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); }
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); }
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); }
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); }