using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using wispro.sp.entity.workflowDefine; using wispro.sp.share; namespace wispro.sp.web.Services { public class WorkflowService { private readonly IHttpService _httpClient; public WorkflowService(IHttpService http) { _httpClient = http; } private List bindObjectTypes = new List() { new BindObjectType(){ Name ="绩效记录",ObjectTypeFullName = typeof(wispro.sp.entity.PerformanceItem).AssemblyQualifiedName }, new BindObjectType(){ Name ="人员",ObjectTypeFullName = typeof(wispro.sp.entity.Staff).AssemblyQualifiedName} }; public List GetBindObjects() { return bindObjectTypes; } public string GetBindObjectName(string ObjectTypeFullName) { var retObj = bindObjectTypes.FirstOrDefault(b => b.ObjectTypeFullName == ObjectTypeFullName); if(retObj != null) { return retObj.Name; } else { return ""; } } List Workflows = new List(); Dictionary> InitInputValues = new Dictionary>(); public async Task AddWorkflow(entity.workflowDefine.Workflow wf,share.ActionObject InitAction) { share.NewWorkflowObject newWorkflow = new share.NewWorkflowObject(); newWorkflow.Workflow = wf; newWorkflow.InitAction = InitAction; //Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(newWorkflow)); var ret = await _httpClient.Post("WorkflowEngine/AddNew", newWorkflow); return ret; } public async Task> getAllWorkflows() { var retList = await _httpClient.Get>($"WorkflowEngine/GetAllWorkflows"); return retList; } public async Task GetWorkflow(int Id) { Workflow ret = await _httpClient.Get($"WorkflowEngine/GetWorkflow?workflowId={Id}"); //Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(ret)); return ret; } public async Task> GetSteps(int Id) { var ret = await _httpClient.Get>($"WorkflowEngine/GetSteps?workflowId={Id}"); return ret; } public async Task> GetActions(int workflowId) { var ret = await _httpClient.Get>($"WorkflowEngine/GetActions?workflowId={workflowId}"); return ret; } public async Task> GetTransfers(int workflowId) { var ret = await _httpClient.Get>($"WorkflowEngine/GetTrasfers?workflowId={workflowId}"); return ret; } public async Task SaveStep(NewStepObject editStep) { var ret = await _httpClient.Post("WorkflowEngine/SaveStep", editStep); return ret; } public async Task SaveAction(entity.workflowDefine.Action editAction) { var ret = await _httpClient.Post("WorkflowEngine/SaveAction", editAction); return ret; } public async Task Delete(int id) { var ret = await _httpClient.Get($"WorkflowEngine/DeleteWorkflow?workflowId={id}"); return ret; } public async Task SaveTransfer(entity.workflowDefine.TrasferCondition trasfer) { var ret = await _httpClient.Post("WorkflowEngine/SaveTransfer", trasfer); return ret; } public async Task DeleteAction(int id) { var ret = await _httpClient.Get($"WorkflowEngine/DeleteAction?Id={id}"); return ret; } public async Task> getInputValueSteeing(int actionId) { var ret = await _httpClient.Get>($"WorkflowEngine/getInputValueSteein?actionId={actionId}"); var retList = new List(); if(ret != null) { foreach(var iv in ret) { if (iv.ParentSettingId == null) { InputValueSettingObject ivObj = new InputValueSettingObject(); ivObj.InputValueSetting = iv; if(iv.valueType == EnumFieldType.List) { ivObj.Children = ret.Where(s => s.ParentSettingId == iv.ParentSettingId).ToList(); } retList.Add(ivObj); } } } //Console.WriteLine($"Services-GetInputValueSettings:{System.Text.Json.JsonSerializer.Serialize(retList)}"); return retList; } public async Task DeleteInputValueSetting(int Id) { var ret = await _httpClient.Get($"WorkflowEngine/DeleteInputValueSetting?Id={Id}"); return ret; } public async Task DeleteStep(Step selectedObject) { var ret = await _httpClient.Get($"WorkflowEngine/DeleteStep?Id={selectedObject.Id}"); return ret; } public async Task DeleteTransfer(TrasferCondition transfer) { var ret = await _httpClient.Get($"WorkflowEngine/DeleteTransfer?Id={transfer.Id}"); return ret; } public async Task getInputValueSteeingById(int id) { var ret = await _httpClient.Get($"WorkflowEngine/getInputValueSteeingById?Id={id}"); return ret; } } }