protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ConfigureAutoMapper.ConfigureMapping(); }
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)); }
/// <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" }); }); }
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); } }
/// <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(); }