示例#1
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     ConfigureAutoMapper.ConfigureMapping();
 }
示例#2
0
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            ///
            ConfigureAutoMapper.Execute();
            ConfigureSchema.Execute();

            //Set IOC config
            var container = IOCConfig.InitializeClient(webAssembly: typeof(MTFS.Host.MVC.WebApiApplication).Assembly);

            GlobalConfiguration.Configuration.DependencyResolver =
                new AutofacWebApiDependencyResolver(container);

            GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
        }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ConfigureAutoMapper.Configure();

            //Autofac Configuration
            var builder = new ContainerBuilder();

            builder.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired();
            builder.RegisterModule(new ServiceModule());
            builder.RegisterModule(new RepositoryModule());
            builder.RegisterModule(new EFModule());

            var container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
示例#4
0
        /// <summary>
        /// This method gets called by the runtime. Use this method to add services to the container.
        /// </summary>
        public void ConfigureServices(IServiceCollection services)
        {
            ConfigureAutoMapper.Initialize();

            services.AddDbContext <DataContext>(x => x.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddCors();
            services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());

            services.AddScoped <IUnitOfWork, UnitOfWork>();

            services.AddScoped <IRepository <Cargo>, Repository <Cargo> >();
            services.AddScoped <IRepository <Empresa>, Repository <Empresa> >();
            services.AddScoped <IRepository <FuncionarioCargo>, Repository <FuncionarioCargo> >();
            services.AddScoped <IFuncionarioRepository, FuncionarioRepository>();

            services.AddScoped <IConsultarFuncionarioCargo, ConsultarFuncionarioCargo>();
            services.AddScoped <IConsultaFuncionario, ConsultaFuncionario>();

            services.AddScoped <IGravarEmpresaService, GravarEmpresaService>();
            services.AddScoped <IRemoverEmpresaService, RemoverEmpresaService>();
            services.AddScoped <IGravarCargoService, GravarCargoService>();
            services.AddScoped <IRemoverCargoService, RemoverCargoService>();
            services.AddScoped <IGravarFuncionarioService, GravarFuncionarioService>();
            services.AddScoped <IRemoverFuncionarioService, RemoverFuncionarioService>();
            services.AddScoped <IGravarFuncionarioCargoService, GravarFuncionarioCargoService>();

            services.AddScoped <INotificationContext, NotificationContext>();

            services.AddSwaggerGen(c => {
                c.SwaggerDoc("v1",
                             new OpenApiInfo
                {
                    Title       = "OnBoardingSIGDB1",
                    Version     = "v1",
                    Description = "OnBoardingSIGDB1"
                });
            });
        }
示例#5
0
        static void Main(string[] args)
        {
            try
            {
                ConfigureAutoMapper.Configure();

                var cmd  = 0;
                var rand = new Random();
                PopulateData.Populate();
                while (true)
                {
                    Console.WriteLine("Escolha a estratrégia: ");
                    Console.WriteLine("Linq");
                    Console.WriteLine("1 - Batch");
                    Console.WriteLine("2 - Eager Load (Funciona apenas com Collection do tipo ISet)");
                    Console.WriteLine("3 - Lazy Load\n");

                    Console.WriteLine("QueryOver");
                    Console.WriteLine("4 - Batch");
                    Console.WriteLine("5 - Eager Load (Funciona apenas com Collection do tipo ISet)");
                    Console.WriteLine("6 - Lazy Load\n");

                    Console.WriteLine("Hql");
                    Console.WriteLine("7 - Batch");
                    Console.WriteLine("8 - Eager Load (Funciona apenas com Collection do tipo ISet)");
                    Console.WriteLine("9 - Lazy Load\n");

                    Console.WriteLine("Criteria (Estratégias Fetch no mapeamento funcionam nesse caso)");
                    Console.WriteLine("10 - Batch");
                    Console.WriteLine("11 - Eager Load (Funciona apenas com Collection do tipo ISet)");
                    Console.WriteLine("12 - Lazy Load\n");

                    Console.WriteLine("AutoMapper");
                    Console.WriteLine("13 - Mapper para Nome, Rua, Numero, Tipo");
                    Console.WriteLine("14 - Mapper para Nome");
                    Console.WriteLine("15 - Mapper para 2 listas");
                    Console.WriteLine("16 - Mapper para 1 listas Many to Many\n");

                    Console.WriteLine("Extra");
                    Console.WriteLine("17 - Get in Session");
                    Console.WriteLine("18 - Paginação com relacionamento one to many usando query over");
                    Console.WriteLine("19 - Paginação com relacionamento one to many usando linq\n");


                    var result = Console.ReadLine();

                    if (int.TryParse(result, out cmd))
                    {
                        if (cmd < 1)
                        {
                            break;
                        }
                        var id = rand.Next(1, 10);
                        switch (cmd)
                        {
                        case 1:
                            LinqStrategy.Batch(id);
                            break;

                        case 2:
                            LinqStrategy.EagerLoad(id);
                            break;

                        case 3:
                            LinqStrategy.LazyLoad(id);
                            break;

                        case 4:
                            QueryOverStrategy.Batch(id);
                            break;

                        case 5:
                            QueryOverStrategy.EagerLoad(id);
                            break;

                        case 6:
                            QueryOverStrategy.LazyLoad(id);
                            break;

                        case 7:
                            HqlStrategy.Batch(id);
                            break;

                        case 8:
                            HqlStrategy.EagerLoad(id);
                            break;

                        case 9:
                            HqlStrategy.LazyLoad(id);
                            break;

                        case 10:
                            CriteriaStrategy.Batch(id);
                            break;

                        case 11:
                            CriteriaStrategy.EagerLoad(id);
                            break;

                        case 12:
                            CriteriaStrategy.LazyLoad(id);
                            break;

                        case 13:
                            AutoMapperStrategy.PessoaEnderecoTelefoneTipo(id);
                            break;

                        case 14:
                            AutoMapperStrategy.Pessoa(id);
                            break;

                        case 15:
                            AutoMapperStrategy.PessoaWithCollectionsSet(id);
                            break;

                        case 16:
                            AutoMapperStrategy.PessoaWithManyToManySet(id);
                            break;

                        case 17:
                            ExtraStrategy.SessionGet(id);
                            break;

                        case 18:
                            ExtraStrategy.PaginationWithQueryOverWithCollectionEagerFetch();
                            break;

                        case 19:
                            ExtraStrategy.PaginationWithLinqWithCollectionEagerFetch();
                            break;

                        default:
                            Console.WriteLine("Nenhuma opção selecionada");
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }

                    Console.WriteLine("Tecle qualquer tecla para continuar...");
                    Console.ReadLine();
                    Console.Clear();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
示例#6
0
        /// <summary>
        /// This method gets called by the runtime. Use this method to add services to the container.
        /// </summary>
        /// <param name="services"></param>
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            // ===== Add Identity ========
            services.AddIdentity <User, Role>(
                c => { c.User.RequireUniqueEmail = true; }
                )
            .AddEntityFrameworkStores <ConfHallDBContext>();

            services.AddAuthentication(x =>
            {
                x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(options =>
            {
                options.SaveToken = true;
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer           = true,
                    ValidateAudience         = true,
                    ValidateLifetime         = true,
                    ValidateIssuerSigningKey = true,

                    ValidIssuer    = Configuration["Tokens:Issuer"],
                    ValidAudiences = new List <string>
                    {
                        "localhost"
                    },
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Tokens:Key"]))
                };
            });
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                                  builder => builder.AllowAnyOrigin()
                                  .AllowAnyMethod()
                                  .AllowAnyHeader()
                                  .AllowCredentials());
            });

            #region Services

            services.AddTransient <IPasswordHasher <User>, HashingService>();
            services.AddTransient <IUserService, UserService>();
            services.AddTransient <IAccountService, AccountService>();
            services.AddTransient <IHallService, HallService>();
            services.AddTransient <ICustomerService, CustomerService>();
            services.AddTransient <IReservationService, ReservationService>();

            #endregion
            #region Repositories
            services.AddTransient <IUserRepository, UserRepository>();
            services.AddTransient <IHallRepository, HallRepository>();
            services.AddTransient <ICustomerRepository, CustomerRepository>();
            services.AddTransient <IReservationRepository, ReservationRepository>();
            #endregion

            ConfigureAutoMapper.Now();

            services.AddSwaggerGen(options =>
            {
                options.DescribeAllEnumsAsStrings();
                options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info
                {
                    Title          = "ConfHall HTTP API",
                    Version        = "v1",
                    Description    = "The Conference Hall Restful API ",
                    TermsOfService = "Terms Of Service"
                });
                options.AddSecurityDefinition("Bearer", new ApiKeyScheme
                {
                    Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                    Name        = "Authorization",
                    In          = "header",
                    Type        = "apiKey"
                });

                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                options.IncludeXmlComments(xmlPath);
                options.DescribeAllEnumsAsStrings();
            });

            services.AddDbContext <ConfHallDBContext>(options =>
            {
                options.UseLazyLoadingProxies().UseSqlServer(Configuration["ConnectionStrings:SQLServer"],
                                                             sqlServerOptionsAction: sqlOptions =>
                {
                    sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name);
                    sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
                });
            });

            services.AddMvc();
        }