예제 #1
0
            public override bool Equals(Either <T1, T2> obj)
            {
                BHandler o = obj as BHandler;

                if (o == null)
                {
                    return(false);
                }
                return(EqualityComparer <T2> .Default.Equals(this.value, o.value));
            }
예제 #2
0
            public override bool Equals(object obj)
            {
                BHandler o = obj as BHandler;

                if (o == null)
                {
                    return(false);
                }
                return(Equals(o));
            }
예제 #3
0
        static void Main(string[] args)
        {
            var mediator = new Mediator();
            var weather  = new BHandler("WeatherHandler");
            var home     = new AHandler("HomeHandler");

            mediator.AddHandler(weather);
            mediator.AddHandler(home);
            weather.Mediator = mediator;
            home.Mediator    = mediator;
            home.Handle();
        }
예제 #4
0
        public void ManageRequest(HttpContext context)
        {
            JObject response = null;

            try
            {
                BHandler objBHandler = new BHandler();
                response = objBHandler.ProcessRequest(context);
                byte[] output = Convert.FromBase64String(response.Value <string>("FileContent"));
                context.Response.ContentType = response.Value <string>("ContentType");
                context.Response.AddHeader("FileName", response.Value <string>("FileName"));
                context.Response.AddHeader("Content-Disposition", "inline; filename=" + response.Value <string>("FileName"));
                context.Response.BinaryWrite(output);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #5
0
        public void When_spinned_once_then_dispatches_one_batch()
        {
            const int batchSize = 10;
            const int aCount    = 3;
            const int bCount    = 4;
            var       buffer    = Substitute.For <IRingBuffer>();
            var       aHandler  = new AHandler();
            var       bHandler  = new BHandler();

            buffer.Read(Arg.Any <MessageHandler>(), Arg.Is(batchSize)).Returns(ci =>
            {
                var handler = ci.ArgAt <MessageHandler>(0);
                for (var i = 0; i < aCount; i++)
                {
                    handler(MessageAId, ByteChunk.Empty);
                }

                for (var i = 0; i < bCount; i++)
                {
                    handler(MessageBId, ByteChunk.Empty);
                }

                return(aCount + bCount);
            });

            var       runner = new Runner(buffer, new StructSizeCounter(), t => ids[t], batchSize, aHandler, bHandler);
            BatchInfo batch;

            runner.SpinOnce(out batch);

            Assert.AreEqual(1, buffer.ReceivedCalls().Count());
            Assert.AreEqual(batchSize, batch.RequestedNumberOfMessages);
            Assert.AreEqual(aCount + bCount, batch.ProcessedNumberOfMessages);
            Assert.Less(0, batch.StopWatchTicksSpentOnProcessing);
            Assert.AreEqual(aCount, aHandler.Counter);
            Assert.AreEqual(bCount, bHandler.Counter);
            Assert.True(aHandler.BatchFinished);
            Assert.True(bHandler.BatchFinished);
        }
예제 #6
0
 public void AcceptHandler(int param2, int param3, int param4, BHandler handler);