public async Task <IActionResult> CloseCreateIncident(SimsCloseCreateIncident closeCreate) { var incidentId = await this.simsApp.Signals.CloseCreateIncident(closeCreate); return(new OkObjectResult(new IncidentIdViewModel { IncidentId = incidentId })); }
public async Task <IActionResult> CloseOnlineFormCreateIncident(SimsCloseCreateIncident closeCreate) { var incidentId = await this.simsApp.OnlineForms.CloseCreateIncident(closeCreate.HostId, closeCreate.ReasonNote); return(new OkObjectResult(new IncidentIdViewModel { IncidentId = incidentId })); }
public async Task <int> CloseCreateIncident(SimsCloseCreateIncident close) { if (await dbHost.Signals.IsClosed(close.HostId)) { throw new SimsSignalClosedException("Signal closed"); } var incidentId = await dbHost.Signals.CloseCreateIncident(close.ReasonNote, close.HostId); if (incidentId != -1) { // var signInfo = await this.attachments.Incidents.EnsureLibrary(GeneralExtensions.GenerateSignalsId(close.SignalId)); // Once an incident is created, then we can migrate all the documents. // Createing library just breaks down the task // Then we need to migrate any tags that have been applied. var libInfo = await this.attachments.Incidents.EnsureLibrary(GeneralExtensions.GenerateIncidentId(incidentId)); var currentDocInfo = (await dbHost.Signals.Attachments.Get(close.HostId)).ToHashSet(); // All files found, might not totally refelect whats in the signals // There could be more var allFileUrls = await this.attachments.Signals.MigrateToLibrary(GeneralExtensions.GenerateIncidentId(incidentId), GeneralExtensions.GenerateSignalsId(close.HostId)); var mergedTags = new Dictionary <string, int>(); foreach (var fileItem in allFileUrls) { var signal = currentDocInfo.FirstOrDefault(f => f.FileName == fileItem.FileName); mergedTags.Add(fileItem.IncidentUrl, signal != null ? signal.Tags : 0); } await this.dbHost.Incidents.Attachments.BulkAdd(incidentId, mergedTags); return(incidentId); } else { throw new SIMSException("Signal already closed."); } }
public async Task <IActionResult> CloseOnlineFormNoIncident(SimsCloseCreateIncident closeCreate) { await this.simsApp.OnlineForms.CloseNoIncident(closeCreate.HostId, closeCreate.ReasonNote); return(Ok()); }