Example #1
0
        /// <summary>
        /// This is the entry point of the service host process.
        /// </summary>
        private static void Main()
        {
            ILogAs logAs = null;

            var applicationInsightsKey = FabricRuntime.GetActivationContext()?
                                         .GetConfigurationPackageObject(Consts.Config.ConfigurationPackageObject)?
                                         .Settings.Sections[Consts.Config.ApplicationInsights.Section]?
                                         .Parameters[Consts.Config.ApplicationInsights.Param]?.Value;

            try
            {
                // The ServiceManifest.XML file defines one or more service type names.
                // Registering a service maps a service type name to a .NET type.
                // When Service Fabric creates an instance of this service type,
                // an instance of the class is created in this host process.

                ServiceRuntime.RegisterServiceAsync("ITG.Brix.WorkOrders.APIType",
                                                    context =>
                {
                    var loggerFactory = new LoggerFactoryBuilder(context).CreateLoggerFactory(applicationInsightsKey);
                    var logger        = loggerFactory.CreateLogger <ApiStatelessService>();
                    logAs             = new LogAs(logger);
                    return(new ApiStatelessService(context, loggerFactory, logAs));
                }).GetAwaiter().GetResult();
                ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(ApiStatelessService).Name);

                // Prevents this host process from terminating so services keeps running.
                Thread.Sleep(Timeout.Infinite);
            }
            catch (Exception ex)
            {
                logAs?.ServiceInitalizationFailed(typeof(ApiStatelessService).FullName, ex);
                throw;
            }
        }
 public ListWorkOrderQueryHandler(ILogAs logAs,
                                  IMapper mapper,
                                  IWorkOrderReadRepository workOrderReadRepository,
                                  IFilterProvider filterProvider)
 {
     _logAs  = logAs ?? throw Error.ArgumentNull(nameof(logAs));
     _mapper = mapper ?? throw Error.ArgumentNull(nameof(mapper));
     _workOrderReadRepository = workOrderReadRepository ?? throw Error.ArgumentNull(nameof(workOrderReadRepository));
     _filterProvider          = filterProvider ?? throw Error.ArgumentNull(nameof(filterProvider));
 }
Example #3
0
        public void ConstructorShouldFailWhenLogAsIsNull()
        {
            // Arrange
            ILogAs logAs = null;
            var    workOrderWriteRepository = new Mock <IWorkOrderWriteRepository>().Object;

            // Act
            Action ctor = () => { new DeleteWorkOrderCommandHandler(logAs, workOrderWriteRepository); };

            // Assert
            ctor.Should().Throw <ArgumentNullException>();
        }
Example #4
0
 public CreateWorkOrderCommandHandler(ILogAs logAs,
                                      IWorkOrderWriteRepository workOrderWriteRepository,
                                      IIdentifierProvider identifierProvider,
                                      IVersionProvider versionProvider,
                                      IDateTimeProvider dateTimeProvider)
 {
     _logAs = logAs ?? throw Error.ArgumentNull(nameof(logAs));
     _workOrderWriteRepository = workOrderWriteRepository ?? throw new ArgumentNullException(nameof(workOrderWriteRepository));
     _identifierProvider       = identifierProvider ?? throw new ArgumentNullException(nameof(identifierProvider));
     _versionProvider          = versionProvider ?? throw new ArgumentNullException(nameof(versionProvider));
     _dateTimeProvider         = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider));
 }
Example #5
0
 public UpdateWorkOrderCommandHandler(ILogAs logAs,
                                      IWorkOrderReadRepository workOrderReadRepository,
                                      IWorkOrderWriteRepository workOrderWriteRepository,
                                      IVersionProvider versionProvider,
                                      IDateTimeProvider dateTimeProvider,
                                      ITypeConverterProvider typeConverterProvider)
 {
     _logAs = logAs ?? throw Error.ArgumentNull(nameof(logAs));
     _workOrderReadRepository  = workOrderReadRepository ?? throw Error.ArgumentNull(nameof(workOrderReadRepository));
     _workOrderWriteRepository = workOrderWriteRepository ?? throw Error.ArgumentNull(nameof(workOrderWriteRepository));
     _versionProvider          = versionProvider ?? throw Error.ArgumentNull(nameof(versionProvider));
     _dateTimeProvider         = dateTimeProvider ?? throw Error.ArgumentNull(nameof(dateTimeProvider));
     _typeConverterProvider    = typeConverterProvider ?? throw Error.ArgumentNull(nameof(typeConverterProvider));
 }
Example #6
0
        public void ConstructorShouldFailWhenLogAsIsNull()
        {
            // Arrange
            ILogAs logAs  = null;
            var    mapper = new Mock <IMapper>().Object;
            var    workOrderReadRepository = new Mock <IWorkOrderReadRepository>().Object;
            var    filterProvider          = new Mock <IFilterProvider>().Object;

            // Act
            Action ctor = () => { new ListWorkOrderQueryHandler(logAs, mapper, workOrderReadRepository, filterProvider); };

            // Assert
            ctor.Should().Throw <ArgumentNullException>().WithMessage($"*{nameof(logAs)}*");
        }
Example #7
0
        public void ConstructorShouldFailWhenLogAsIsNull()
        {
            // Arrange
            ILogAs logAs = null;
            var    workOrderRepository = new Mock <IWorkOrderWriteRepository>().Object;
            var    identifierProvider  = new Mock <IIdentifierProvider>().Object;
            var    versionProvider     = new Mock <IVersionProvider>().Object;
            var    dateTimeProvider    = new Mock <IDateTimeProvider>().Object;

            // Act
            Action ctor = () => { new CreateWorkOrderCommandHandler(logAs, workOrderRepository, identifierProvider, versionProvider, dateTimeProvider); };

            // Assert
            ctor.Should().Throw <ArgumentNullException>();
        }
Example #8
0
 public GetWorkOrderQueryHandler(ILogAs logAs,
                                 IMapper mapper,
                                 IOrchestrator orchestrator,
                                 IWorkOrderReadRepository workOrderReadRepository,
                                 IWorkOrderWriteRepository workOrderWriteRepository,
                                 IPlatoOrderProvider platoOrderProvider,
                                 IDomainConverter domainConverter)
 {
     _logAs                    = logAs ?? throw Error.ArgumentNull(nameof(logAs));
     _mapper                   = mapper ?? throw Error.ArgumentNull(nameof(mapper));
     _orchestrator             = orchestrator ?? throw Error.ArgumentNull(nameof(orchestrator));
     _workOrderReadRepository  = workOrderReadRepository ?? throw Error.ArgumentNull(nameof(workOrderReadRepository));
     _workOrderWriteRepository = workOrderWriteRepository ?? throw Error.ArgumentNull(nameof(workOrderWriteRepository));
     _platoOrderProvider       = platoOrderProvider ?? throw Error.ArgumentNull(nameof(platoOrderProvider));
     _domainConverter          = domainConverter ?? throw Error.ArgumentNull(nameof(domainConverter));
 }
Example #9
0
        public void ConstructorShouldFailWhenLogAsIsNull()
        {
            // Arrange
            ILogAs  logAs                    = null;
            IMapper mapper                   = new Mock <IMapper>().Object;
            var     orchestrator             = new Mock <IOrchestrator>().Object;
            var     workOrderReadrepository  = new Mock <IWorkOrderReadRepository>().Object;
            var     workOrderWriteRepository = new Mock <IWorkOrderWriteRepository>().Object;
            var     platoOrderProvider       = new Mock <IPlatoOrderProvider>().Object;
            var     domainConverter          = new Mock <IDomainConverter>().Object;

            // Act
            Action ctor = () => { new GetWorkOrderQueryHandler(logAs, mapper, orchestrator, workOrderReadrepository, workOrderWriteRepository, platoOrderProvider, domainConverter); };

            // Assert
            ctor.Should().Throw <ArgumentNullException>();
        }
Example #10
0
 public CreatePlatoOrderCommandHandler(ILogAs logAs,
                                       IPlatoOrderWriteRepository platoOrderWriteRepository,
                                       IWorkOrderWriteRepository workOrderWriteRepository,
                                       IIdentifierProvider identifierProvider,
                                       IVersionProvider versionProvider,
                                       IPlatoOrderProvider platoOrderProvider,
                                       IPlatoOrderChecker platoOrderChecker,
                                       IDomainConverter domainConverter)
 {
     _logAs = logAs ?? throw Error.ArgumentNull(nameof(logAs));
     _platoOrderWriteRepository = platoOrderWriteRepository ?? throw Error.ArgumentNull(nameof(platoOrderWriteRepository));
     _workOrderWriteRepository  = workOrderWriteRepository ?? throw Error.ArgumentNull(nameof(workOrderWriteRepository));
     _identifierProvider        = identifierProvider ?? throw Error.ArgumentNull(nameof(identifierProvider));
     _versionProvider           = versionProvider ?? throw Error.ArgumentNull(nameof(versionProvider));
     _platoOrderProvider        = platoOrderProvider ?? throw Error.ArgumentNull(nameof(platoOrderProvider));
     _platoOrderChecker         = platoOrderChecker ?? throw Error.ArgumentNull(nameof(platoOrderChecker));
     _domainConverter           = domainConverter ?? throw Error.ArgumentNull(nameof(domainConverter));
 }
Example #11
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILogAs logAs)
        {
            app.UseCors(builder => builder
                        .AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        .AllowCredentials());

            app.UseMiddleware <ErrorHandlingMiddleware>(logAs);
            //app.UseRequestTrackingMiddleware();
            app.UseMvc();

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "WorkOrders API v1");
            });

            app.Run(context =>
            {
                context.Response.Redirect("swagger");
                return(Task.CompletedTask);
            });
        }
 public ErrorHandlingMiddleware(RequestDelegate next, ILogAs logAs)
 {
     _next  = next;
     _logAs = logAs;
 }
 public static void ServiceStartedListening(this ILogAs logAs, string serviceTypeName, string endpoint)
 {
     logAs.Info(string.Format("Service {0} started (endpoint {1})", serviceTypeName, endpoint));
 }
 public static void ServiceInitalizationFailed(this ILogAs logAs, string serviceTypeName, Exception exception)
 {
     logAs.Critical(string.Format("Service {0} failed to initialize.", serviceTypeName), exception);
 }
Example #15
0
 public ApiStatelessService(StatelessServiceContext context, ILoggerFactory loggerFactory, ILogAs logAs)
     : base(context)
 {
     _loggerFactory = loggerFactory;
     _logAs         = logAs;
 }
Example #16
0
 public DeleteWorkOrderCommandHandler(ILogAs logAs,
                                      IWorkOrderWriteRepository workOrderWriteRepository)
 {
     _logAs = logAs ?? throw Error.ArgumentNull(nameof(logAs));
     _workOrderWriteRepository = workOrderWriteRepository ?? throw Error.ArgumentNull(nameof(workOrderWriteRepository));
 }