public override string Edit() { var info = RenewalInfo.Get(ProjectId); var analysis = Duplicator.AutoCopy(this); analysis.Id = Guid.NewGuid(); analysis.IsHistory = false; analysis.Add(); this.IsHistory = true; this.Update(); ProjectInfo.Reset(ProjectId, this.WorkflowCode); RenewalPackage package = RenewalPackage.Get(ProjectId); package.AnalysisId = analysis.Id; package.Update(); TaskWork.Cancel(e => e.TypeCode == FlowCode.Renewal_Analysis && e.RefID == ProjectId && e.Status == TaskWorkStatus.UnFinish); var task = info.GenerateSubmitTask(FlowCode.Renewal_Analysis); return(task.Url); }
public override string Edit() { string url; using (var tranScope = new TransactionScope()) { var info = RenewalInfo.Get(this.ProjectId); var tool = Duplicator.AutoCopy(this); tool.Id = Guid.NewGuid(); tool.IsHistory = false; tool.CreateTime = DateTime.Now; tool.CreateUserAccount = ClientCookie.UserCode; tool.Add(); NewEntityId = tool.Id; IsHistory = true; this.Update(); ProjectInfo.Reset(ProjectId, this.WorkflowCode); var attachments = Attachment.GetList(this.TableName, Id.ToString(), string.Empty); attachments.ForEach(att => { att.RefTableID = tool.Id.ToString(); att.ID = Guid.NewGuid(); }); Attachment.Add(attachments.ToArray()); var FinMI = RenewalToolFinMeasureInput.Get(this.ProjectId, this.Id); var newFinMI = Duplicator.AutoCopy(FinMI); newFinMI.Id = Guid.NewGuid(); newFinMI.ToolId = tool.Id; newFinMI.Add(); var WfRc = RenewalToolWriteOffAndReinCost.Get(this.ProjectId, this.Id); var newWfRc = Duplicator.AutoCopy(WfRc); newWfRc.Id = Guid.NewGuid(); newWfRc.ToolId = tool.Id; newWfRc.Add(); var FinMO = RenewalToolFinMeasureOutput.GetByToolId(this.Id); var newFinMO = Duplicator.AutoCopy(FinMO); newFinMO.Id = Guid.NewGuid(); newFinMO.ToolId = tool.Id; newFinMO.Add(); var package = RenewalPackage.Get(this.ProjectId); package.ToolId = tool.Id; package.Update(); var oldTasks = TaskWork.Search(t => t.RefID == ProjectId && t.Status == TaskWorkStatus.UnFinish && new string[] { this.WorkflowCode, FlowCode.Renewal_Analysis }.Contains(t.TypeCode)).ToList(); oldTasks.ForEach(t => { t.Status = TaskWorkStatus.Cancel; }); TaskWork.Update(oldTasks.ToArray()); var anlysisProj = ProjectInfo.FirstOrDefault(e => e.FlowCode == FlowCode.Renewal_Analysis && e.Status == ProjectStatus.UnFinish && e.ProjectId == ProjectId); if (anlysisProj != null) { var taskAnlysis = TaskWork.FirstOrDefault(e => e.TypeCode == FlowCode.Renewal_Analysis && e.RefID == ProjectId && e.Status == TaskWorkStatus.UnFinish); if (taskAnlysis != null) { taskAnlysis.Status = TaskWorkStatus.Finished; taskAnlysis.FinishTime = DateTime.Now; taskAnlysis.Update(); } } var task = info.GenerateSubmitTask(this.WorkflowCode); url = task.Url; tranScope.Complete(); } return(url); }