示例#1
0
        public bool UpdateTaskList(UserTaskList model)
        {
            var realm = Realm.GetInstance(_databasePath);

            realm.Write(() => { realm.Add(model, true); });
            return(true);
        }
示例#2
0
        public bool CreateTaskList(UserTaskList model)
        {
            var realm = Realm.GetInstance(_databasePath);

            var user = realm.All <User>().FirstOrDefault(x => x.Id == _userId);

            if (user == null)
            {
                return(false);
            }
            model.RefUser = user;

            var id = realm.All <UserTaskList>()?.LastOrDefault()?.Id ?? 0;

            model.Id = ++id;
            while (realm.All <UserTaskList>().FirstOrDefault(x => x.Id == id) != null)
            {
                id++;
            }
            realm.Write(() =>
            {
                realm.Add(model);
                user.UserTaskLists.Add(model);
            });
            return(true);
        }
示例#3
0
        public bool CreateTask(UserTaskList list, UserTask task)
        {
            var realm = Realm.GetInstance(_databasePath);

            var item = realm.All <UserTaskList>().FirstOrDefault(x => x.Id == list.Id);

            if (item == null)
            {
                return(false);
            }
            task.RefList = item;

            var id = realm.All <UserTask>().LastOrDefault()?.Id ?? 0;

            while (realm.All <UserTask>().FirstOrDefault(x => x.Id == id) != null)
            {
                id++;
            }

            task.Id = ++id;

            realm.Write(() =>
            {
                realm.Add(task);
                item.UserTasks.Add(task);
            });

            return(true);
        }
示例#4
0
        public static UserTaskListModel MapTaskList(UserTaskList model)
        {
            if (model == null)
            {
                return(null);
            }

            return(new UserTaskListModel()
            {
                Id = model.Id,
                Name = model.Name,
                UserTasks = MapUserTaskList(model.UserTasks).ToList()
            });
        }
示例#5
0
        public bool DeleteTaskList(UserTaskList model)
        {
            var realm    = Realm.GetInstance(_databasePath);
            var user     = realm.All <User>().FirstOrDefault(x => x.Id == _userId);
            var taskList = realm.All <UserTaskList>().FirstOrDefault(x => x.Id == model.Id);

            if (user == null || taskList == null)
            {
                return(false);
            }

            realm.Write(() =>
            {
                user.UserTaskLists.Remove(taskList);
                realm.Remove(taskList);
            });
            return(true);
        }
示例#6
0
        public async Task BPMN_GetWaitingUserTasksByIdentity_ShouldFetchUserTaskList()
        {
            var processModelId = "test_consumer_api_usertask";
            var payload        = new ProcessStartRequestPayload <object>();
            var callbackType   = StartCallbackType.CallbackOnProcessInstanceCreated;

            ProcessStartResponsePayload processInstance = await this
                                                          .fixture
                                                          .ConsumerAPIClient
                                                          .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload, callbackType);

            // Give the ProcessEngine time to reach the UserTask
            await Task.Delay(2000);

            UserTaskList userTasks = await this.fixture.ConsumerAPIClient.GetWaitingUserTasksByIdentity(this.fixture.DefaultIdentity);

            Assert.NotEmpty(userTasks.UserTasks);
        }
示例#7
0
        public async Task BPMN_FinishUserTask_ShouldFinishUserTask()
        {
            var processModelId = "test_consumer_api_usertask";
            var payload        = new ProcessStartRequestPayload <object>();
            var callbackType   = StartCallbackType.CallbackOnProcessInstanceCreated;

            ProcessStartResponsePayload processInstance = await this
                                                          .fixture
                                                          .ConsumerAPIClient
                                                          .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload, callbackType);

            // Give the ProcessEngine time to reach the UserTask
            await Task.Delay(5000);

            UserTaskList userTasks = await this
                                     .fixture
                                     .ConsumerAPIClient
                                     .GetUserTasksForCorrelation(this.fixture.DefaultIdentity, processInstance.CorrelationId);

            Assert.NotEmpty(userTasks.UserTasks);

            var userTaskToBeFinished = userTasks.UserTasks.ElementAt(0);
            var userTaskResult       = new UserTaskResult()
            {
                FormFields = new Dictionary <string, object>()
            };

            userTaskResult.FormFields.Add("my_test_key", "my_test_value");

            await this
            .fixture
            .ConsumerAPIClient
            .FinishUserTask(
                this.fixture.DefaultIdentity,
                processInstance.ProcessInstanceId,
                processInstance.CorrelationId,
                userTaskToBeFinished.FlowNodeInstanceId,
                userTaskResult
                );
        }
示例#8
0
        public async Task <IActionResult> AssignTask(UserTaskList userTaskList)
        {
            var dict = GetCookies();

            userTaskList.UserTask.UidToken         = dict["uid"];
            userTaskList.UserTask.Id               = Guid.NewGuid().ToString();
            userTaskList.UserTask.AssignedDateTime = DateTime.Now;
            userTaskList.UserTask.Complete         = false;
            if (userTaskList.UserTask.SendNow)
            {
                userTaskList.UserTask.SendTime = DateTime.Now;
            }

            /*
             * if (userTaskList.UserTask.SendTime < DateTime.Now && !userTaskList.UserTask.SendNow)
             * {
             *  userTaskList.UserTask.SendTime = userTaskList.UserTask.SendTime.AddDays(1);
             * }
             */

            var jData = JsonConvert.SerializeObject(userTaskList.UserTask);

            await _data.UpdateAndClearCache(dict, Enums.DataType.UserTasks, Enums.UpdateType.Add, jData);

            //Send out notification
            var messageId = await ScheduleNotification(userTaskList.UserTask, dict);

            // update usertask message id
            userTaskList.UserTask.MessageId = messageId;
            var j2Data = JsonConvert.SerializeObject(userTaskList.UserTask);
            await _data.UpdateAndClearCache(dict, Enums.DataType.UserTasks, Enums.UpdateType.Edit, j2Data);

            if (userTaskList.UserTask.SendNow)
            {
                return(RedirectToAction("ViewHistory"));
            }
            return(RedirectToAction("ViewUpcomingTasks"));
        }