static DocumentConvert() { AsposeLicense.ActivateMemoryPatching(); }
public PresentationEx GetPresentation(string filePath) { AsposeLicense.SetPowerpointLicense(); return(new PresentationEx(filePath)); }
static string ParseArgs(string[] args) { CMDLineParser parser = new CMDLineParser(); CMDLineParser.Option outputOpt = parser.AddStringParameter("-o", "use file for output", false); CMDLineParser.Option licenseOpt = parser.AddStringParameter("-license", "", false); CMDLineParser.Option mainLogOpt = parser.AddStringParameter("-log", "", false); CMDLineParser.Option skipLoggingOpt = parser.AddBoolSwitch("-skip-logging", ""); CMDLineParser.Option verboseOpt = parser.AddStringParameter("-v", "verbose level: debug, info, error", false); CMDLineParser.Option columnsOnlyOpt = parser.AddBoolSwitch("-columnsonly", ""); CMDLineParser.Option checkJsonOpt = parser.AddBoolSwitch("-checkjson", ""); CMDLineParser.Option adapterOpt = parser.AddStringParameter("-adapter", "can be aspose,npoi, microsoft or prod, by default is aspose", false); CMDLineParser.Option maxRowsToProcessOpt = parser.AddStringParameter("-max-rows", "max rows to process from the input file", false); CMDLineParser.Option dumpColumnOpt = parser.AddStringParameter("-dump-column", "dump column identified by enum DeclarationField and exit", false); CMDLineParser.Option dumpHtmlOpt = parser.AddStringParameter("-dump-html", "dump table to html", false); CMDLineParser.Option tolokaFileNameOpt = parser.AddStringParameter("-toloka", "generate toloka html", false); CMDLineParser.Option skipRelativeOrphanOpt = parser.AddBoolSwitch("-skip-relative-orphan", ""); CMDLineParser.Option apiValidationOpt = parser.AddBoolSwitch("-api-validation", "validate JSON output by API call"); CMDLineParser.Option buildTrigramsOpt = parser.AddBoolSwitch("-build-trigrams", "build trigrams"); CMDLineParser.Option checkPredictorOpt = parser.AddBoolSwitch("-check-predictor", "calc predictor precision"); CMDLineParser.Option docFileIdOpt = parser.AddStringParameter("-docfile-id", "document id to initialize document/documentfile_id", false); CMDLineParser.Option convertedFileStorageUrlOpt = parser.AddStringParameter("-converted-storage-url", "document id to initialize document/documentfile_id for example http://disclosures.ru:8091, the default value is read from env variable DECLARATOR_CONV_URL", false); CMDLineParser.Option fioOnlyOpt = parser.AddBoolSwitch("-fio-only", ""); CMDLineParser.Option useDecimalRawNormalizationOpt = parser.AddBoolSwitch("-decimal-raw-normalization", "print raw floats in Russian traditional format"); CMDLineParser.Option disclosuresOpt = parser.AddBoolSwitch("-disclosures", "use disclosures output format: save sheet id to each each section, do not produce many output files but one"); CMDLineParser.Option versionOpt = parser.AddBoolSwitch("-version", "print version"); parser.AddHelpOption(); try { //parse the command line parser.Parse(args); } catch (Exception ex) { //show available options Console.Write(parser.HelpMessage()); Console.WriteLine(); Console.WriteLine("Error: " + ex.Message); throw; } if (versionOpt.isMatched) { PrintVersion(); System.Environment.Exit(0); } if (licenseOpt.isMatched) { AsposeLicense.SetLicense(licenseOpt.Value.ToString()); if (!AsposeLicense.Licensed) { throw new SmartParserException("Not valid aspose licence " + licenseOpt.Value.ToString()); } } Smart.Parser.Lib.Parser.InitializeSmartParser(); if (maxRowsToProcessOpt.isMatched) { MaxRowsToProcess = System.Convert.ToInt32(maxRowsToProcessOpt.Value.ToString()); } if (docFileIdOpt.isMatched) { UserDocumentFileId = System.Convert.ToInt32(docFileIdOpt.Value.ToString()); } if (disclosuresOpt.isMatched) { DeclarationSerializer.SmartParserJsonFormat = SmartParserJsonFormatEnum.Disclosures; } string logFileName = ""; if (mainLogOpt.isMatched) { logFileName = Path.GetFullPath(mainLogOpt.Value.ToString()); } Logger.Setup(logFileName, skipLoggingOpt.isMatched); if (outputOpt.isMatched) { OutFile = outputOpt.Value.ToString(); } Logger.LogLevel verboseLevel = Logger.LogLevel.Info; if (verboseOpt.isMatched) { switch (verboseOpt.Value.ToString()) { case "info": verboseLevel = Logger.LogLevel.Info; break; case "error": verboseLevel = Logger.LogLevel.Error; break; case "debug": verboseLevel = Logger.LogLevel.Debug; break; default: { throw new Exception("unknown verbose level " + verboseOpt.Value.ToString()); } } } Logger.SetLoggingLevel(verboseLevel); SkipRelativeOrphan = skipRelativeOrphanOpt.isMatched; ValidateByApi = apiValidationOpt.isMatched; if (adapterOpt.isMatched) { AdapterFamily = adapterOpt.Value.ToString(); if (AdapterFamily != "aspose" && AdapterFamily != "npoi" && AdapterFamily != "microsoft" && AdapterFamily != "prod") { throw new Exception("unknown adapter family " + AdapterFamily); } } if (dumpColumnOpt.isMatched) { ColumnToDump = (DeclarationField)Enum.Parse(typeof(DeclarationField), dumpColumnOpt.Value.ToString()); } if (dumpHtmlOpt.isMatched) { HtmlFileName = dumpHtmlOpt.Value.ToString(); } if (convertedFileStorageUrlOpt.isMatched) { IAdapter.ConvertedFileStorageUrl = convertedFileStorageUrlOpt.Value.ToString(); } if (tolokaFileNameOpt.isMatched) { TolokaFileName = tolokaFileNameOpt.Value.ToString(); } if (useDecimalRawNormalizationOpt.isMatched) { Smart.Parser.Lib.Parser.UseDecimalRawNormalization = true; } ColumnsOnly = columnsOnlyOpt.isMatched; ColumnOrdering.SearchForFioColumnOnly = fioOnlyOpt.isMatched; CheckJson = checkJsonOpt.isMatched; BuildTrigrams = buildTrigramsOpt.isMatched; ColumnPredictor.CalcPrecision = checkPredictorOpt.isMatched; var freeArgs = parser.RemainingArgs(); return(String.Join(" ", freeArgs).Trim(new char[] { '"' })); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Settings var cmsEndpoints = new CmsEndpoints(); Configuration.Bind("CmsEndpoints", cmsEndpoints); services.AddSingleton(cmsEndpoints); _portalSettings = new PortalSetting(); Configuration.Bind("PortalSettings", _portalSettings); services.AddSingleton(_portalSettings); var identitySetting = new IdentitySetting(); Configuration.Bind("Identity", identitySetting); services.AddSingleton(identitySetting); var heartbeatSetting = new HeartbeatSetting(); Configuration.Bind("HeartBeatSettings", heartbeatSetting); services.AddSingleton(heartbeatSetting); var verifoneSetting = new VerifoneSetting(); Configuration.Bind("Verifone", verifoneSetting); services.AddSingleton(verifoneSetting); var contactUsSetting = new ContactUsSetting { QueryAreas = new List <string>() }; Configuration.Bind("ContactUs", contactUsSetting); services.AddSingleton(contactUsSetting); var callbackSetting = new CallbackSetting(); Configuration.Bind("Callback", callbackSetting); services.AddSingleton(callbackSetting); var encryptionSetting = new EncryptionSetting(); Configuration.Bind("Encryption", encryptionSetting); services.AddSingleton(encryptionSetting); var openWrksSetting = new OpenWrksSetting(); Configuration.Bind("OpenWrksSetting", openWrksSetting); services.AddSingleton(openWrksSetting); var contentSecurityPolicyHeadersSetting = new ContentSecurityPolicyHeaderSetting(); Configuration.Bind("ContentSecurityPolicyHeader", contentSecurityPolicyHeadersSetting); services.AddSingleton(contentSecurityPolicyHeadersSetting); SetupThreadPoolForRedis(); services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => false; options.MinimumSameSitePolicy = SameSiteMode.None; }); // This is where the application state will be stored. services.AddStackExchangeRedisCache(options => { options.Configuration = _portalSettings.RedisConfiguration; }); // Data protection var redis = ConnectionMultiplexer.Connect(_portalSettings.RedisConfiguration); services.AddDataProtection() .PersistKeysToStackExchangeRedis(redis, "FinancialPortal-DataProtection-Keys"); services.AddHttpClient(); services.AddHttpContextAccessor(); services.AddAutoMapper(typeof(Startup)); services.AddCors(options => { options.AddDefaultPolicy(builder => { builder.SetIsOriginAllowedToAllowWildcardSubdomains(); }); }); services.AddSession(options => { // Since there are no link between the User's token and Session, setting this idle time out to an hour. options.IdleTimeout = TimeSpan.FromMinutes(20); options.Cookie.HttpOnly = true; if (!_hostingEnvironment.IsDevelopment()) { // On a non development environment we should be using HTTPS and hence cookies will demand https. options.Cookie.SecurePolicy = CookieSecurePolicy.None; } // Make the session cookie essential options.Cookie.IsEssential = true; }); services.AddMvc(options => { if (!_hostingEnvironment.IsDevelopment()) { options.RequireHttpsPermanent = true; } // Following code forces all actions in the controller to be secure by the default auth scheme. // Actions or Controller marked with AllowAnonymous will trigger auth scheme. var policy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); options.Filters.Add(new AuthorizeFilter(policy)); options.Filters.Add(typeof(SecurityHeadersAttribute)); options.Filters.Add(typeof(LoggingAsyncActionFilter)); options.Filters.Add(typeof(ExceptionLoggerFilter)); options.ModelBindingMessageProvider .SetAttemptedValueIsInvalidAccessor((value, displayName) => displayName.Contains("date of birth", StringComparison.CurrentCultureIgnoreCase) ? "Please enter your date of birth in the format DD/MM/YYYY" : $"The value '{WebUtility.HtmlEncode(WebUtility.UrlEncode(value))}' is not valid for {displayName}."); }) .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) .AddFluentValidation(fv => { fv.RegisterValidatorsFromAssemblyContaining <AmendDirectDebitVmValidator>(); fv.ConfigureClientsideValidation(clientSideValidation => { clientSideValidation.Add(typeof(RequiredIfValidator), (context, rule, validator) => new RequiredIfClientValidator(rule, validator)); }); }); services.AddOpenIdConnectAuth(new OpenIdAuthOptions { AuthorityEndpoint = identitySetting.Authority, // NO slash at the end ClientId = identitySetting.ClientId, ClientSecret = identitySetting.ClientSecret, Scopes = identitySetting.Scopes, ScopeId = identitySetting.ScopeId, ScopeSecret = identitySetting.ScopeSecret, RequireHttpsMetadata = false, RedisConfiguration = _portalSettings.RedisConfiguration, TokenType = identitySetting.TokenType }); services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies()); // Licenses AsposeLicense.SetLicenseFromFile("Aspose.Total.lic"); // PDF services.AddScoped <ITemplateProvider, EmbeddedTemplateProvider>(); services.AddScoped(typeof(IPdfGenerator <>), typeof(AsposePdfGenerator <>)); services.AddHttpContextAccessor(); services.AddTransient <TracingHandler>(); services.AddHttpClient <InternalIdentityTokenHandler>(); services.AddHttpClient <OpenWrksIdentityTokenHandler>(); services.AddHttpClient(); services.AddHttpClient <IRestClient, RestClient>() .AddHttpMessageHandler <TracingHandler>() .AddHttpMessageHandler <InternalIdentityTokenHandler>(); services.AddHttpClient("openwrks") .AddHttpMessageHandler <TracingHandler>() .AddHttpMessageHandler <OpenWrksIdentityTokenHandler>(); services.AddScoped <IPortalCryptoAlgorithm, PortalCryptoAlgorithm>(); services.AddScoped <IDistributedTokenProvider, DistributedTokenProvider>(); services.AddTransient <IUnreadDocumentsService, UnreadDocumentsService>(); services.AddScoped <IAccountsService, AccountsService>(); services.AddScoped <IMapperHelper, MapperHelper>(); services.AddHttpClient <IAnonymousAccessTokenProvider, AnonymousAccessTokenProvider>(); services.AddServiceMappings(_loggerFactory, Configuration); services.AddProcessMappings(_loggerFactory, Configuration); services.AddProxyMappings(_loggerFactory, _portalSettings); }
static PdfService() { AsposeLicense.Register(); }