static DocumentConvert()
 {
     AsposeLicense.ActivateMemoryPatching();
 }
 public PresentationEx GetPresentation(string filePath)
 {
     AsposeLicense.SetPowerpointLicense();
     return(new PresentationEx(filePath));
 }
Example #3
0
        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[] { '"' }));
        }
Example #4
0
        // 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();
 }