public EntityFrameworkCoreRepository(
            ITargetedFields targetedFields,
            IDbContextResolver contextResolver,
            IResourceGraph resourceGraph,
            IGenericServiceFactory genericServiceFactory,
            IResourceFactory resourceFactory,
            IEnumerable <IQueryConstraintProvider> constraintProviders,
            ILoggerFactory loggerFactory)
        {
            if (contextResolver == null)
            {
                throw new ArgumentNullException(nameof(contextResolver));
            }
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _targetedFields        = targetedFields ?? throw new ArgumentNullException(nameof(targetedFields));
            _resourceGraph         = resourceGraph ?? throw new ArgumentNullException(nameof(resourceGraph));
            _genericServiceFactory = genericServiceFactory ?? throw new ArgumentNullException(nameof(genericServiceFactory));
            _resourceFactory       = resourceFactory ?? throw new ArgumentNullException(nameof(resourceFactory));
            _constraintProviders   = constraintProviders ?? throw new ArgumentNullException(nameof(constraintProviders));
            _dbContext             = contextResolver.GetContext();
            _traceWriter           = new TraceLogWriter <EntityFrameworkCoreRepository <TResource, TId> >(loggerFactory);
        }
        /// <summary>
        /// Creates an instance from separate services for the various individual read and write methods.
        /// </summary>
        protected BaseJsonApiController(
            IJsonApiOptions options,
            ILoggerFactory loggerFactory,
            IGetAllService <TResource, TId> getAll                                 = null,
            IGetByIdService <TResource, TId> getById                               = null,
            IGetSecondaryService <TResource, TId> getSecondary                     = null,
            IGetRelationshipService <TResource, TId> getRelationship               = null,
            ICreateService <TResource, TId> create                                 = null,
            IAddToRelationshipService <TResource, TId> addToRelationship           = null,
            IUpdateService <TResource, TId> update                                 = null,
            ISetRelationshipService <TResource, TId> setRelationship               = null,
            IDeleteService <TResource, TId> delete                                 = null,
            IRemoveFromRelationshipService <TResource, TId> removeFromRelationship = null)
        {
            ArgumentGuard.NotNull(options, nameof(options));
            ArgumentGuard.NotNull(loggerFactory, nameof(loggerFactory));

            _options                = options;
            _traceWriter            = new TraceLogWriter <BaseJsonApiController <TResource, TId> >(loggerFactory);
            _getAll                 = getAll;
            _getById                = getById;
            _getSecondary           = getSecondary;
            _getRelationship        = getRelationship;
            _create                 = create;
            _addToRelationship      = addToRelationship;
            _update                 = update;
            _setRelationship        = setRelationship;
            _delete                 = delete;
            _removeFromRelationship = removeFromRelationship;
        }
        public JsonApiResourceService(
            IResourceRepository <TResource, TId> repository,
            IQueryLayerComposer queryLayerComposer,
            IPaginationContext paginationContext,
            IJsonApiOptions options,
            ILoggerFactory loggerFactory,
            IJsonApiRequest request,
            IResourceChangeTracker <TResource> resourceChangeTracker,
            IResourceFactory resourceFactory,
            IResourceHookExecutor hookExecutor = null)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _repository            = repository ?? throw new ArgumentNullException(nameof(repository));
            _queryLayerComposer    = queryLayerComposer ?? throw new ArgumentNullException(nameof(queryLayerComposer));
            _paginationContext     = paginationContext ?? throw new ArgumentNullException(nameof(paginationContext));
            _options               = options ?? throw new ArgumentNullException(nameof(options));
            _traceWriter           = new TraceLogWriter <JsonApiResourceService <TResource, TId> >(loggerFactory);
            _request               = request ?? throw new ArgumentNullException(nameof(request));
            _resourceChangeTracker = resourceChangeTracker ?? throw new ArgumentNullException(nameof(resourceChangeTracker));
            _resourceFactory       = resourceFactory ?? throw new ArgumentNullException(nameof(resourceFactory));
            _hookExecutor          = hookExecutor;
        }
        /// <summary>
        /// Creates an instance from separate services for the various individual read and write methods.
        /// </summary>
        protected BaseJsonApiController(
            IJsonApiOptions options,
            ILoggerFactory loggerFactory,
            IGetAllService <TResource, TId> getAll                          = null,
            IGetByIdService <TResource, TId> getById                        = null,
            IGetSecondaryService <TResource, TId> getSecondary              = null,
            IGetRelationshipService <TResource, TId> getRelationship        = null,
            ICreateService <TResource, TId> create                          = null,
            IUpdateService <TResource, TId> update                          = null,
            IUpdateRelationshipService <TResource, TId> updateRelationships = null,
            IDeleteService <TResource, TId> delete                          = null)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _options             = options ?? throw new ArgumentNullException(nameof(options));
            _traceWriter         = new TraceLogWriter <BaseJsonApiController <TResource, TId> >(loggerFactory);
            _getAll              = getAll;
            _getById             = getById;
            _getSecondary        = getSecondary;
            _getRelationship     = getRelationship;
            _create              = create;
            _update              = update;
            _updateRelationships = updateRelationships;
            _delete              = delete;
        }
Example #5
0
        public JsonApiResourceService(IResourceRepositoryAccessor repositoryAccessor, IQueryLayerComposer queryLayerComposer,
                                      IPaginationContext paginationContext, IJsonApiOptions options, ILoggerFactory loggerFactory, IJsonApiRequest request,
                                      IResourceChangeTracker <TResource> resourceChangeTracker, IResourceHookExecutorFacade hookExecutor)
        {
            ArgumentGuard.NotNull(repositoryAccessor, nameof(repositoryAccessor));
            ArgumentGuard.NotNull(queryLayerComposer, nameof(queryLayerComposer));
            ArgumentGuard.NotNull(paginationContext, nameof(paginationContext));
            ArgumentGuard.NotNull(options, nameof(options));
            ArgumentGuard.NotNull(loggerFactory, nameof(loggerFactory));
            ArgumentGuard.NotNull(request, nameof(request));
            ArgumentGuard.NotNull(resourceChangeTracker, nameof(resourceChangeTracker));
            ArgumentGuard.NotNull(hookExecutor, nameof(hookExecutor));

            _repositoryAccessor    = repositoryAccessor;
            _queryLayerComposer    = queryLayerComposer;
            _paginationContext     = paginationContext;
            _options               = options;
            _request               = request;
            _resourceChangeTracker = resourceChangeTracker;
            _hookExecutor          = hookExecutor;
            _traceWriter           = new TraceLogWriter <JsonApiResourceService <TResource, TId> >(loggerFactory);

#pragma warning disable 612 // Method is obsolete
            _resourceDefinitionAccessor = queryLayerComposer.GetResourceDefinitionAccessor();
#pragma warning restore 612
        }
        public JsonApiWriter(IJsonApiSerializer serializer, IExceptionHandler exceptionHandler, ILoggerFactory loggerFactory)
        {
            ArgumentGuard.NotNull(serializer, nameof(serializer));
            ArgumentGuard.NotNull(exceptionHandler, nameof(exceptionHandler));
            ArgumentGuard.NotNull(loggerFactory, nameof(loggerFactory));

            _serializer       = serializer;
            _exceptionHandler = exceptionHandler;
            _traceWriter      = new TraceLogWriter <JsonApiWriter>(loggerFactory);
        }
Example #7
0
        public JsonApiWriter(IJsonApiSerializer serializer, IExceptionHandler exceptionHandler, ILoggerFactory loggerFactory)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _serializer       = serializer ?? throw new ArgumentNullException(nameof(serializer));
            _exceptionHandler = exceptionHandler ?? throw new ArgumentNullException(nameof(exceptionHandler));
            _traceWriter      = new TraceLogWriter <JsonApiWriter>(loggerFactory);
        }
Example #8
0
        public void TraceLogWriter_Write_NoExceptionWhenMessageContainsBraces()
        {
            var writer = new TraceLogWriter(Formatters.FullTextLogEventFormatter.DefaultInstance);

            var logEvent = new LogEvent()
            {
                EventName = "Test event { some text }."
            };

            writer.Write(logEvent);
        }
Example #9
0
        public JsonApiReader(IJsonApiDeserializer deserializer,
                             IJsonApiRequest request,
                             ILoggerFactory loggerFactory)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _deserializer = deserializer ?? throw new ArgumentNullException(nameof(deserializer));
            _request      = request ?? throw new ArgumentNullException(nameof(request));
            _traceWriter  = new TraceLogWriter <JsonApiReader>(loggerFactory);
        }
Example #10
0
        public JsonApiReader(IJsonApiDeserializer deserializer, IJsonApiRequest request, IResourceContextProvider resourceContextProvider,
                             ILoggerFactory loggerFactory)
        {
            ArgumentGuard.NotNull(deserializer, nameof(deserializer));
            ArgumentGuard.NotNull(request, nameof(request));
            ArgumentGuard.NotNull(resourceContextProvider, nameof(resourceContextProvider));
            ArgumentGuard.NotNull(loggerFactory, nameof(loggerFactory));

            _deserializer            = deserializer;
            _request                 = request;
            _resourceContextProvider = resourceContextProvider;
            _traceWriter             = new TraceLogWriter <JsonApiReader>(loggerFactory);
        }
        protected BaseJsonApiOperationsController(IJsonApiOptions options, ILoggerFactory loggerFactory,
                                                  IOperationsProcessor processor, IJsonApiRequest request, ITargetedFields targetedFields)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _options        = options ?? throw new ArgumentNullException(nameof(options));
            _processor      = processor ?? throw new ArgumentNullException(nameof(processor));
            _request        = request ?? throw new ArgumentNullException(nameof(request));
            _targetedFields = targetedFields ?? throw new ArgumentNullException(nameof(targetedFields));
            _traceWriter    = new TraceLogWriter <BaseJsonApiOperationsController>(loggerFactory);
        }
Example #12
0
        protected BaseJsonApiOperationsController(IJsonApiOptions options, ILoggerFactory loggerFactory, IOperationsProcessor processor,
                                                  IJsonApiRequest request, ITargetedFields targetedFields)
        {
            ArgumentGuard.NotNull(options, nameof(options));
            ArgumentGuard.NotNull(loggerFactory, nameof(loggerFactory));
            ArgumentGuard.NotNull(processor, nameof(processor));
            ArgumentGuard.NotNull(request, nameof(request));
            ArgumentGuard.NotNull(targetedFields, nameof(targetedFields));

            _options        = options;
            _processor      = processor;
            _request        = request;
            _targetedFields = targetedFields;
            _traceWriter    = new TraceLogWriter <BaseJsonApiOperationsController>(loggerFactory);
        }
Example #13
0
        public async Task <IActionResult> GetPopulations([FromQuery] GetPopulationsRequestModel request)
        {
            string route = _urlHelper.ActionContext.HttpContext.Request.Path.Value;

            TraceLogWriter.LogWriter(route, request.State);
            var response           = _mediator.Send(request);
            var resultFromResponse = response.Result;

            if (response.Result == null || response.Result.Count() == 0)
            {
                return(Ok(HttpStatusCode.NotFound));
            }

            return(Ok(response.Result));
        }
        public EntityFrameworkCoreRepository(ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph,
                                             IResourceFactory resourceFactory, IEnumerable <IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory)
        {
            ArgumentGuard.NotNull(contextResolver, nameof(contextResolver));
            ArgumentGuard.NotNull(loggerFactory, nameof(loggerFactory));
            ArgumentGuard.NotNull(targetedFields, nameof(targetedFields));
            ArgumentGuard.NotNull(resourceGraph, nameof(resourceGraph));
            ArgumentGuard.NotNull(resourceFactory, nameof(resourceFactory));
            ArgumentGuard.NotNull(constraintProviders, nameof(constraintProviders));

            _targetedFields      = targetedFields;
            _resourceGraph       = resourceGraph;
            _resourceFactory     = resourceFactory;
            _constraintProviders = constraintProviders;
            _dbContext           = contextResolver.GetContext();
            _traceWriter         = new TraceLogWriter <EntityFrameworkCoreRepository <TResource, TId> >(loggerFactory);
        }
Example #15
0
 public static void RedirectTrace(string logroot, string filename = null)
 {
     if (Directory.Exists(logroot))
     {
         string logname = Path.Combine(logroot, filename ?? $"Trace_{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")}");
         LogFileBaseName     = logname;
         LogFileWriterThread = new Thread(LogWriterThreadProc);
         LogFileWriterThread.IsBackground = true;
         LogFileWriterThread.Name         = "Log Writer";
         LogFileWriterThread.Start();
         System.Diagnostics.Trace.AutoFlush = true;
         // Log trace events to the above file
         var tlw = new TraceLogWriter();
         System.Diagnostics.Trace.Listeners.Add(new System.Diagnostics.TextWriterTraceListener(tlw));
         //System.Diagnostics.Trace.Listeners.Add(new System.Diagnostics.ConsoleTraceListener(true));
         Console.SetOut(tlw);
     }
 }
Example #16
0
        public EntityFrameworkCoreRepository(ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph,
                                             IResourceFactory resourceFactory, IEnumerable <IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory)
        {
            ArgumentGuard.NotNull(contextResolver, nameof(contextResolver));
            ArgumentGuard.NotNull(loggerFactory, nameof(loggerFactory));
            ArgumentGuard.NotNull(targetedFields, nameof(targetedFields));
            ArgumentGuard.NotNull(resourceGraph, nameof(resourceGraph));
            ArgumentGuard.NotNull(resourceFactory, nameof(resourceFactory));
            ArgumentGuard.NotNull(constraintProviders, nameof(constraintProviders));

            _targetedFields      = targetedFields;
            _resourceGraph       = resourceGraph;
            _resourceFactory     = resourceFactory;
            _constraintProviders = constraintProviders;
            _dbContext           = contextResolver.GetContext();
            _traceWriter         = new TraceLogWriter <EntityFrameworkCoreRepository <TResource, TId> >(loggerFactory);

#pragma warning disable 612 // Method is obsolete
            _resourceDefinitionAccessor = resourceFactory.GetResourceDefinitionAccessor();
#pragma warning restore 612
        }