Пример #1
0
        public async Task <TradingConditionContract> Insert([FromBody] TradingConditionContract tradingCondition)
        {
            await ValidateTradingCondition(tradingCondition);

            var defaultTradingCondition =
                (await _tradingConditionsRepository.GetDefaultAsync()).FirstOrDefault();

            if (tradingCondition.IsDefault &&
                defaultTradingCondition != null && defaultTradingCondition.Id != tradingCondition.Id)
            {
                await SetDefault(defaultTradingCondition, false);
            }

            if (defaultTradingCondition == null)
            {
                tradingCondition.IsDefault = true;
            }

            _defaultLegalEntitySettings.Set(tradingCondition);

            if (!await _tradingConditionsRepository.TryInsertAsync(
                    _convertService.Convert <TradingConditionContract, TradingCondition>(tradingCondition)))
            {
                throw new ArgumentException($"Trading condition with id {tradingCondition.Id} already exists",
                                            nameof(tradingCondition.Id));
            }

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}",
                                                        SettingsChangedSourceType.TradingCondition, tradingCondition.Id);

            return(tradingCondition);
        }
        public async Task <AssetPairContract> Insert([FromBody] AssetPairContract assetPair)
        {
            await ValidatePairInsert(assetPair);

            _defaultLegalEntitySettings.Set(assetPair);

            var inserted = await _assetPairsRepository.InsertAsync(
                _convertService.Convert <AssetPairContract, AssetPair>(assetPair));

            if (inserted == null)
            {
                throw new ArgumentException($"Asset pair with id {assetPair.Id} already exists", nameof(assetPair.Id));
            }

            var insertedContract = _convertService.Convert <IAssetPair, AssetPairContract>(inserted);

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.AssetPair,
                                                        inserted.Id);

            await _cqrsMessageSender.SendAssetPairChangedEvent(new AssetPairChangedEvent
            {
                OperationId = Guid.NewGuid().ToString("N"),
                AssetPair   = insertedContract,
            });

            return(insertedContract);
        }
Пример #3
0
        public async Task <AssetContract> Insert([FromBody] AssetContract asset)
        {
            Validate(asset);

            if (!await _assetsRepository.TryInsertAsync(_convertService.Convert <AssetContract, Asset>(asset)))
            {
                throw new ArgumentException($"Asset with id {asset.Id} already exists", nameof(asset.Id));
            }

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.Asset,
                                                        asset.Id);

            return(asset);
        }
Пример #4
0
        public async Task <MarketContract> Insert([FromBody] MarketContract market)
        {
            Validate(market);

            if (!await _marketRepository.TryInsertAsync(_convertService.Convert <MarketContract, Market>(market)))
            {
                throw new ArgumentException($"Market with id {market.Id} already exists", nameof(market.Id));
            }

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.Market,
                                                        market.Id);

            return(market);
        }
Пример #5
0
        public async Task <MatchingEngineRouteContract> Insert([FromBody] MatchingEngineRouteContract route)
        {
            await ValidateRoute(route);

            if (!await _tradingRoutesRepository.TryInsertAsync(
                    _convertService.Convert <MatchingEngineRouteContract, TradingRoute>(route)))
            {
                throw new ArgumentException($"Trading route with id {route.Id} already exists", nameof(route.Id));
            }

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}",
                                                        SettingsChangedSourceType.TradingRoute, route.Id);

            return(route);
        }
        public async Task <TradingInstrumentContract> Insert([FromBody] TradingInstrumentContract instrument)
        {
            await ValidateTradingInstrument(instrument);

            if (!await _tradingInstrumentsRepository.TryInsertAsync(
                    _convertService.Convert <TradingInstrumentContract, TradingInstrument>(instrument)))
            {
                throw new ArgumentException($"Trading instrument with tradingConditionId {instrument.TradingConditionId}" +
                                            $"and assetPairId {instrument.Instrument} already exists");
            }

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}",
                                                        SettingsChangedSourceType.TradingInstrument, GetIdContractSerialized(instrument));

            return(instrument);
        }
Пример #7
0
        public async Task <ScheduleSettingsContract> Insert([FromBody] ScheduleSettingsContract scheduleSetting)
        {
            await ValidateScheduleSettings(scheduleSetting);

            if (!await _scheduleSettingsRepository.TryInsertAsync(
                    _convertService.Convert <ScheduleSettingsContract, ScheduleSettings>(scheduleSetting)))
            {
                throw new ArgumentException($"Schedule setting with id {scheduleSetting.Id} already exists",
                                            nameof(scheduleSetting.Id));
            }

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}",
                                                        SettingsChangedSourceType.ScheduleSettings, scheduleSetting.Id);

            return(scheduleSetting);
        }
        public Task <bool> Post([FromBody] bool enabled)
        {
            _maintenanceModeService.SetMode(enabled);

            _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.ServiceMaintenance);

            return(Task.FromResult(true));
        }