private TradingFee Map(Domain.Entities.TradingFee domain, IReadOnlyList <Domain.Entities.TradingFeeLevel> levels) { if (domain == null) { return(null); } var model = new TradingFee(); model.Id = domain.Id; model.BrokerId = domain.BrokerId; model.AssetPair = domain.AssetPair; model.Asset = domain.Asset; model.Levels.AddRange(levels.Select(x => { var newLevel = new TradingFeeLevel { Id = x.Id, TradingFeeId = x.TradingFeeId, Volume = x.Volume.ToString(CultureInfo.InvariantCulture), MakerFee = x.MakerFee.ToString(CultureInfo.InvariantCulture), TakerFee = x.TakerFee.ToString(CultureInfo.InvariantCulture), Created = x.Created.ToTimestamp(), Modified = x.Modified.ToTimestamp() }; return(newLevel); })); model.Created = Timestamp.FromDateTime(domain.Created); model.Modified = Timestamp.FromDateTime(domain.Modified); return(model); }
public async Task <TradingFeeLevel> UpdateAsync(TradingFeeLevel tradingFeeLevel, string brokerId) { using (var context = _connectionFactory.CreateDataContext()) { var data = await GetAsync(tradingFeeLevel.Id, context); if (data == null) { throw new EntityNotFoundException(ErrorCode.ItemNotFound, $"TradingFeeLevel with id '{tradingFeeLevel.Id}' does not exist."); } var tradingFee = await GetTradingFeeAsync(data.TradingFeeId, brokerId, context); if (tradingFee == null) { throw new EntityNotFoundException(ErrorCode.ItemNotFound, $"TradingFee with id '{data.TradingFeeId}' does not exist."); } // save fields that has not be updated var created = data.Created; var tradingFeeId = data.TradingFeeId; _mapper.Map(tradingFeeLevel, data); // restore fields that has not be updated data.Created = created; data.TradingFeeId = tradingFeeId; data.Modified = DateTime.UtcNow; await context.SaveChangesAsync(); return(_mapper.Map <TradingFeeLevel>(data)); } }
public async Task <TradingFeeLevel> UpdateAsync(TradingFeeLevel tradingFeeLevel, string brokerId) { var result = await _tradingFeeLevelRepository.UpdateAsync(tradingFeeLevel, brokerId); _logger.LogInformation("TradingFeeLevel has been updated. {@TradingFeeLevel}", result); return(result); }
public TradingFeeLevelModel(TradingFeeLevel tradingFeeLevel) { Id = tradingFeeLevel.Id; TradingFeeId = tradingFeeLevel.TradingFeeId; Volume = decimal.Parse(tradingFeeLevel.Volume); MakerFee = decimal.Parse(tradingFeeLevel.MakerFee); TakerFee = decimal.Parse(tradingFeeLevel.TakerFee); Created = tradingFeeLevel.Created.ToDateTime(); Modified = tradingFeeLevel.Modified.ToDateTime(); }
public async Task <TradingFeeLevel> InsertAsync(TradingFeeLevel tradingFeeLevel, string brokerId) { using (var context = _connectionFactory.CreateDataContext()) { var existedTradingFeeLevel = await GetAsync(tradingFeeLevel.Id, context); if (existedTradingFeeLevel != null) { throw new DuplicatedEntityException(ErrorCode.DuplicateItem, $"TradingFeeLevel with id '{tradingFeeLevel.Id}' already exists."); } existedTradingFeeLevel = await GetAsync(tradingFeeLevel.TradingFeeId, tradingFeeLevel.Volume, context); if (existedTradingFeeLevel != null) { throw new DuplicatedEntityException(ErrorCode.DuplicateItem, $"TradingFeeLevel with id '{tradingFeeLevel.TradingFeeId}' does not exist."); } var tradingFee = await GetTradingFeeAsync(tradingFeeLevel.TradingFeeId, brokerId, context); if (tradingFee == null) { throw new EntityNotFoundException(ErrorCode.ItemNotFound, $"TradingFee with id '{tradingFeeLevel.TradingFeeId}' does not exist."); } var data = _mapper.Map <TradingFeeLevelEntity>(tradingFeeLevel); data.Created = DateTime.UtcNow; data.Modified = data.Created; context.TradingFeeLevels.Add(data); await context.SaveChangesAsync(); return(_mapper.Map <TradingFeeLevel>(data)); } }