Exemplo n.º 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddAutoMapper(typeof(Startup));
            services.AddMediatR(typeof(Startup));

            services.AddCors();

            services.AddTransient <ICloudStorageService, CloudStorageService>();
            services.AddScoped <ContentContext>();
            services.AddScoped <LibraryContext>();
            services.AddSingleton <IQueueService>(opt =>
            {
                var queueService = AzureStorageQueueService.Create(Configuration["Azure:Storage:Events:ConnectionString"]);
                queueService.CreateQueue(Configuration["Azure:Storage:Queue:LogEventMPY:Name"]).Wait();

                return(queueService);
            });

            services.AddScoped(typeof(IPipelineBehavior <,>), typeof(EventLogBehavior <,>));

            services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
            .AddIdentityServerAuthentication(options =>
            {
                options.Authority = Configuration["MPY:IdentityServer:Authority"];
                options.ApiName   = "MPY.Content";
                if (Environment.IsDevelopment())
                {
                    options.RequireHttpsMetadata = false;
                }
            });

            services.AddAuthorization(options =>
            {
                options.AddPolicy("student", policyAdmin => policyAdmin.RequireClaim("role", "student"));
                options.AddPolicy("instructor", policyAdmin => policyAdmin.RequireClaim("role", "instructor"));
                options.AddPolicy("admin", policyAdmin => policyAdmin.RequireClaim("role", "admin"));
                options.AddPolicy("superadmin", policyAdmin => policyAdmin.RequireClaim("role", "superadmin"));
            });

            services.Configure <FormOptions>(options =>
            {
                options.MultipartBodyLengthLimit = 6000000000;
            });

            services.AddAntiforgery(options =>
            {
                // Set Cookie properties using CookieBuilder properties†.
                options.FormFieldName = "AntiforgeryFieldname";
                options.HeaderName    = "X-CSRF-TOKEN-HEADERNAME";
                options.SuppressXFrameOptionsHeader = false;
            });

            services.AddControllers(config =>
            {
                config.Filters.Add <GenerateAntiforgeryTokenCookieAttribute>();
                config.Filters.Add <DisableFormValueModelBindingAttribute>();
            }).SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_3_0);
        }
Exemplo n.º 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddAutoMapper(typeof(Startup));
            services.AddMediatR(typeof(Startup));

            services.AddCors();

            services.AddScoped <ProfileContext>();
            services.AddScoped <TribeContext>();
            services.AddSingleton <IQueueService>(opt =>
            {
                var queueService = AzureStorageQueueService.Create(Configuration["Azure:Storage:Events:ConnectionString"]);
                queueService.CreateQueue(Configuration["Azure:Storage:Queue:LogEventMPY:Name"]).Wait();

                return(queueService);
            });

            services.AddScoped(typeof(IPipelineBehavior <,>), typeof(EventLogBehavior <,>));

            services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
            .AddIdentityServerAuthentication(options =>
            {
                options.Authority = Configuration["MPY:IdentityServer:Authority"];
                options.ApiName   = "MPY.Profile";
                if (Environment.IsDevelopment())
                {
                    options.RequireHttpsMetadata = false;
                }
            });

            services.AddAuthorization(options =>
            {
                options.AddPolicy("student", policyAdmin => policyAdmin.RequireClaim("role", "student"));
                options.AddPolicy("instructor", policyAdmin => policyAdmin.RequireClaim("role", "instructor"));
                options.AddPolicy("admin", policyAdmin => policyAdmin.RequireClaim("role", "admin"));
                options.AddPolicy("superadmin", policyAdmin => policyAdmin.RequireClaim("role", "superadmin"));
            });
        }
Exemplo n.º 3
0
        static async Task Main(string[] args)
        {
            var azureStorageQueueService = new AzureStorageQueueService();
            var random       = new Random();
            var randomNumber = random.Next(9999);

            Console.WriteLine($"Start... {randomNumber}");

            while (true)
            {
                try
                {
                    var orderTicketString = await azureStorageQueueService.DequeueAsync("order-ticket-command-queue");

                    var orderTicket = JsonConvert.DeserializeObject <OrderTicketCommand>(orderTicketString);
                    Console.WriteLine($"Ticket com id:[{orderTicketString}] lido com sucesso! {randomNumber}");

                    Console.WriteLine(orderTicketString);

                    var ticketOrdered = new TicketOrderedEvent {
                        Id = orderTicket.Id
                    };
                    var ticketOrderedSerialized = JsonConvert.SerializeObject(ticketOrdered);
                    await azureStorageQueueService.EnqueueAsync("ticket-ordered-event-queue-group-b",
                                                                ticketOrderedSerialized);

                    Console.WriteLine($"Ticket ordered! {randomNumber}");
                }
                catch
                {
                }
                finally
                {
                    Console.WriteLine($"Wait... {randomNumber}");
                    await Task.Delay(200);
                }
            }
        }
Exemplo n.º 4
0
 public AddRegistrationCompletedEventToQueueCommandHandler(IConfiguration configuration)
 {
     _queueService = AzureStorageQueueService.Create(configuration["Azure:Storage:Events:ConnectionString"]);
     _queueService.CreateQueue(configuration["Azure:Storage:Queue:RegistrationEvent:Name"]);
 }