コード例 #1
0
        public async Task <string> CreateIncidentTaskAsync(IncidentTask task)
        {
            var newItem = db.IncidentTasks.Add(mapper.Map <Models.Db.IncidentTask>(task));
            await db.SaveChangesAsync();

            return(newItem.Entity.Id.ToString());
        }
コード例 #2
0
        public async Task <IncidentTask> CreateIncidentTaskAsync(IncidentTask task)
        {
            var newItem = db.IncidentTasks.Add(task.ToModel());
            await db.SaveChangesAsync();

            return((await IncidentTasks.SingleAsync(t => t.Id == newItem.Entity.Id)).ToViewModel());
        }
コード例 #3
0
ファイル: TaskTests.cs プロジェクト: bcgov/embc-ess-mod
        public void Map_ExpiredTask_DigitalWorkflowDisabledAndPaperWorkflowEnabled()
        {
            var task = new IncidentTask
            {
                StartDate   = DateTime.Now.AddDays(-5),
                EndDate     = DateTime.Now.AddDays(-2),
                Description = "test",
                Id          = "1234",
                Status      = IncidentTaskStatus.Expired
            };

            var mappedTask = mapper.Map <ESSTask>(task);

            mappedTask.Workflows.ShouldContain(t => t.Name == "digital-processing" && t.Enabled == false);
            mappedTask.Workflows.ShouldContain(t => t.Name == "paper-data-entry" && t.Enabled == true);
            mappedTask.Workflows.ShouldContain(t => t.Name == "remote-extensions" && t.Enabled == false);
        }
コード例 #4
0
ファイル: TasksController.cs プロジェクト: bcgov/embc-ess-mod
        private static void SetTaskWorkflows(ESSTask task, IncidentTask incidentTask)
        {
            var workflows = new[]
            {
                new TaskWorkflow {
                    Name = "digital-processing", Enabled = incidentTask.Status == IncidentTaskStatus.Active
                },
                new TaskWorkflow {
                    Name = "paper-data-entry", Enabled = true
                },
                new TaskWorkflow {
                    Name = "remote-extensions", Enabled = false
                },
            };

            task.Workflows = workflows;
        }
コード例 #5
0
        public async Task <IActionResult> Create([FromBody] IncidentTask item)
        {
            var errors = IncidentTaskHelper.ValidateClientTaskProperties(item);

            if (errors != null)
            {
                ModelState.AddModelError(errors.Item1, errors.Item2);
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            item.Id     = null;
            item.Active = true;
            var taskId = await dataInterface.CreateIncidentTaskAsync(item);

            return(Json(await dataInterface.GetIncidentTaskAsync(taskId)));
        }
コード例 #6
0
        public async Task <IActionResult> Create([FromBody] IncidentTask item)
        {
            if (!item.StartDate.HasValue)
            {
                ModelState.AddModelError("StartDate", "Incident task must have a start date");
            }
            if (item.StartDate.HasValue && item.StartDate.Value > DateTime.Now)
            {
                ModelState.AddModelError("StartDate", "Incident start date cannot be in the future");
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            item.Id     = null;
            item.Active = true;
            var result = await dataInterface.CreateIncidentTaskAsync(item);

            return(Json(result));
        }
        public IEnumerable <IncidentTask> GetAllOpenIncidentTasks()
        {
            FullTextSqlQuery sqlQuery = new FullTextSqlQuery(ServerContext.Current);

            sqlQuery.QueryText   = Resources.PartnerRollupFullTextQuery;
            sqlQuery.ResultTypes = ResultType.RelevantResults;

            // Write the query to the trace log, so developers can debug it more easily.
            ILogger logger = SharePointServiceLocator.Current.GetInstance <ILogger>();

            logger.TraceToDeveloper(
                string.Format(CultureInfo.CurrentCulture,
                              Resources.IncidentTasksFullTextSqlQuery,
                              sqlQuery.QueryText));

            ResultTableCollection queryResults = sqlQuery.Execute();
            DataTable             resultsTable = new DataTable();

            resultsTable.Locale = CultureInfo.CurrentCulture;
            resultsTable.Load(queryResults[ResultType.RelevantResults]);

            List <IncidentTask> results = new List <IncidentTask>();

            foreach (DataRow datarow in resultsTable.Rows)
            {
                IncidentTask result = new IncidentTask();
                result.Path       = datarow[PathField] == DBNull.Value ? string.Empty : (string)datarow[PathField];
                result.Title      = datarow[TitleField] == DBNull.Value ? string.Empty : (string)datarow[TitleField];
                result.AssignedTo = datarow[AssignedToField] == DBNull.Value
                                        ? string.Empty
                                        : (string)datarow[AssignedToField];

                // For some reason, the the Status field is returned as an array of strings. The status can be accessed
                // using the index 0.
                result.Status   = datarow[StatusField] == DBNull.Value ? string.Empty : ((string[])datarow[StatusField])[0];
                result.Priority = datarow[PriorityField] == DBNull.Value ? string.Empty : (string)datarow[PriorityField];
                results.Add(result);
            }
            return(results);
        }
コード例 #8
0
        public async Task <IActionResult> Update([FromBody] IncidentTask item, string id)
        {
            if (string.IsNullOrWhiteSpace(id) || item == null || id != item.Id)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var errors = IncidentTaskHelper.ValidateClientTaskProperties(item);

            if (errors != null)
            {
                ModelState.AddModelError(errors.Item1, errors.Item2);
            }

            await dataInterface.UpdateIncidentTaskAsync(item);

            return(Ok());
        }
コード例 #9
0
        public async Task <IActionResult> Update([FromBody] IncidentTask item, string id)
        {
            if (string.IsNullOrWhiteSpace(id) || item == null || id != item.Id)
            {
                return(BadRequest());
            }
            if (!item.StartDate.HasValue)
            {
                ModelState.AddModelError("StartDate", "Incident task must have a start date");
            }
            if (item.StartDate.HasValue && item.StartDate.Value > DateTime.Now)
            {
                ModelState.AddModelError("StartDate", "Incident start date cannot be in the future");
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            await dataInterface.UpdateIncidentTaskAsync(item);

            return(Ok());
        }
コード例 #10
0
        /// <summary>
        /// Validates that an Incident Task from the client has valid properties.
        /// </summary>
        /// <param name="item">The IncidentTask to validate.</param>
        /// <returns>
        /// Return a Tuple with two items, Item1 is the name of the property with an error and item 2 is the error details.
        /// Returns null when no errors are found.
        /// </returns>
        public static Tuple <string, string> ValidateClientTaskProperties(IncidentTask item)
        {
            Tuple <string, string> results = null;

            if (item.StartDate.HasValue && item.StartDate.Value.ToUniversalTime() > DateTime.UtcNow)
            {
                results = new Tuple <string, string>("StartDate", "Incident start date cannot be in the future");
            }
            else if (!item.TaskNumberStartDate.HasValue)
            {
                results = new Tuple <string, string>("TaskNumberStartDate", "Incident task must have a task number start date");
            }
            else if (item.TaskNumberStartDate.HasValue && item.TaskNumberStartDate.Value.ToUniversalTime() > DateTime.UtcNow)
            {
                results = new Tuple <string, string>("TaskNumberStartDate", "Incident task number start date cannot be in the future");
            }
            else if (!item.TaskNumberEndDate.HasValue)
            {
                results = new Tuple <string, string>("TaskNumberEndDate", "Incident task must have a task number end date");
            }

            return(results);
        }
コード例 #11
0
 public async Task UpdateIncidentTaskAsync(IncidentTask task)
 {
     db.IncidentTasks.Update(task.ToModel());
     await db.SaveChangesAsync();
 }
コード例 #12
0
 public async Task UpdateIncidentTaskAsync(IncidentTask task)
 {
     db.IncidentTasks.Update(mapper.Map <Models.Db.IncidentTask>(task));
     await db.SaveChangesAsync();
 }