private void DestroyControllerInstance()
 {
     if (controllerInstance.Any())
     {
         controllerInstance.Single().Close();
     }
     controllerInstance = Maybe <DeviceController> .Empty;
 }
Exemplo n.º 2
0
 public virtual void Saving(Maybe<Deal> deal)
 {
     if(deal.Any())
         _logger.Info($"Saving : {deal}.");
     else
         _logger.Warn($" Try Saving : {deal}.");
 }
        private void EnsureControllerInstanceCreatedAndOpen()
        {
            if (!controllerInstance.Any())
            {
                CompositionRoot.BeginSessionScope();
                var controller = CompositionRoot.Kernel.Get <DeviceController>();
                controllerInstance = new Maybe <DeviceController>(controller);
            }

            var instance = controllerInstance.Single();

            if (!instance.IsConnected)
            {
                instance.Open(performActionsOnOpen);
            }
        }
        public async Task <List <Candle> > Candlestick(string symbol, string interval, Maybe <string> startTime, Maybe <string> endTime, Maybe <int> limit)
        {
            try
            {
                var queryParams = new Dictionary <string, string>
                {
                    { "symbol", symbol },
                    { "interval", interval }
                };

                if (startTime.Any())
                {
                    queryParams.Add("startTime", startTime.Single());
                }
                if (endTime.Any())
                {
                    queryParams.Add("endTime", endTime.Single());
                }
                if (limit.Any())
                {
                    queryParams.Add("limit", limit.Single().ToString());
                }

                var query = new FormUrlEncodedContent(queryParams);

                var response = await _downloader.Get("klines", new Maybe <FormUrlEncodedContent>(query));

                return(JsonConvert.DeserializeObject <List <Candle> >(response, new ArrayOfArraysConverter <Candle>()));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public async Task <List <Ticker> > BookTicker(Maybe <string> symbol)
        {
            try
            {
                Maybe <FormUrlEncodedContent> content;

                if (!symbol.Any())
                {
                    content = new Maybe <FormUrlEncodedContent>();
                }
                else
                {
                    content = new Maybe <FormUrlEncodedContent>(new FormUrlEncodedContent(
                                                                    new Dictionary <string, string>()
                    {
                        { "symbol", symbol.Single() }
                    }
                                                                    ));
                }

                var response = await _downloader.Get("ticker/bookTicker", content);

                return(JsonConvert.DeserializeObject <List <Ticker> >(response,
                                                                      new SingleOrArrayConverter <Ticker>()));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemplo n.º 6
0
        public void MaybeWithValueHasValue(string input)
        {
            var actual = new Maybe <string>(input);

            Assert.True(actual.HasValue);
            Assert.True(actual.Any());
            Assert.Equal(input, actual.Value);
        }
Exemplo n.º 7
0
        public void MaybeWithNullHasNoValue()
        {
            var actual = new Maybe <string>(null);

            Assert.False(actual.HasValue);
            Assert.False(actual.Any());
            Assert.Throws <EmptyMaybeException>(() => actual.Value);
        }
Exemplo n.º 8
0
        public void AnyTest()
        {
            Func <Maybe <int> > j = () => Maybe.Just(1);
            Func <Maybe <int> > n = () => Maybe.Nothing;

            Assert.AreEqual(Maybe.Any(j, n), Maybe.Just(1));
            Assert.AreEqual(Maybe.Any(n, j), Maybe.Just(1));
            Assert.AreEqual(Maybe.Any(n), Maybe.Nothing);
        }
Exemplo n.º 9
0
 public void Save(Maybe<Deal> deal)
 {
     if (deal.Any())
     {
         var value = deal.Single();
         var path = GetFileName(value.Id).FullName;
         var serializedDeal = _serializer.SerializeDeal(value);
         File.WriteAllText(path, serializedDeal);
     }
 }
Exemplo n.º 10
0
        public CoinbasePro(Maybe <IDownloadData> downloader)
        {
            // If a downloader is not provided, create the default
            if (!downloader.Any())
            {
                downloader = new Maybe <IDownloadData>(
                    new DownloadData(Constants.Endpoint, Constants.AbsolutePath)
                    );
            }

            _publicApi = new PublicMethods(downloader.Single());
        }
Exemplo n.º 11
0
        public CryptoCompare(Maybe <IDownloadData> downloader)
        {
            // If a downloader is not provided, create the default
            if (!downloader.Any())
            {
                downloader = new Maybe <IDownloadData>(
                    new DownloadData(Constants.Endpoint, Constants.AbsolutePath)
                    );
            }

            api = new Api(downloader.Single());
        }
Exemplo n.º 12
0
        protected override Expression VisitMethodCall(MethodCallExpression node)
        {
            Maybe <Expression> f = Maybe.Nothing;

            if (node.Arguments.Count == 1)
            {
                f = Maybe.Any(
                    () => ReplaceMethod(node, _contains, _contains2),
                    () => ReplaceMethod(node, _startsWith, _startsWith2),
                    () => ReplaceMethod(node, _endsWith, _endsWith2));
            }

            return(f.GetOrElse(() => base.VisitMethodCall(node)));
        }
Exemplo n.º 13
0
        public HotBit(Maybe <IDownloadData> downloader)
        {
            // If a downloader is not provided, create the default
            if (!downloader.Any())
            {
                downloader = new Maybe <IDownloadData>(
                    new DownloadData(Constants.Endpoint, Constants.AbsolutePath)
                    );
            }

            // We can call Single() safely because we are sure there is only one
            // instance of IDownloadData inside the Maybe
            _publicApi = new PublicMethods(downloader.Single());
        }
Exemplo n.º 14
0
        public async Task <GenericResponse> HistoDay(string fromSymbol, string toSymbol,
                                                     Maybe <string> exchange,
                                                     Maybe <int> aggregate, Maybe <int> limit, Maybe <int> toTs, Maybe <string> allData)
        {
            try
            {
                var parameters = new Dictionary <string, string>()
                {
                    { "fsym", fromSymbol },
                    { "tsym", toSymbol }
                };

                if (exchange.Any())
                {
                    parameters.Add("e", exchange.Single());
                }

                if (aggregate.Any())
                {
                    parameters.Add("aggregate", aggregate.Single().ToString());
                }

                if (limit.Any())
                {
                    parameters.Add("limit", limit.Single().ToString());
                }

                if (toTs.Any())
                {
                    parameters.Add("toTs", toTs.Single().ToString());
                }

                if (allData.Any())
                {
                    parameters.Add("allData", allData.Single());
                }

                var content = new Maybe <FormUrlEncodedContent>(
                    new FormUrlEncodedContent(parameters));

                var response = await downloader.Get("histoday", content);

                return(JsonConvert.DeserializeObject <GenericResponse>(response));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public void UpsertBlockOrSkipWithStress()
        {
            BlobStorage.PutBlob(ContainerName, BlobName, 0);

            var array = new Maybe <int> [8];

            array = array
                    .AsParallel()
                    .Select(k => BlobStorage.UpsertBlobOrSkip <int>(ContainerName, BlobName, () => 1, i => i + 1))
                    .ToArray();

            Assert.IsFalse(array.Any(x => !x.HasValue), "No skips");

            var sorted = array.Select(m => m.Value)
                         .OrderBy(i => i)
                         .ToArray();

            for (int i = 0; i < array.Length; i++)
            {
                Assert.AreEqual(i + 1, sorted[i], "Concurrency should be resolved, every call should increment by one.");
            }
        }
        public async Task <List <Candle> > GetCandles(
            string productId,
            Maybe <string> startTime,
            Maybe <string> endTime,
            Maybe <string> granaularity)
        {
            try
            {
                var queryParams = new Dictionary <string, string>();

                if (startTime.Any())
                {
                    queryParams.Add("start", startTime.Single());
                }
                if (endTime.Any())
                {
                    queryParams.Add("end", endTime.Single());
                }
                if (granaularity.Any())
                {
                    queryParams.Add("granularity", granaularity.Single());
                }

                var query = new FormUrlEncodedContent(queryParams);

                var req = await GetRequestMessage($"products/{productId}/candles", new Maybe <FormUrlEncodedContent>(query));

                var result = await _downloadData.Send(req);

                return(JsonConvert.DeserializeObject <List <Candle> >(result, new ArrayOfArraysConverter <Candle>()));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemplo n.º 17
0
 public void CreatedWithModestConstructorIsGenericallyEmpty(
     [Modest] Maybe <T> sut)
 {
     Assert.False(sut.Any());
 }
        public void UpsertBlockOrSkipWithStress()
        {
            BlobStorage.PutBlob(ContainerName, BlobName, 0);

            var array = new Maybe<int>[8];
            array = array
                .AsParallel()
                .Select(k => BlobStorage.UpsertBlobOrSkip<int>(ContainerName, BlobName, () => 1, i => i + 1))
                .ToArray();

            Assert.IsFalse(array.Any(x => !x.HasValue), "No skips");

            var sorted = array.Select(m => m.Value)
                .OrderBy(i => i)
                .ToArray();

            for (int i = 0; i < array.Length; i++)
            {
                Assert.AreEqual(i + 1, sorted[i], "Concurrency should be resolved, every call should increment by one.");
            }
        }
 private void DestroyControllerInstance()
 {
     if (controllerInstance.Any())
         controllerInstance.Single().Close();
     controllerInstance = Maybe<TelescopeController>.Empty;
 }