/// <summary> /// Default constructor. /// </summary> public FileImportV5TBCController(IConfigurationStore config, ITransferProxyFactory transferProxyFactory, IFilterServiceProxy filterServiceProxy, ITRexImportFileProxy tRexImportFileProxy, IRequestFactory requestFactory) : base(config, transferProxyFactory, filterServiceProxy, tRexImportFileProxy, requestFactory) { }
/// <summary> /// Notify TRex of updated DESIGN file /// </summary> public static async Task <ContractExecutionResult> NotifyTRexUpdateFile(Guid projectUid, ImportedFileType importedFileType, string filename, Guid importedFileUid, DateTime?surveyedUtc, ILogger log, IHeaderDictionary headers, IServiceExceptionHandler serviceExceptionHandler, ITRexImportFileProxy tRexImportFileProxy) { var result = new ContractExecutionResult(); string fullFileName = filename; if (importedFileType == ImportedFileType.SurveyedSurface && surveyedUtc != null) { fullFileName = fullFileName.IncludeSurveyedUtcInName(surveyedUtc.Value); } var request = new DesignRequest(projectUid, importedFileType, fullFileName, importedFileUid, surveyedUtc); try { result = await tRexImportFileProxy .UpdateFile(request, headers) .ConfigureAwait(false); } catch (Exception e) { log.LogError(e, $"NotifyTRexAddFile UpdateFile in Trex gateway failed with exception. request:{JsonConvert.SerializeObject(request)} filename: {fullFileName}"); serviceExceptionHandler.ThrowServiceException(HttpStatusCode.InternalServerError, 57, "tRexImportFile.UpdateFile", e.Message); } return(result); }
/// <summary> /// Notify TRex of new DESIGN file /// </summary> /// <returns></returns> public static async Task <ContractExecutionResult> NotifyTRexAddFile(Guid projectUid, ImportedFileType importedFileType, string filename, Guid importedFileUid, DateTime?surveyedUtc, ILogger log, IHeaderDictionary headers, IServiceExceptionHandler serviceExceptionHandler, ITRexImportFileProxy tRexImportFileProxy, IProjectRepository projectRepo ) { var result = new ContractExecutionResult(); string fullFileName = filename; if (importedFileType == ImportedFileType.SurveyedSurface && surveyedUtc != null) { fullFileName = fullFileName.IncludeSurveyedUtcInName(surveyedUtc.Value); } var request = new DesignRequest(projectUid, importedFileType, fullFileName, importedFileUid, surveyedUtc); try { result = await tRexImportFileProxy .AddFile(request, headers) .ConfigureAwait(false); } catch (Exception e) { log.LogError(e, $"NotifyTRexAddFile AddFile in Trex gateway failed with exception. request:{JsonConvert.SerializeObject(request)} filename: {fullFileName}"); await ImportedFileRequestDatabaseHelper.DeleteImportedFileInDb (projectUid, importedFileUid, serviceExceptionHandler, projectRepo, true) .ConfigureAwait(false); serviceExceptionHandler.ThrowServiceException(HttpStatusCode.InternalServerError, 57, "tRexImportFile.AddFile", e.Message); } log.LogDebug( $"NotifyTRexAddFile: projectUid: {projectUid}, filename: {filename} importedFileUid {importedFileUid}. TRex returned code: {result?.Code ?? -1}."); if (result != null && result.Code != 0) { log.LogError( $"NotifyTRexAddFile AddFile in Trex failed. projectUid: {projectUid}, filename: {filename} importedFileUid {importedFileUid}. Reason: {result?.Code ?? -1} {result?.Message ?? "null"}."); await ImportedFileRequestDatabaseHelper.DeleteImportedFileInDb(projectUid, importedFileUid, serviceExceptionHandler, projectRepo, true) .ConfigureAwait(false); serviceExceptionHandler.ThrowServiceException(HttpStatusCode.InternalServerError, 114, result.Code.ToString(), result.Message); } return(result); }
/// <summary> /// Initializes a new instance of the <see cref="FileImportBaseController"/> class. /// </summary> public FileImportBaseController(IConfigurationStore config, ITransferProxyFactory transferProxyFactory, IFilterServiceProxy filterServiceProxy, ITRexImportFileProxy tRexImportFileProxy, IRequestFactory requestFactory) { this._requestFactory = requestFactory; this.persistantTransferProxyFactory = transferProxyFactory; //.NewProxy(TransferProxyType.DesignImport); this.filterServiceProxy = filterServiceProxy; this.tRexImportFileProxy = tRexImportFileProxy; ConfigStore = config; FileSpaceId = ConfigStore.GetValueString("TCCFILESPACEID"); DataOceanRootFolderId = ConfigStore.GetValueString("DATA_OCEAN_ROOT_FOLDER_ID"); }
public void Initialise(ILogger logger, IConfigurationStore configStore, IServiceExceptionHandler serviceExceptionHandler, string customerUid, string userId = null, string userEmailAddress = null, IHeaderDictionary headers = null, IProductivity3dV1ProxyCoord productivity3dV1ProxyCoord = null, IProductivity3dV2ProxyCompaction productivity3dV2ProxyCompaction = null, ITransferProxyFactory persistantTransferProxyFactory = null, IFilterServiceProxy filterServiceProxy = null, ITRexImportFileProxy tRexImportFileProxy = null, IProjectRepository projectRepo = null, IHttpContextAccessor httpContextAccessor = null, IDataOceanClient dataOceanClient = null, ITPaaSApplicationAuthentication authn = null, ISchedulerProxy schedulerProxy = null, IPegasusClient pegasusClient = null, ICwsProjectClient cwsProjectClient = null, ICwsDeviceClient cwsDeviceClient = null, ICwsProfileSettingsClient cwsProfileSettingsClient = null, IWebRequest gracefulClient = null, INotificationHubClient notificationHubClient = null) { log = logger; this.configStore = configStore; this.serviceExceptionHandler = serviceExceptionHandler; this.customerUid = customerUid; this.userId = userId; this.userEmailAddress = userEmailAddress; this.customHeaders = headers; this.productivity3dV1ProxyCoord = productivity3dV1ProxyCoord; this.productivity3dV2ProxyCompaction = productivity3dV2ProxyCompaction; this.persistantTransferProxyFactory = persistantTransferProxyFactory; this.filterServiceProxy = filterServiceProxy; this.tRexImportFileProxy = tRexImportFileProxy; this.projectRepo = projectRepo; this.httpContextAccessor = httpContextAccessor; this.dataOceanClient = dataOceanClient; this.authn = authn; this.schedulerProxy = schedulerProxy; this.pegasusClient = pegasusClient; this.cwsProjectClient = cwsProjectClient; this.cwsDeviceClient = cwsDeviceClient; this.cwsProfileSettingsClient = cwsProfileSettingsClient; this.gracefulClient = gracefulClient; this.notificationHubClient = notificationHubClient; }
/// <summary> /// Builds this instance for specified executor type. /// </summary> /// <typeparam name="TExecutor">The type of the executor.</typeparam> public static TExecutor Build <TExecutor>( ILoggerFactory logger, IConfigurationStore configStore, IServiceExceptionHandler serviceExceptionHandler, string customerUid = null, string userId = null, string userEmailAddress = null, IHeaderDictionary headers = null, IProductivity3dV1ProxyCoord productivity3dV1ProxyCoord = null, IProductivity3dV2ProxyCompaction productivity3dV2ProxyCompaction = null, ITransferProxyFactory persistantTransferProxyFactory = null, IFilterServiceProxy filterServiceProxy = null, ITRexImportFileProxy tRexImportFileProxy = null, IProjectRepository projectRepo = null, IHttpContextAccessor httpContextAccessor = null, IDataOceanClient dataOceanClient = null, ITPaaSApplicationAuthentication authn = null, ISchedulerProxy schedulerProxy = null, IPegasusClient pegasusClient = null, ICwsProjectClient cwsProjectClient = null, ICwsDeviceClient cwsDeviceClient = null, ICwsProfileSettingsClient cwsProfileSettingsClient = null, IWebRequest gracefulClient = null, INotificationHubClient notificationHubClient = null ) where TExecutor : RequestExecutorContainer, new() { ILogger log = null; if (logger != null) { log = logger.CreateLogger <RequestExecutorContainer>(); } var executor = new TExecutor(); executor.Initialise( log, configStore, serviceExceptionHandler, customerUid, userId, userEmailAddress, headers, productivity3dV1ProxyCoord, productivity3dV2ProxyCompaction, persistantTransferProxyFactory, filterServiceProxy, tRexImportFileProxy, projectRepo, httpContextAccessor, dataOceanClient, authn, schedulerProxy, pegasusClient, cwsProjectClient, cwsDeviceClient, cwsProfileSettingsClient, gracefulClient, notificationHubClient ); return(executor); }