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)); }
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); } }
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)); }
public MyType(IHandlerFactory factory) { // create instance via factory Handler = factory.CreateHandler(this); }
private IHandler ResolveHandler(HttpRequestMetadata metadata) { var handler = _handlerFactory.CreateHandler(this.Id, metadata, _stream, _stopSignal); return(handler); }
public IHandler GetHandler(ServiceDescription serviceDescription, ServicePath path) { return(handlers.GetOrAdd(path, p => factory.CreateHandler(serviceDescription, p))); }