public async Task <TaskData <TFlowDataType, TContextType> > PostTaskAsync([FromBody] TaskData <TFlowDataType, TContextType> taskData)
        {
            var flow = (FlowDelegationType)ControllerContext.ActionDescriptor.Properties
                       .FirstOrDefault(x => x.Key.ToString() == "Flow").Value;

            //Return 403 when not permitted
            var roles = User.Claims.Where(c => c.Type == ClaimTypes.Role).Select(m => m.Value);

            if (ModelState.IsValid)
            {
            }

            var tasks = TaskSearch.Search(flow.FlowDefinition, taskData.TaskPath, taskData.TaskType);

            foreach (var task in tasks)
            {
                if (task.ExecuteOn == ExecuteOn.Api)
                {
                    var taskToExecute = (IFlowTask <TFlowDataType, TContextType>)_scope.Resolve(task.Type);
                    taskData = await taskToExecute.Execute(taskData);
                }
            }

            return(taskData);
        }
示例#2
0
        public JsonResult Search(string data)
        {
            DTOResult <List <DTOEmployees> > resultApi = new DTOResult <List <DTOEmployees> >();

            try
            {
                Task <string> TaskSearch;
                if (data == "")
                {
                    TaskSearch =
                        Task.Run(async() =>
                                 await DataAcess.Services.ClientGet(ConfigurationManager.AppSettings.Get("UrlServiceInternal"), "/api/Employees/SearchEmployees", ""));
                }
                else
                {
                    TaskSearch =
                        Task.Run(async() =>
                                 await DataAcess.Services.ClientPost(ConfigurationManager.AppSettings.Get("UrlServiceInternal"), "/api/Employees/SearchEmployeeId", data));
                }


                TaskSearch.Wait();

                resultApi = JsonConvert.DeserializeObject <DTOResult <List <DTOEmployees> > >(TaskSearch.Result);
            }
            catch (Exception e)
            {
                resultApi.Message = e.Message.ToString();
                resultApi.Result  = false;
            }
            return(Json(resultApi, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        private void TaskToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            TaskSearch Stud = new TaskSearch();

            Stud.ShowDialog();
        }
        public async Task <IActionResult> GetTaskList([FromBody] TaskSearch searchParams)
        {
            _logger.LogInformation("TaskController: GetTaskListSearch() method is being invoked");
            if (!ModelState.IsValid)
            {
                _logger.LogWarning("TaskController: GetTaskListSearch() - Invalid input parameters are passed.");
                return(BadRequest(ModelState));
            }
            try
            {
                var responseTask = await _taskRepo.GetTasks(searchParams);

                if (responseTask == null)
                {
                    _logger.LogWarning("TaskController: GetTaskListSearch() - No task is found with the given input value.");
                    return(NotFound());
                }
                _logger.LogInformation("TaskController: GetTaskListSearch() method is successfully invoked");
                var config     = new MapperConfiguration(cfg => { cfg.CreateMap <Model.TaskList, TaskList>(); });
                var mapper     = config.CreateMapper();
                var vmTaskList = mapper.Map <IEnumerable <Model.TaskList>, IEnumerable <TaskList> >(responseTask);
                return(Ok(vmTaskList));
            }
            catch (Exception ex)
            {
                _logger.LogError("TaskController: Error Processing PutTaskList() method. Exception : {0}", ex.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
示例#5
0
        public void Delete(TaskSearch request)
        {
            var matches = Get(request) as List <Task>;

            if (true != matches?.Any())
            {
                throw new HttpError(HttpStatusCode.NotFound, "No matches for request");
            }
            matches.ForEach(match =>
            {
                Delete(match);
            });
        }
示例#6
0
        override protected void GetNextRecord()
        {
            TasksViewItem task = TasksView.GetTasksViewItem(_loginUser, _itemIDList[_rowIndex]);

            _lastItemID = task.TaskID;
            UpdatedItems.Add((int)_lastItemID);

            StringBuilder builder = new StringBuilder();

            builder.AppendLine(task.Description
                               + " " + task.Name
                               + " " + task.DateCreated
                               + " " + task.DateModified);

            DocText = builder.ToString();

            _docFields.Clear();
            AddDocField("TaskID", task.TaskID);
            AddDocField("Name", task.Name);
            DocDisplayName = task.Name;

            TaskSearch taskItem = new TaskSearch(task);

            AddDocField("**JSON", JsonConvert.SerializeObject(taskItem));

            // How do we handle associations indexing?
            //TaskAssociationsView associations = new TaskAssociationsView(_loginUser);
            //associations.LoadByTaskIDOnly(task.TaskID);

            //foreach (TaskAssociationsViewItem association in associations)
            //{
            //  object o = value.Row["CustomValue"];
            //  string s = o == null || o == DBNull.Value ? "" : o.ToString();
            //  AddDocField(value.Row["Name"].ToString(), s);
            //}
            DocFields = _docFields.ToString();
            DocIsFile = false;
            DocName   = task.TaskID.ToString();
            try
            {
                DocCreatedDate  = (DateTime)task.Row["DateCreated"];
                DocModifiedDate = (DateTime)task.Row["DateModified"];
            }
            catch (Exception)
            {
            }
        }
示例#7
0
        public List <Task> SearchTask(TaskSearch search)
        {
            var Tasks = new List <Task>();

            using (MyContext db = new MyContext())
            {
                var TaskDetails = (from p in db.Tasks
                                   where
                                   (search.Task == null || search.Task == p.TaskName) &&
                                   (search.ParentTaskID == null || search.ParentTaskID == 0 || search.ParentTaskID == p.ParentTaskID) &&
                                   (search.Start_Date == null || search.Start_Date == p.StartDate) &&
                                   (search.End_Date == null || search.End_Date == p.EndDate) &&
                                   (search.PriorityFrom == null || search.PriorityFrom == p.Priority) &&
                                   (search.PriorityTo == null || search.PriorityTo == p.Priority)
                                   select new
                {
                    p.TaskID,
                    p.TaskName,
                    p.ParentTaskID,
                    p.ParentTaskName,
                    p.StartDate,
                    p.EndDate,
                    p.Priority,
                    p.Status
                }).ToList();

                foreach (var item in TaskDetails)
                {
                    var T = new Task
                    {
                        TaskID         = item.TaskID,
                        TaskName       = item.TaskName,
                        ParentTaskID   = item.ParentTaskID,
                        ParentTaskName = item.ParentTaskName,
                        StartDate      = item.StartDate,
                        EndDate        = item.EndDate,
                        Priority       = item.Priority,
                        Status         = item.Status
                    };
                    Tasks.Add(T);
                }
            }
            return(Tasks);
        }
示例#8
0
        public PagedResponse <TaskDto> Execute(TaskSearch search)
        {
            IQueryable <AzureTableDataAccess.Entities.Tasks> query;

            query = _tableCli.table.CreateQuery <AzureTableDataAccess.Entities.Tasks>();

            if (!String.IsNullOrWhiteSpace(search.Name))
            {
                query = query.Where(x => x.Name == search.Name);
            }

            if (!String.IsNullOrWhiteSpace(search.Description))
            {
                query = query.Where(x => x.Name == search.Name);
            }
            if (!String.IsNullOrWhiteSpace(search.ProjectId))
            {
                query = query.Where(x => x.PartitionKey == search.ProjectId);
            }

            query = query.Where(x => !x.Deleted);
            var            result = query.ToList();
            List <TaskDto> mapped = _mapper.Map <List <Tasks>, List <TaskDto> >(result);

            // Only if consumers wants additional data, bacause it consuming more time to get additional data
            var counter = -1;

            Parallel.ForEach(result, (singleTask) =>
            {
                // Get dynamic properties for each entity
                counter++;
                var task = _tableCli.GetSingleDynamicEntity(singleTask.PartitionKey, singleTask.RowKey);
                task.Wait();
                var dto = Helper.toTaskDto(task.Result);
                mapped[counter].AdditionalFields = dto.AdditionalFields;
            });



            return(mapped.ToPagedResponse());
        }
示例#9
0
        private IQueryable <DocEntityTask> _ExecSearch(TaskSearch request, DocQuery query)
        {
            request = InitSearch <Task, TaskSearch>(request);
            IQueryable <DocEntityTask> entities = null;

            query.Run(session =>
            {
                entities = query.SelectAll <DocEntityTask>();
                if (!DocTools.IsNullOrEmpty(request.FullTextSearch))
                {
                    var fts  = new TaskFullTextSearch(request);
                    entities = GetFullTextSearch <DocEntityTask, TaskFullTextSearch>(fts, entities);
                }

                if (null != request.Ids && request.Ids.Any())
                {
                    entities = entities.Where(en => en.Id.In(request.Ids));
                }

                if (!DocTools.IsNullOrEmpty(request.Updated))
                {
                    entities = entities.Where(e => null != e.Updated && e.Updated.Value.Date == request.Updated.Value.Date);
                }
                if (!DocTools.IsNullOrEmpty(request.UpdatedBefore))
                {
                    entities = entities.Where(e => null != e.Updated && e.Updated <= request.UpdatedBefore);
                }
                if (!DocTools.IsNullOrEmpty(request.UpdatedAfter))
                {
                    entities = entities.Where(e => null != e.Updated && e.Updated >= request.UpdatedAfter);
                }
                if (!DocTools.IsNullOrEmpty(request.Created))
                {
                    entities = entities.Where(e => null != e.Created && e.Created.Value.Date == request.Created.Value.Date);
                }
                if (!DocTools.IsNullOrEmpty(request.CreatedBefore))
                {
                    entities = entities.Where(e => null != e.Created && e.Created <= request.CreatedBefore);
                }
                if (!DocTools.IsNullOrEmpty(request.CreatedAfter))
                {
                    entities = entities.Where(e => null != e.Created && e.Created >= request.CreatedAfter);
                }
                if (true == request.Archived?.Any() && currentUser.HasProperty(DocConstantModelName.TASK, nameof(Reference.Archived), DocConstantPermission.VIEW))
                {
                    entities = entities.Where(en => en.Archived.In(request.Archived));
                }
                else
                {
                    entities = entities.Where(en => !en.Archived);
                }
                if (true == request.Locked?.Any())
                {
                    entities = entities.Where(en => en.Locked.In(request.Locked));
                }
                if (!DocTools.IsNullOrEmpty(request.Assignee) && !DocTools.IsNullOrEmpty(request.Assignee.Id))
                {
                    entities = entities.Where(en => en.Assignee.Id == request.Assignee.Id);
                }
                if (true == request.AssigneeIds?.Any())
                {
                    entities = entities.Where(en => en.Assignee.Id.In(request.AssigneeIds));
                }
                if (!DocTools.IsNullOrEmpty(request.Description))
                {
                    entities = entities.Where(en => en.Description.Contains(request.Description));
                }
                if (!DocTools.IsNullOrEmpty(request.Descriptions))
                {
                    entities = entities.Where(en => en.Description.In(request.Descriptions));
                }
                if (!DocTools.IsNullOrEmpty(request.DueDate))
                {
                    entities = entities.Where(en => null != en.DueDate && request.DueDate.Value.Date == en.DueDate.Value.Date);
                }
                if (!DocTools.IsNullOrEmpty(request.DueDateBefore))
                {
                    entities = entities.Where(en => en.DueDate <= request.DueDateBefore);
                }
                if (!DocTools.IsNullOrEmpty(request.DueDateAfter))
                {
                    entities = entities.Where(en => en.DueDate >= request.DueDateAfter);
                }
                if (!DocTools.IsNullOrEmpty(request.Reporter) && !DocTools.IsNullOrEmpty(request.Reporter.Id))
                {
                    entities = entities.Where(en => en.Reporter.Id == request.Reporter.Id);
                }
                if (true == request.ReporterIds?.Any())
                {
                    entities = entities.Where(en => en.Reporter.Id.In(request.ReporterIds));
                }
                if (request.Type.HasValue)
                {
                    entities = entities.Where(en => request.Type.Value == en.Type);
                }
                if (!DocTools.IsNullOrEmpty(request.Types))
                {
                    entities = entities.Where(en => en.Type.In(request.Types));
                }
                if (!DocTools.IsNullOrEmpty(request.Workflow) && !DocTools.IsNullOrEmpty(request.Workflow.Id))
                {
                    entities = entities.Where(en => en.Workflow.Id == request.Workflow.Id);
                }
                if (true == request.WorkflowIds?.Any())
                {
                    entities = entities.Where(en => en.Workflow.Id.In(request.WorkflowIds));
                }

                entities = ApplyFilters <DocEntityTask, TaskSearch>(request, entities);

                if (request.Skip > 0)
                {
                    entities = entities.Skip(request.Skip.Value);
                }
                if (request.Take > 0)
                {
                    entities = entities.Take(request.Take.Value);
                }
                if (true == request?.OrderBy?.Any())
                {
                    entities = entities.OrderBy(request.OrderBy);
                }
                if (true == request?.OrderByDesc?.Any())
                {
                    entities = entities.OrderByDescending(request.OrderByDesc);
                }
            });
            return(entities);
        }
示例#10
0
 public object Get(TaskSearch request) => GetSearchResultWithCache <Task, DocEntityTask, TaskSearch>(DocConstantModelName.TASK, request, _ExecSearch);
示例#11
0
 public object Post(TaskSearch request) => Get(request);
示例#12
0
 public IActionResult Get([FromQuery] TaskSearch search, [FromServices] IQueryTask query)
 {
     return(Ok(_executor.ExecuteQuery(query, search)));
 }
示例#13
0
        public ActionResult searchTask(TaskSearch taskSearch)
        {
            user_tasks        data  = new user_tasks();
            List <daily_task> daily = new List <daily_task>();
            List <task_list>  tasks = new List <task_list>();

            try
            {
                using (MySqlConnection con = new MySqlConnection(connection))
                {
                    con.Open();
                    using (MySqlCommand cmd = con.CreateCommand())
                    {
                        cmd.CommandText = "SELECT *, TIME_FORMAT(timeFrom, \"%h:%i %p\") AS timeFrom_formatted, "
                                          + " TIME_FORMAT(timeTo, \"%h:%i %p\") AS timeTo_formatted FROM kpDailyTask.Report" + taskSearch.Month
                                          + " WHERE user = @user AND YEAR(DATE) = @year ORDER BY date DESC, timeFrom DESC;";
                        cmd.Parameters.AddWithValue("user", encdata.AESDecrypt(taskSearch.encUser.Replace(' ', '+'), encStringKey));
                        cmd.Parameters.AddWithValue("year", taskSearch.Year);
                        MySqlDataReader rdr = cmd.ExecuteReader();
                        if (rdr.HasRows)
                        {
                            String currDate = string.Empty;
                            while (rdr.Read())
                            {
                                if (currDate == string.Empty)
                                {
                                    currDate = rdr["date"].ToString();
                                }
                                if (currDate == rdr["date"].ToString())
                                {
                                    tasks.Add(new task_list
                                    {
                                        taskID    = rdr["taskID"].ToString(),
                                        timeFrom  = rdr["timeFrom_formatted"].ToString(),
                                        timeTo    = rdr["timeTo_formatted"].ToString(),
                                        task      = rdr["Task"].ToString(),
                                        woNo      = rdr["WOno"].ToString(),
                                        confirmed = Convert.ToBoolean(rdr["confirmed"].ToString())
                                    });
                                }
                                else
                                {
                                    daily.Add(new daily_task
                                    {
                                        task_date = Convert.ToDateTime(currDate),
                                        taskLists = tasks
                                    });

                                    tasks    = new List <task_list>();
                                    currDate = rdr["date"].ToString();
                                    tasks.Add(new task_list
                                    {
                                        taskID    = rdr["taskID"].ToString(),
                                        timeFrom  = rdr["timeFrom_formatted"].ToString(),
                                        timeTo    = rdr["timeTo_formatted"].ToString(),
                                        task      = rdr["Task"].ToString(),
                                        woNo      = rdr["WOno"].ToString(),
                                        confirmed = Convert.ToBoolean(rdr["confirmed"].ToString())
                                    });
                                }
                            }

                            //final daily add from last date result-
                            daily.Add(new daily_task
                            {
                                task_date = Convert.ToDateTime(currDate),
                                taskLists = tasks
                            });

                            data = new user_tasks {
                                user = taskSearch.encUser, tasks = daily
                            };
                        }
                        else
                        {
                            ViewBag.message = "No tasks retrieved...";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("error: " + ex.ToString());
            }
            return(PartialView("_getTask", data));
        }