示例#1
0
        static void Main(string[] args)
        {
            var provider = new AuthenticatedClientProvider();

            var client = provider.GetClientFor <ITradeService>(Assembly.GetExecutingAssembly().FullName.Split(",").First(), ServiceConstants.ServiceGatewayUrl, ServiceConstants.TradeRealm);

            _rand = new Random();

            var log = new LoggerConfiguration()
                      .WriteTo.Console()
                      .CreateLogger();

            while (true)
            {
                Thread.Sleep(500);

                var asset = _assets.Random();

                var tradeCreation = new TradeCreationDto()
                {
                    Asset       = asset.Name,
                    Way         = _rand.Next(0, 2) == 0 ? TradeWay.Sell : TradeWay.Buy,
                    Counterpary = _counterparties.Random(),
                    Currency    = "EUR",
                    Nominal     = _rand.Next(10, 100),
                    Price       = asset.Price
                };


                log.Information($"{tradeCreation}");

                client.Create(tradeCreation).Wait();
            }
        }
示例#2
0
        public async Task <TradeCreationResult> Create([FromBody] TradeCreationDto tradeCreationDemand)
        {
            var result = await _repository.Create(tradeCreationDemand);

            var @event = new TradeCreated()
            {
                TradeId = result.TradeId
            };

            await _tradeEventProcessor.Emit(@event);

            return(result);
        }
        public Task <TradeCreationResult> Create(TradeCreationDto tradeCreation)
        {
            var id = Guid.NewGuid();

            var trade = new Trade()
            {
                Asset       = tradeCreation.Asset,
                Counterpary = tradeCreation.Counterpary,
                Currency    = tradeCreation.Currency,
                Nominal     = tradeCreation.Nominal,
                Price       = tradeCreation.Price,
                Status      = TradeStatus.None,
                Way         = tradeCreation.Way,
                TradeId     = id
            };

            _repository.AddOrUpdate(id, trade, (key, oldValue) => trade);

            return(Task.FromResult(new TradeCreationResult()
            {
                TradeId = id
            }));
        }
        public async Task <TradeCreationResult> Create([FromBody] TradeCreationDto tradeCreationDemand)
        {
            var result = await _repository.Create(tradeCreationDemand);

            return(result);
        }