Ejemplo n.º 1
0
        private async Task SetIsDefault(ITradingCondition tradingCondition, bool isDefault)
        {
            var existing = TradingCondition.Create(tradingCondition);

            existing.IsDefault = isDefault;
            await _repository.AddOrReplaceAsync(existing);
        }
Ejemplo n.º 2
0
        private async Task SetDefault(ITradingCondition obj, bool state)
        {
            var defaultTrConDomain =
                _convertService.Convert <ITradingCondition, TradingCondition>(obj);

            defaultTrConDomain.IsDefault = state;
            await _tradingConditionsRepository.UpdateAsync(defaultTrConDomain);
        }
 public async Task UpdateAsync(ITradingCondition tradingCondition)
 {
     using (var conn = new SqlConnection(_connectionString))
     {
         await conn.ExecuteAsync(
             $"update {TableName} set {GetUpdateClause} where Id=@Id",
             _convertService.Convert <ITradingCondition, TradingConditionEntity>(tradingCondition));
     }
 }
Ejemplo n.º 4
0
 public static TradingCondition Create(ITradingCondition src)
 {
     return(new TradingCondition
     {
         Id = src.Id,
         Name = src.Name,
         IsDefault = src.IsDefault,
         LegalEntity = src.LegalEntity,
     });
 }
Ejemplo n.º 5
0
 public static TradingConditionModel ToBackendContract(this ITradingCondition src)
 {
     return(new TradingConditionModel
     {
         Id = src.Id,
         Name = src.Name,
         IsDefault = src.IsDefault,
         LegalEntity = src.LegalEntity,
     });
 }
Ejemplo n.º 6
0
 public static TradingConditionEntity Create(ITradingCondition src)
 {
     return(new TradingConditionEntity
     {
         PartitionKey = GeneratePartitionKey(),
         RowKey = GenerateRowKey(src.Id),
         Name = src.Name,
         IsDefault = src.IsDefault,
         LegalEntity = src.LegalEntity,
     });
 }
        public async Task <bool> TryInsertAsync(ITradingCondition tradingCondition)
        {
            using (var conn = new SqlConnection(_connectionString))
            {
                try
                {
                    await conn.ExecuteAsync(
                        $"insert into {TableName} ({GetColumns}) values ({GetFields})",
                        _convertService.Convert <ITradingCondition, TradingConditionEntity>(tradingCondition));
                }
                catch (Exception ex)
                {
                    _log?.WriteWarningAsync(nameof(AssetPairsRepository), nameof(TryInsertAsync),
                                            $"Failed to insert a trading condition with Id {tradingCondition.Id}", ex);
                    return(false);
                }

                return(true);
            }
        }
Ejemplo n.º 8
0
        public async Task <ITradingCondition> AddOrReplaceTradingConditionAsync(ITradingCondition tradingCondition)
        {
            var allTradingConditions = _tradingConditionsCacheService.GetAllTradingConditions();

            var defaultTradingCondition = allTradingConditions.FirstOrDefault(item => item.IsDefault);

            if (tradingCondition.IsDefault)
            {
                if (defaultTradingCondition != null && defaultTradingCondition.Id != tradingCondition.Id)
                {
                    await SetIsDefault(defaultTradingCondition, false);
                }
            }
            else if (defaultTradingCondition?.Id == tradingCondition.Id)
            {
                var firstNotDefaultCondition = allTradingConditions.FirstOrDefault(item => !item.IsDefault);

                if (firstNotDefaultCondition != null)
                {
                    await SetIsDefault(firstNotDefaultCondition, true);
                }
            }

            await _repository.AddOrReplaceAsync(tradingCondition);

            if (!_tradingConditionsCacheService.IsTradingConditionExists(tradingCondition.Id))
            {
                await _accountGroupManager.AddAccountGroupsForTradingCondition(tradingCondition.Id);
            }

            _tradingConditionsCacheService.AddOrUpdateTradingCondition(tradingCondition);

            await _clientNotifyService.NotifyTradingConditionsChanged(tradingCondition.Id);

            return(tradingCondition);
        }
Ejemplo n.º 9
0
 internal void AddOrUpdateTradingCondition(ITradingCondition tradingCondition)
 {
     _tradingConditions.AddOrUpdate(tradingCondition.Id, tradingCondition, (s, condition) => tradingCondition);
 }
Ejemplo n.º 10
0
 private TradingConditionContract Convert(ITradingCondition tradingCondition)
 {
     return(_convertService.Convert <ITradingCondition, TradingConditionContract>(tradingCondition));
 }
Ejemplo n.º 11
0
 public async Task AddOrReplaceAsync(ITradingCondition condition)
 {
     await _tableStorage.InsertOrReplaceAsync(TradingConditionEntity.Create(condition));
 }