public IHttpActionResult Get(string projectId, Guid?Id = null) { var project = ProjectInfo.Get(projectId, FlowCode.TempClosure_ClosurePackage); var tempClosure = TempClosureInfo.FirstOrDefault(tc => tc.ProjectId == projectId); var isActor = ProjectUsers.IsRole(projectId, ClientCookie.UserCode, ProjectUserRoleCode.AssetActor); TempClosurePackage entity; if (Id != null) { entity = TempClosurePackage.Get(Id.Value); } else { entity = TempClosurePackage.Get(projectId); } if (entity != null) { entity.IsProjectFreezed = entity.CheckIfFreezeProject(projectId); var SavedComment = ProjectComment.GetSavedComment(entity.Id, "TempClosurePackage", ClientCookie.UserCode); var hasValidTask = TaskWork.Any(t => t.RefID == projectId && t.Status == TaskWorkStatus.UnFinish && t.ReceiverAccount != ClientCookie.UserCode); return(Ok(new { Info = tempClosure, ClosurePackage = entity, Approver = ApproveDialogUser.GetApproveDialogUser(projectId, FlowCode.TempClosure_ClosurePackage), ProjectComment = SavedComment != null ? SavedComment.Content : "", Editable = ProjectInfo.IsFlowEditable(projectId, FlowCode.TempClosure_ClosurePackage), Recallable = ProjectInfo.IsFlowRecallable(projectId, FlowCode.TempClosure_ClosurePackage), Rejectable = ApproveDialogUser.Any(u => u.ProjectId == projectId && u.FlowCode == FlowCode.TempClosure_ClosurePackage && u.VPGMCode == ClientCookie.UserCode), Savable = ProjectInfo.IsFlowSavable(projectId, FlowCode.TempClosure_ClosurePackage) })); } else { entity = TempClosurePackage.Create(projectId); return(Ok(new { Info = tempClosure, ClosurePackage = entity, Approver = ApproveDialogUser.GetApproveDialogUser(projectId, FlowCode.TempClosure_ClosurePackage), ProjectComment = "", Editable = (project.Status == ProjectStatus.Finished || project.Status == ProjectStatus.Rejected) && isActor && !entity.IsHistory, Recallable = project.Status == ProjectStatus.UnFinish && isActor && project.NodeCode != NodeCode.Start, Rejectable = ApproveDialogUser.Any(u => u.ProjectId == projectId && u.FlowCode == FlowCode.TempClosure_ClosurePackage && u.VPGMCode == ClientCookie.UserCode), Savable = ProjectInfo.IsFlowSavable(projectId, FlowCode.TempClosure_ClosurePackage) })); } }