コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        public async Task <EngineInboxTaskList> GetInboxTasks(EngineInboxTaskRequest inboxTaskRequest)
        {
            ValidateInboxTaskRequest(inboxTaskRequest);

            var engineClient = InjectorSingleTon.Inject <IWorkflowEngineClient>();


            return(await engineClient.GetInboxTasks(inboxTaskRequest));
        }
コード例 #3
0
        public void Setup9()
        {
            pdr = new ProcessDefinitionsRequest();

            vm = new EngineInboxTaskRequest
            {
                assignee = "noori"
            };
        }
コード例 #4
0
 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("گیرنده مشخص نشده است");
     }
 }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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
                });
            }
        }