Exemplo n.º 1
0
 /// <summary>
 /// Default constructor.
 /// </summary>
 public FileImportV5TBCController(IConfigurationStore config,
                                  ITransferProxyFactory transferProxyFactory,
                                  IFilterServiceProxy filterServiceProxy, ITRexImportFileProxy tRexImportFileProxy,
                                  IRequestFactory requestFactory)
     : base(config, transferProxyFactory, filterServiceProxy, tRexImportFileProxy, requestFactory)
 {
 }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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");
        }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
        /// <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);
        }