public async Task <EngineInboxTaskList> GetInboxTasks(EngineInboxTaskRequest inboxTaskRequest) { using (_httpClient = new HttpClient()) { SetDefaultHeaders(_httpClient); var baseUrl = WorkflowSettingSingleTon.WorkflowSetting.BaseUrl; var url = $@"{baseUrl}/runtime/tasks" + inboxTaskRequest.ToUrl(); var resp = await _httpClient.GetAsync(url); if ((int)resp.StatusCode == 200) { return(await ActivitiEngineClientHelper.ParseTaskList(resp)); } else if ((int)resp.StatusCode == 400) { var errorxml = await resp.Content.ReadAsStringAsync(); throw new ActivitiEngineClientException("پارامتر های اشتباه " + errorxml); } else { var errorxml = await resp.Content.ReadAsStringAsync(); throw new Exception(errorxml); } } }
public async Task <EngineInboxTaskList> GetInboxTasks(EngineInboxTaskRequest inboxTaskRequest) { ValidateInboxTaskRequest(inboxTaskRequest); var engineClient = InjectorSingleTon.Inject <IWorkflowEngineClient>(); return(await engineClient.GetInboxTasks(inboxTaskRequest)); }
public void Setup9() { pdr = new ProcessDefinitionsRequest(); vm = new EngineInboxTaskRequest { assignee = "noori" }; }
private void ValidateInboxTaskRequest(EngineInboxTaskRequest inboxTaskRequest) { if (string.IsNullOrEmpty(inboxTaskRequest.assignee) && string.IsNullOrEmpty(inboxTaskRequest.assigneeLike) && string.IsNullOrEmpty(inboxTaskRequest.candidateGroup) && string.IsNullOrEmpty(inboxTaskRequest.candidateGroups) && string.IsNullOrEmpty(inboxTaskRequest.candidateUser) && inboxTaskRequest.unassigned == false && string.IsNullOrEmpty(inboxTaskRequest.candidateOrAssigned) && string.IsNullOrEmpty(inboxTaskRequest.involvedUser) ) { throw new WorkflowServiceException("گیرنده مشخص نشده است"); } }
public async Task ContinueTest() { var vm = new EngineInboxTaskRequest { assignee = "noori" }; var resp1 = await workflowService.GetInboxTasks(vm); cont.TaskId = resp1.Data[0].Id.ToString(); var resp = await workflowService.Continue(cont); // return await Task.FromResult(1); }
public async Task ContinueTest_wrongUsername() { try { var vm = new EngineInboxTaskRequest { assignee = "noori" }; var resp1 = await workflowService.GetInboxTasks(vm); cont_wrongUsername.TaskId = resp1.Data[0].Id.ToString(); var resp = await workflowService.Continue(cont_wrongUsername); Assert.IsTrue(false); } catch (WorkflowServiceException e) { Console.WriteLine(e); } // return await Task.FromResult(1); }
public virtual async Task <Result <InboxTaskViewModel <TModel> > > GetInboxTasks(bool isClaimed) { try { var username = HttpContext.Current.Session["loggedInUsername"]; if (username == null || string.IsNullOrEmpty(username.ToString())) { throw new Exception("کاربر کنونی وارد نشده است"); } var request = new EngineInboxTaskRequest { assignee = isClaimed ? username.ToString() : null, candidateUser = isClaimed ? null : username.ToString(), candidateGroup = isClaimed ? null : GetGroup(), candidateGroups = isClaimed ? null : GetGroups(), }; var workflowService = InjectorSingleTon.Inject <IWorkflowService>(); var tasks = await workflowService.GetInboxTasks(request); List <InboxTaskViewModel <TModel> > list = new List <InboxTaskViewModel <TModel> >(); foreach (var task in tasks.Data) { var viewModel = new InboxTaskViewModel <TModel>(); //status var status = task.Variables .FirstOrDefault(v => v.Name == "status"); int val = 0; if (int.TryParse(status?.Value, out val)) { viewModel.StatusMessage += "<br>" + " اشکال در خواندن status " + status; } else { viewModel.Status = status?.Value != null ? (ProcessInstanceStatus)val : 0; } viewModel.Assignee = task.Assignee; // assignee Translate viewModel.AssigneeTranslate = _orgChartService.GetPersonnelNameByUsername(task.Assignee); //form name var formName = task.Variables.Where(v => v.Name == "formName").Select(v => v.Value) .FirstOrDefault(); if (string.IsNullOrEmpty(formName)) { viewModel.StatusMessage += "<br>" + " FormName داده نشده است"; } else { viewModel.FormName = formName; } //Id var idstr = task.Variables.Where(v => v.Name == "id").Select(v => v.Value).FirstOrDefault(); long id = 0; if (string.IsNullOrEmpty(idstr) || long.TryParse(idstr, out id) == false) { throw new Exception(" این گردش کار دارای Id نیست " + viewModel.StatusMessage); } var record = GetById(id).SingleRecord; // subject viewModel.Subject = record.Subject; //record viewModel.Record = record; viewModel.RequestDate = task.CreateTime; viewModel.ProcessInstanceId = task.ProcessInstanceId; viewModel.TaskId = task.Id; list.Add(viewModel); } return(new Result <InboxTaskViewModel <TModel> > { Type = ResultType.Success, Grid = list }); } catch (HttpRequestException e) { return(new Result <InboxTaskViewModel <TModel> > { Message = e.Message + e.InnerException?.Message + " سرور گردش کار فعال نیست خطا در اتصال ", Type = ResultType.Fail }); } catch (Exception e) { return(new Result <InboxTaskViewModel <TModel> > { Message = e.Message, Type = ResultType.Fail }); } }