private async Task SetIsDefault(ITradingCondition tradingCondition, bool isDefault) { var existing = TradingCondition.Create(tradingCondition); existing.IsDefault = isDefault; await _repository.AddOrReplaceAsync(existing); }
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)); } }
public static TradingCondition Create(ITradingCondition src) { return(new TradingCondition { Id = src.Id, Name = src.Name, IsDefault = src.IsDefault, LegalEntity = src.LegalEntity, }); }
public static TradingConditionModel ToBackendContract(this ITradingCondition src) { return(new TradingConditionModel { Id = src.Id, Name = src.Name, IsDefault = src.IsDefault, LegalEntity = src.LegalEntity, }); }
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); } }
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); }
internal void AddOrUpdateTradingCondition(ITradingCondition tradingCondition) { _tradingConditions.AddOrUpdate(tradingCondition.Id, tradingCondition, (s, condition) => tradingCondition); }
private TradingConditionContract Convert(ITradingCondition tradingCondition) { return(_convertService.Convert <ITradingCondition, TradingConditionContract>(tradingCondition)); }
public async Task AddOrReplaceAsync(ITradingCondition condition) { await _tableStorage.InsertOrReplaceAsync(TradingConditionEntity.Create(condition)); }