// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            Settings settings = new Settings(Configuration);

            services.AddSingleton <IDalSettings>(settings);

            DalModule.Register(services);
            BlModule.Register(services);

            services
            .AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultSignInScheme       = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = CookieAuthenticationDefaults.AuthenticationScheme;
            })
            .AddCookie(options =>
            {
                options.LoginPath  = "/api/account/LogIn";
                options.LogoutPath = "/api/account/LogOff";
            });

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = "wwwroot";
            });

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
        }
Esempio n. 2
0
        public static QuickSearchResult LoadSingle(long userId, string entity, string id, string parameters = "")
        {
            var item = new DdlVm.DdlOption();

            switch (entity)
            {
            //case "LOCATION": item = BlLocation.LoadQs(userId, Convert.ToInt64(id)); break;
            //case "LOCATIONEMPLOYEE": item = BlLocation.LoadLocationEmployeeQs(userId, id); break;
            case "EMPLOYEE": item = BlEmployee.LoadQs(userId, Convert.ToInt64(id), parameters); break;

            //case "PRODUCT": item = BlProduct.LoadQs(userId, Convert.ToInt64(id)); break;
            //case "SUPPLIER": item = BlSupplier.LoadQs(userId, Convert.ToInt64(id)); break;
            case "USER": item = BlUser.LoadQs(userId, Convert.ToInt64(id)); break;

            case "MODULE": item = BlModule.LoadQs(userId, id); break;

            case "CODE": item = BlCode.LoadQs(userId, id, parameters); break;
                //case "WAREHOUSE": item = BlWarehouse.LoadQs(userId, Convert.ToInt64(id), parameters); break;
                //case "LOCATIONMORAL": item = BlLocationMoral.LoadQs(userId, Convert.ToInt64(id), parameters); break;
                //case "STOCK": item = BlStock.LoadQs(userId, Convert.ToInt64(id)); break;
            }

            var toRet = new QuickSearchResult
            {
                id   = item.value,
                text = item.label
            };

            return(toRet);
        }
Esempio n. 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            Settings settings = new Settings(Configuration);

            services.AddSingleton <IDalSettings>(settings);
            services.AddSingleton <IWebApiSettings>(settings);

            DalModule.Register(services);
            BlModule.Register(services);
            WebApiModule.Register(services);

            Mapper.Initialize(config =>
            {
                DalMappings.Initialize(config);
                BlMappings.Initialize(config);
                WebApiMappings.Initialize(config);
            });

            // ===== Add Jwt Authentication ========
            JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); // => remove default claims

            services
            .AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultScheme             = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(cfg =>
            {
                cfg.RequireHttpsMetadata = false;
                cfg.SaveToken            = true;

                cfg.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidIssuer      = settings.JwtIssuer,
                    ValidAudience    = settings.JwtIssuer,
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(settings.JwtKey)),
                    ClockSkew        = TimeSpan.Zero      // remove delay of token when expire
                };
            });

            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                                  builder => builder.AllowAnyOrigin()
                                  .AllowAnyMethod()
                                  .AllowAnyHeader()
                                  .AllowCredentials());
            });

            services.AddMvc();

            services.AddSingleton <BackgroundJobsRegistry>();
        }
Esempio n. 4
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            MapperConfig.Initialize();
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            NinjectModule orderModule   = new UiModule();
            NinjectModule serviceModule = new BlModule();
            var           kernel        = new StandardKernel(orderModule, serviceModule);

            kernel.Unbind <ModelValidatorProvider>();
            DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
        }
Esempio n. 5
0
        public static QuickSearchPagedResult LoadSearch(long userId, string entity, string parameters, string searchTerm, int pageSize, int pageNum)
        {
            List <DdlVm.DdlOption> items = null;
            long count = 0;

            switch (entity)
            {
            //case "LOCATION": items = BlLocation.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;
            //case "LOCATIONEMPLOYEE": items = BlLocation.LoadLocationEmployeeQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;
            case "EMPLOYEE": items = BlEmployee.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;

            //case "PRODUCT": items = BlProduct.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;
            //case "SUPPLIER": items = BlSupplier.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;
            case "USER": items = BlUser.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;

            case "MODULE": items = BlModule.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;

            case "CODE": items = BlCode.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;
                //case "WAREHOUSE": items = BlWarehouse.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;
                //case "LOCATIONMORAL": items = BlLocationMoral.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;
                //case "STOCK": items = BlStock.LoadQs(userId, parameters, searchTerm, pageSize, pageNum, out count); break;
            }

            var toRet = new QuickSearchPagedResult {
                total = count
            };

            if (items != null)
            {
                foreach (var item in items)
                {
                    toRet.results.Add(new QuickSearchResult
                    {
                        id   = item.value,
                        text = item.label
                    });
                }
            }
            return(toRet);
        }
Esempio n. 6
0
        public static void Log(long userId, string moduleId, string action, string text, object[] args = null)
        {
            //Leave if module logging not enabled
            var module = BlModule.LoadSingle(userId, moduleId);

            if (module != null)
            {
                if (!module.EnableLogging)
                {
                    return;
                }
            }

            var log = new Log
            {
                Module = module,
                Action = action,
                Text   = BlDescription.GetDescription(Enumerations.DescriptionResources.Exceptions, text, 1, true) ?? text
            };

            if (args != null)
            {
                try
                {
                    log.Text = string.Format(log.Text, args);
                }
                catch (Exception)
                {
                    // ignored
                }
            }

            var blLog = new BlLog();

            blLog.Create(userId, log);
        }
Esempio n. 7
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <IDalSettings, DalSettings>();
            services.AddSingleton <IBookingSettings, BookingSettings>();
            services.AddTransient <IUserInfo, UserInfo>();
            services.AddSingleton <IAccountUpdatingSettings, AccountUpdatingSettings>();
            services.AddSingleton <IProfileCachingSettings, ProfileCachingSettings>();

            FrontendFilesSettings frontendFilesSettings = new FrontendFilesSettings(Configuration);

            services.AddSingleton <IFrontendFilesSettings>(frontendFilesSettings);

            FilesUploadingSettings filesUploadingSettings = new FilesUploadingSettings(Configuration);

            services.AddSingleton <IFilesUploadingSettings, FilesUploadingSettings>();
            services.AddSingleton <IPaginationSettings, PaginationSettings>();

            CorsSettings corsSettings = new CorsSettings(Configuration);

            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                                  builder =>
                {
                    builder.WithOrigins(corsSettings.AllowedOrigins)
                    .AllowAnyHeader()
                    .AllowAnyMethod();
                });
            });

            MapperConfiguration mappingConfig = new MapperConfiguration(config =>
            {
                WebAPIMapping.Initialize(config);
                BlMapping.Initialize(config);
                DalMapping.Initialize(config);
            });

            mappingConfig.CompileMappings();

            services.AddSingleton <IMapper>(mappingConfig.CreateMapper());

            services.AddControllers();

            DalModule.Register(services);
            BlModule.Register(services);
            WebAPIModule.Register(services);

            Serilog.ILogger logger = new LoggerConfiguration()
                                     .ReadFrom.Configuration(Configuration)
                                     .CreateLogger();

            services.AddLogging((builder) =>
            {
                builder.AddSerilog(logger, dispose: true);
            });

            JwtSettings jwtSettings = new JwtSettings(Configuration);

            services.AddSingleton <IJwtSettings>(jwtSettings);

            byte[] key = Encoding.UTF8.GetBytes(jwtSettings.Secret);
            services.AddAuthentication(x =>
            {
                x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(x =>
            {
                x.RequireHttpsMetadata      = false;
                x.SaveToken                 = false;
                x.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(key),
                    ValidateIssuer           = true,
                    ValidIssuer      = jwtSettings.Issuer,
                    ValidateAudience = true,
                    ValidAudiences   = corsSettings.AllowedOrigins
                };
            });

            services.AddHttpContextAccessor();

            services.Configure <FormOptions>(options =>
            {
                // converting to bytes
                options.MultipartBodyLengthLimit = filesUploadingSettings.MaxMbSize * 1024 * 1024;
            });

            services.AddMemoryCache();

            services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = Path.Combine(frontendFilesSettings.StoragePath);
            });
        }