private async Task ProcessTriageFile(AdmIntegrationMap map, PutIntegrationMapsRequest request) { if (request.TriageFileID != 0) { var previewFile = await _repository.FindAsync <AppTriageFile>(request.TriageFileID); if (previewFile != null) { if (map.PreviewFile != null) { _repository.MarkForDeletion(map.PreviewFile); } map.PreviewFile = new AdmIntegrationMapsPreviewFile { FileName = Path.GetFileName(previewFile.FileName), Size = previewFile.Size, UploadDate = DateTime.Now, AdmIntegrationMapsFilesData = new AdmIntegrationMapsPreviewFileData() { Data = previewFile.AppTriageFilesData.Data } }; } } }
private static void MapKnownFields(AdmIntegrationMap map, PutIntegrationMapsRequest request) { map.AdmIntegrationMapID = request.AdmIntegrationMapID; map.AppObjectID = request.AppObjectID; map.FileLocation = request.FileLocation ?? ""; map.FileLocationType = request.FileLocationType; map.FileType = request.FileType; map.FileUserDefinedDelimiter = request.FileUserDefinedDelimiter; map.IsExport = request.IsExport; map.IsImport = request.IsImport; map.Name = request.MapName; map.MapType = (int)request.MapType; map.UseDoubleQuote = request.UseDoubleQuote; map.UseHeaderDetail = request.UseHeaderDetail; map.MapDateFormat = request.MapDateFormat; map.FileUserDefinedDelimiter = request.FileUserDefinedDelimiter; map.BeginOnLineNumber = request.BeginOnLine; }
public async Task <PutIntegrationMapsResponse> SaveIntegrationMap(PutIntegrationMapsRequest request) { var map = request.AdmIntegrationMapID != 0 ? await _repository.FindAsync <AdmIntegrationMap>(request.AdmIntegrationMapID) : new AdmIntegrationMap(); if (map == null) { Debug.WriteLine($"Integration map not found in database. Id: {request.AdmIntegrationMapID}"); throw new ApplicationException($"{request.AdmIntegrationMapID} integration map not found"); } var response = new PutIntegrationMapsResponse(); //automapper can handle all this stuff, however without proper testing I will just follow the old logic MapKnownFields(map, request); if (request.DeletePreviewFile && map.PreviewFile != null) { _repository.MarkForDeletion(map.PreviewFile); } await ProcessTriageFile(map, request); if (request.Columns != null && request.Columns.Any()) { ProcessColumns(map, request.Columns, request.UseHeaderDetail); } if (map.AdmIntegrationMapID == 0) { await _repository.CreateAsync(map); } else { await _repository.UpdateAsync(map); } response.IntegrationMapId = map.AdmIntegrationMapID; return(response); }
public async Task <ActionResult <PutIntegrationMapsResponse> > PutIntegrationMap(PutIntegrationMapsRequest request) { _logger.LogInformation($"{nameof(IntegrationMapsController)}.{nameof(PutIntegrationMap)} params: ({JsonConvert.SerializeObject(request, Formatting.Indented)})"); return(await _integrationMapsLogic.SaveIntegrationMap(request)); }