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()); }
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()); }
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); }
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; }
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))); }
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); }
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()); }
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()); }
/// <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); }
public async Task UpdateIncidentTaskAsync(IncidentTask task) { db.IncidentTasks.Update(task.ToModel()); await db.SaveChangesAsync(); }
public async Task UpdateIncidentTaskAsync(IncidentTask task) { db.IncidentTasks.Update(mapper.Map <Models.Db.IncidentTask>(task)); await db.SaveChangesAsync(); }