Beispiel #1
0
        public PingTest()
        {
            var loggerFactortMoq = new Mock <ILoggerFactory>().Object;

            _logger = loggerFactortMoq.CreateLogger <PingController>();

            _operationalUnit = new OperationalUnit(
                environment: "Mock",
                assembly: $"{Environment.MachineName} {this.GetType().Assembly.FullName} V{this.GetType().Assembly.GetName().Version}");

            _localConfigurationMock = new Mock <MiddlewareConfiguration>().Object;

            _publisherMock = new Mock <IMessageCommand>().Object;

            _mediatorMock = new Mock <IMediator>().Object;

            _ping = new PingController(_logger, _mediatorMock, _publisherMock, _operationalUnit, _localConfigurationMock);

            _mediatorMock = new Mock <IMediator>().Object;

            _vehicleId   = Guid.NewGuid().ToString();
            _pingRequest = new PingRequest {
                Status = VehicleStatus.active, Message = "new vehicle!"
            };
        }
        public void Arrange()
        {
            _authenticationConfiguration = new AuthenticationConfiguration()
            {
                ClientId      = "some client id",
                ClientSecret  = "some secret",
                Resource      = "http://this.doesnt.exist.local/abc",
                TokenEndpoint = "https://somecorp.local/tokens",
            };

            _restClientMock = new Mock <IRestClient>();
            _restClientMock.Setup(c => c.ExecuteTaskAsync(It.IsAny <IRestRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new RestResponse
            {
                StatusCode     = HttpStatusCode.Accepted,
                ResponseStatus = ResponseStatus.Completed,
            });

            _loggerMock = new Mock <ILoggerWrapper>();

            _configuration = new MiddlewareConfiguration
            {
                BaseUrl = "https://middleware.unit.tests",
            };

            _publisher = new MiddlewareEventPublisher(
                _authenticationConfiguration,
                _configuration,
                _restClientMock.Object,
                _loggerMock.Object);

            _cancellationToken = new CancellationToken();
        }
Beispiel #3
0
        public Startup(ILoggerFactory logger, IHostingEnvironment environemnt, IConfiguration configuration)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(environemnt.ContentRootPath)
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                          .AddEnvironmentVariables();

            _configuration = builder.Build();

            _environemnt = environemnt;

            _logger = logger
                      .AddConsole()
                      .AddDebug()
                      .AddFile("Logs/Startup-{Date}.txt", isJson: true)
                      .CreateLogger <Startup>();

            //local system configuration
            _systemLocalConfiguration = new ServiceConfiguration().Create(new Dictionary <string, string>()
            {
                { nameof(_systemLocalConfiguration.CacheServer), Configuration.GetValue <string>(Identifiers.CacheServer) },
                { nameof(_systemLocalConfiguration.VehiclesCacheDB), Configuration.GetValue <string>(Identifiers.CacheDBVehicles) },
                { nameof(_systemLocalConfiguration.EventDbConnection), Configuration.GetValue <string>(Identifiers.EventDbConnection) },
                { nameof(_systemLocalConfiguration.MessagesMiddleware), Configuration.GetValue <string>(Identifiers.MessagesMiddleware) },
                { nameof(_systemLocalConfiguration.MiddlewareExchange), Configuration.GetValue <string>(Identifiers.MiddlewareExchange) },
                { nameof(_systemLocalConfiguration.MessageSubscriberRoute), Configuration.GetValue <string>(Identifiers.MessageSubscriberRoutes) },
                { nameof(_systemLocalConfiguration.MessagesMiddlewareUsername), Configuration.GetValue <string>(Identifiers.MessagesMiddlewareUsername) },
                { nameof(_systemLocalConfiguration.MessagesMiddlewarePassword), Configuration.GetValue <string>(Identifiers.MessagesMiddlewarePassword) },
            });
        }
Beispiel #4
0
 public void SetUp()
 {
     next                      = Substitute.For <RequestDelegate>();
     configuration             = new MiddlewareConfiguration();
     indexHtmlLoader           = Substitute.For <IndexHtmlLoader>();
     loggerFactory             = Substitute.For <ILoggerFactory>();
     webHostEnvironment        = Substitute.For <IWebHostEnvironment>();
     middleware                = new BacklightMiddleware(next, configuration, indexHtmlLoader, webHostEnvironment, loggerFactory);
     httpContext               = new DefaultHttpContext();
     httpContext.Response.Body = new MemoryStream();
 }
Beispiel #5
0
 public PingController(
     ILogger <PingController> logger,
     IMediator mediator,
     IMessageCommand messagePublisher,
     IOperationalUnit operationalUnit,
     MiddlewareConfiguration middlewareConfiguration)
 {
     _logger                  = logger;
     _mediator                = mediator;
     _messagePublisher        = messagePublisher;
     _correlationId           = Guid.NewGuid();
     _operationalUnit         = operationalUnit;
     _middlewareConfiguration = middlewareConfiguration;
 }
 public CustomerPublisher(
     ControllerContext controller,
     DomainModels.Business.CustomerDomain.Customer model,
     IMessageCommand publisher,
     MiddlewareConfiguration middlewareConfiguration,
     Guid correlationId,
     IOperationalUnit operationalUnit)
 {
     _controller         = controller;
     _model              = model;
     _correlationId      = correlationId;
     _operationalUnit    = operationalUnit;
     _publisher          = publisher;
     _localConfiguration = middlewareConfiguration;
 }
Beispiel #7
0
 public VehicleRequest(
     ControllerContext controller,
     VehicleFilter model,
     IMessageRequest <VehicleFilterModel, IEnumerable <DomainModels.Business.VehicleDomain.Vehicle> > request,
     MiddlewareConfiguration middlewareConfiguration,
     Guid correlationId,
     IOperationalUnit operationalUnit)
 {
     _controller              = controller;
     _model                   = model;
     _correlationId           = correlationId;
     _operationalUnit         = operationalUnit;
     _request                 = request;
     _middlewareConfiguration = middlewareConfiguration;
 }
Beispiel #8
0
 public VehiclePublisher(
     ControllerContext controller,
     DomainModels.Business.VehicleDomain.Vehicle model,
     IMessageCommand publisher,
     MiddlewareConfiguration middlewareConfiguration,
     Guid correlationId,
     IOperationalUnit operationalUnit)
 {
     _controller              = controller;
     _model                   = model;
     _correlationId           = correlationId;
     _operationalUnit         = operationalUnit;
     _publisher               = publisher;
     _middlewareConfiguration = middlewareConfiguration;
 }
Beispiel #9
0
 public VehicleController(
     ILogger <VehicleController> logger,
     IMediator mediator,
     IMessageCommand messagePublisher,
     IMessageRequest <VehicleFilterModel, IEnumerable <DomainModels.Business.VehicleDomain.Vehicle> > messageRequest,
     IOperationalUnit operationalUnit,
     MiddlewareConfiguration middlewareConfiguration)
 {
     _logger                  = logger;
     _mediator                = mediator;
     _messagePublisher        = messagePublisher;
     _messageRequest          = messageRequest;
     _correlationId           = Guid.NewGuid();
     _operationalUnit         = operationalUnit;
     _middlewareConfiguration = middlewareConfiguration;
 }
 public TrackingController(
     ILogger <TrackingController> logger,
     IMediator mediator,
     ICacheProvider cache,
     IMessageRequest <TrackingFilterModel, IEnumerable <DomainModels.Business.TrackingDomain.Tracking> > messageQuery,
     IOperationalUnit opertationalUnit,
     MiddlewareConfiguration middlewareConfiguration)
 {
     _logger                  = logger;
     _mediator                = mediator;
     _redisCache              = cache;
     _messageQuery            = messageQuery;
     _correlationId           = Guid.NewGuid();
     _opertationalUnit        = opertationalUnit;
     _middlewareConfiguration = middlewareConfiguration;
 }
Beispiel #11
0
 public TrackingRequest(
     ControllerContext controller,
     TrackingFilter model,
     ICacheProvider cache,
     IMessageRequest <TrackingFilterModel, IEnumerable <DomainModels.Business.TrackingDomain.Tracking> > messageQuery,
     MiddlewareConfiguration middlewareConfiguration,
     Guid correlationId,
     IOperationalUnit operationalUnit)
 {
     _cache                   = cache;
     _controller              = controller;
     _correlationId           = correlationId;
     _model                   = model;
     _messageQuery            = messageQuery;
     _opertationalUnit        = operationalUnit;
     _middlewareConfiguration = middlewareConfiguration;
 }
Beispiel #12
0
        public MiddlewareEventPublisher(
            AuthenticationConfiguration authenticationConfiguration,
            MiddlewareConfiguration configuration,
            IRestClient restClient,
            ILoggerWrapper logger)
        {
            _restClient         = restClient;
            _restClient.BaseUrl = new Uri(configuration.BaseUrl, UriKind.Absolute);
            if (!string.IsNullOrEmpty(configuration.SubscriptionKey))
            {
                _restClient.DefaultParameters.Add(new Parameter("Ocp-Apim-Subscription-Key", configuration.SubscriptionKey,
                                                                ParameterType.HttpHeader));
            }

            _restClient.Authenticator = new OAuth2ClientCredentialsAuthenticator(
                authenticationConfiguration.TokenEndpoint,
                authenticationConfiguration.ClientId,
                authenticationConfiguration.ClientSecret,
                authenticationConfiguration.Resource);

            _logger = logger;
        }
Beispiel #13
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddIdentity <AppUser, IdentityRole>()
            .AddEntityFrameworkStores <DataContext>()
            .AddDefaultTokenProviders();
            //using for email sending
            services.Configure <EmailModel>(Configuration.GetSection("Smtp"));

            services.Configure <IdentityOptions>(options =>
            {
                options.Password.RequireDigit           = false;
                options.Password.RequireLowercase       = false;
                options.Password.RequireUppercase       = false;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequiredLength         = 6;
            });

            services.AddAuthentication(x =>
            {
                x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(x =>
            {
                x.RequireHttpsMetadata      = false;
                x.SaveToken                 = true;
                x.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidIssuer              = Configuration.GetValue <string>("Jwt:Issuer"),
                    ValidAudience            = Configuration.GetValue <string>("Jwt:Audience"),
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration.GetValue <string>("Jwt:Secret"))),
                    ValidateIssuer           = true,
                    ValidateAudience         = false
                };
            });

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

            services.AddHttpContextAccessor();

            services.Configure <ApiBehaviorOptions>(options =>
            {
                options.SuppressModelStateInvalidFilter = true;
            });

            MiddlewareConfiguration.ConfigureEf(services, Configuration.GetConnectionString("DataConnection"));
            MiddlewareConfiguration.ConfigureUow(services);
            MiddlewareConfiguration.ConfigureManager(services);
            MiddlewareConfiguration.ConfigureRepository(services);
            MiddlewareConfiguration.ConfigureServices(services);

            services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info {
                    Title = "Crm", Version = "v1"
                }); });

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

            services.AddHangfire(config =>
                                 config.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
                                 .UseSimpleAssemblyNameTypeSerializer()
                                 .UseDefaultTypeSerializer()
                                 .UseMemoryStorage()
                                 );

            services.AddHangfireServer();

            services.AddAzureClients(builder =>
            {
                builder.AddBlobServiceClient(Configuration["ConnectionStrings:DataConnection1"]);
            });

            //services.AddScoped<IRecurringJob, RecurringJob>();
        }