Example #1
0
 /// <summary>
 /// Constructor with DI.
 /// </summary>
 /// <param name="options">Options source</param>
 /// <param name="performer">Request performer.</param>
 /// <param name="logger">Logger implementation.</param>
 public MainMenu(
     IRequestPerformer performer,
     IOptionsSource options,
     ILogger logger)
 {
     throw new NotImplementedException();
 }
Example #2
0
 /// <summary>
 /// Constructor with DI.
 /// </summary>
 /// <param name="options">Options source</param>
 /// <param name="performer">Request performer.</param>
 /// <param name="logger">Logger implementation.</param>
 public MainMenu(
     IRequestPerformer performer,
     IOptionsSource options,
     ILogger logger)
 {
     _performer     = performer;
     _optionsSource = options;
     _logger        = logger;
 }
Example #3
0
 public MainMenu(
     IRequestPerformer performer,
     IOptionsSource options,
     ILogger logger)
 {
     this.performer = performer;
     this.options   = options;
     this.logger    = logger;
 }
Example #4
0
        private void doPerform(Request request, FinishCallback callback)
        {
            IRequestPerformer worker = PerformerFactory.Build();

            logger.Log(() => request.ToCompleteString());
            worker.Perform(request, response => {
                logger.Log(() => response.ToCompleteString());
                callback(response);
            });
        }
Example #5
0
        /// <summary>
        /// Constructor with DI.
        /// </summary>
        /// <param name="options">Options source</param>
        /// <param name="performer">Request performer.</param>
        /// <param name="logger">Logger implementation.</param>
        public MainMenu(
            IRequestPerformer performer,
            IOptionsSource options,
            ILogger logger)
        {
            this.performer = performer;
            this.options   = options;
            this.logger    = logger;

            logger.Log("Initialisated MainMenu");
        }
Example #6
0
        public void PutRequest(IRequest request)
        {
            string requestGuid = Guid.NewGuid().ToString();

            try
            {
                LogRequest(request, requestGuid);
                RequestContext          context                 = new RequestContext(request.Uri);
                IRequestPerformer       requestPerformer        = null;
                RequestPerformerLocator requestPerformerLocator = RequestReceiver.NorthwindAdapter.RequestPerformerLocator;

                if (!String.IsNullOrEmpty(context.ErrorMessage))
                {
                    throw new ApplicationException(context.ErrorMessage);
                }

                switch (context.RequestType)
                {
                case RequestType.Resource:
                    requestPerformer = requestPerformerLocator.Resolve <PutResourceRequestPerformer>(context);
                    break;

                case RequestType.Linked:
                    requestPerformer = requestPerformerLocator.Resolve <PutLinkingRequestPerformer>(context);
                    break;
                }

                if (null != requestPerformer)
                {
                    requestPerformer.DoWork(request);
                }
                else
                {
                    throw new RequestException("The request is not supported.");
                }

                LogResponse(request, requestGuid);
            }
            catch (Exception e)
            {
                LogException(e, requestGuid);
                throw;
            }
        }
Example #7
0
        public void GetRequest(IRequest request)
        {
            string requestGuid = Guid.NewGuid().ToString();

            try
            {
                LogRequest(request, requestGuid);
                RequestContext          context;
                IRequestPerformer       requestPerformer = null;
                RequestPerformerLocator requestPerformerLocator;


                requestPerformerLocator = RequestReceiver.NorthwindAdapter.RequestPerformerLocator;

                context = new RequestContext(request.Uri);
                if (!String.IsNullOrEmpty(context.ErrorMessage))
                {
                    throw new ApplicationException(context.ErrorMessage);
                }

                switch (context.RequestType)
                {
                case RequestType.Resource:
                    requestPerformer = requestPerformerLocator.Resolve <GetResourceRequestPerformer>(context);
                    break;

                case RequestType.SyncDigest:
                    requestPerformer = requestPerformerLocator.Resolve <GetSyncDigestRequestPerformer>(context);
                    break;

                case RequestType.SyncSource:
                    requestPerformer = requestPerformerLocator.Resolve <GetSyncSourceRequestPerformer>(context);
                    break;

                case RequestType.SyncTarget:
                    requestPerformer = requestPerformerLocator.Resolve <GetSyncTargetRequestPerformer>(context);
                    break;

                case RequestType.ResourceCollectionSchema:
                    requestPerformer = requestPerformerLocator.Resolve <GetSchemaRequestPerformer>(context);
                    break;

                case RequestType.ResourceSchema:
                    requestPerformer = requestPerformerLocator.Resolve <GetResourceSchemaRequestPerformer>(context);
                    break;

                case RequestType.ImportSchema:
                    requestPerformer = requestPerformerLocator.Resolve <GetSchemaImportRequestPerformer>(context);
                    break;

                case RequestType.Contract:
                    requestPerformer = requestPerformerLocator.Resolve <GetContractRequestPerformer>(context);
                    break;

                case RequestType.Dataset:
                    requestPerformer = requestPerformerLocator.Resolve <GetDatasetRequestPerformer>(context);
                    break;

                case RequestType.ResourceCollection:
                    requestPerformer = requestPerformerLocator.Resolve <GetResourceCollectionRequestPerformer>(context);
                    break;

                case RequestType.Linked:
                    requestPerformer = requestPerformerLocator.Resolve <GetLinkingRequestPerformer>(context);
                    break;

                case RequestType.ServiceSchema:
                    requestPerformer = requestPerformerLocator.Resolve <GetServiceSchemaRequestPerformer>(context);
                    break;
                }

                if (null != requestPerformer)
                {
                    requestPerformer.DoWork(request);
                }
                else
                {
                    throw new RequestException("The request is not supported.");
                }

                LogResponse(request, requestGuid);
            }
            catch (Exception e)
            {
                LogException(e, requestGuid);
                throw;
            }
        }
Example #8
0
        public void DeleteRequest(IRequest request)
        {
            string requestGuid = Guid.NewGuid().ToString();

            try
            {
                LogRequest(request, requestGuid);
                RequestPerformerLocator requestPerformerLocator = RequestReceiver.NorthwindAdapter.RequestPerformerLocator;;
                IRequestPerformer       requestPerformer        = null;
                RequestContext          context = new RequestContext(request.Uri);
                switch (context.RequestType)
                {
                case RequestType.Resource:
                    requestPerformer = requestPerformerLocator.Resolve <DeleteResourceRequestPerformer>(context);
                    if (null != requestPerformer)
                    {
                        requestPerformer.DoWork(request);
                    }
                    else
                    {
                        throw new RequestException("The request is not supported.");
                    }
                    break;

                case RequestType.SyncSource:
                case RequestType.SyncTarget:
                    requestPerformerLocator = RequestReceiver.NorthwindAdapter.RequestPerformerLocator;
                    Exception error;
                    if (requestPerformerLocator.Delete(context, out error))
                    {
                        request.Response.StatusCode = System.Net.HttpStatusCode.OK;
                    }
                    else
                    {
                        if (error == null)
                        {
                            request.Response.StatusCode = System.Net.HttpStatusCode.NotFound;
                        }
                        else
                        {
                            throw error;
                        }
                    }
                    break;

                case RequestType.Linked:
                    requestPerformer = requestPerformerLocator.Resolve <DeleteLinkingRequestPerformer>(context);
                    if (null == requestPerformer)
                    {
                        throw new RequestException("The request is not supported.");
                    }

                    requestPerformer.DoWork(request);

                    break;

                default:
                    throw new NotSupportedException("This Request was not supported");
                }
                LogResponse(request, requestGuid);
            }
            catch (Exception e)
            {
                LogException(e, requestGuid);
                throw;
            }
        }
Example #9
0
 public ClientAppEmulator(IRequestPerformer performer)
 {
     _performer = performer;
     _sessionId = Guid.NewGuid().ToString();
 }