public virtual SourceResultDataContract ValidateSource(Guid sourceId)
        {
            var fileSource = Context.GetDataSource <FileDataSource>(sourceId);

            if ((fileSource == null) || (fileSource.InputStatus != SourceStatus.PendingExtraction))
            {
                return(DataContractError(sourceId, DataSourceServiceResources.FileSourceIsNotPendingExtraction));
            }
            Context.RemoveSourceErrors(sourceId);
            var returnResult = DataContractSuccess(sourceId);
            var handler      = handlerFactory.CreateHandler(fileSource.HandlerName);

            if (Context.FileIsDuplicate(fileSource))
            {
                var message = DataSourceServiceResources.DuplicateFile;
                ReportSourceError(sourceId, SourceErrorType.DuplicateFile, message);
                returnResult.Succeeded = false;
                returnResult.ErrorMessages.Add(message);
                return(returnResult);
            }
            if (handler == null)
            {
                var message = string.Format(DataSourceServiceResources.InvalidHandlerMessage, fileSource.HandlerName);
                ReportSourceError(sourceId, SourceErrorType.FileTypeNotFound, message);
                returnResult.Succeeded = false;
                returnResult.ErrorMessages.Add(message);
                return(returnResult);
            }
            try
            {
                using (var fileStream = streamManager.RetrieveData(sourceId, fileSource.CurrentFileName).Result)
                {
                    foreach (var missingColumn in handler.MissingColumns(fileSource.CurrentFileName, fileStream))
                    {
                        var message = DataSourceServiceResources.MissingRowsMessage;
                        var columns = string.Join(",", missingColumn.Value);
                        message = string.Format(message, missingColumn.Key, columns);
                        ReportSourceError(sourceId, SourceErrorType.MissingFields, message);
                        returnResult.Succeeded = false;
                        returnResult.ErrorMessages.Add(message);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionPolicy.HandleException(ex, Policy.DataEntry);
                var message = DataSourceServiceResources.UnReadableFile;
                returnResult.Succeeded = false;
                returnResult.ErrorMessages.Add(message);
                ReportSourceError(sourceId, SourceErrorType.UnReadableFile, message);
            }
            return(returnResult);
        }
        public void Trivial()
        {
            var serviceDescription = new ServiceDescriptionBuilder(new MethodDescriptionBuilder()).Build(typeof(ITrivialService));
            var path    = new ServicePath("MyService", "MyMethod");
            var handler = Substitute.For <IHandler>();

            factory.CreateHandler(serviceDescription, path).Returns(handler);

            var handler1 = container.GetHandler(serviceDescription, path);
            var handler2 = container.GetHandler(serviceDescription, path);

            Assert.That(handler1, Is.EqualTo(handler2));
        }
Ejemplo n.º 3
0
        public void Start()
        {
            var section = FileWatcherConfigSection.Instance;

            if (section == null)
            {
                return;
            }
            foreach (var setting in section.Handlers)
            {
                var handler = handlerFactory
                              .CreateHandler(setting.Value.HandlerName, setting.Value.Host);

                var folderMonitor = folderMonitorFactory.CreateFolderMonitor(setting.Key, handler);

                folderMonitor.StartMonitoring();
                services.Enqueue(folderMonitor);
            }
        }
Ejemplo n.º 4
0
        public static IMessageHandler Create(string FunctionCode, string UID, RecieveMessage Message)
        {
            IHandlerFactory factory = (IHandlerFactory)Assembly.Load("DQGJK.Winform.Handlers").CreateInstance("DQGJK.Winform.Handlers." + FunctionCode + "Factory");

            return(factory.CreateHandler(UID, Message));
        }
Ejemplo n.º 5
0
 public MyType(IHandlerFactory factory)
 {
     // create instance via factory
     Handler = factory.CreateHandler(this);
 }
Ejemplo n.º 6
0
        private IHandler ResolveHandler(HttpRequestMetadata metadata)
        {
            var handler = _handlerFactory.CreateHandler(this.Id, metadata, _stream, _stopSignal);

            return(handler);
        }
Ejemplo n.º 7
0
 public IHandler GetHandler(ServiceDescription serviceDescription, ServicePath path)
 {
     return(handlers.GetOrAdd(path, p => factory.CreateHandler(serviceDescription, p)));
 }