public static AccountMarginEventReport ToDto(this IAccountMarginEventReport src) { return(new AccountMarginEventReport { AccountId = src.AccountId, Balance = src.Balance, BaseAssetId = src.BaseAssetId, ClientId = src.ClientId, EventId = src.EventId, EventTime = src.EventTime, FreeMargin = src.FreeMargin, Id = src.Id, IsEventStopout = src.IsEventStopout, MarginAvailable = src.MarginAvailable, MarginCall = src.MarginCall, MarginInit = src.MarginInit, MarginUsageLevel = src.MarginUsageLevel, OpenPositionsCount = src.OpenPositionsCount, PnL = src.PnL, StopOut = src.StopOut, TotalCapital = src.TotalCapital, TradingConditionId = src.TradingConditionId, UsedMargin = src.UsedMargin, WithdrawTransferLimit = src.WithdrawTransferLimit }); }
public async Task InsertOrReplaceAsync(IAccountMarginEventReport report) { foreach (var item in _repositories) { await item.InsertOrReplaceAsync(report); } }
public async Task InsertOrReplaceAsync(IAccountMarginEventReport report) { using (var conn = new SqlConnection(_settings.Db.ReportsSqlConnString)) { var res = conn.ExecuteScalar($"select Id from {TableName} where Id = '{report.Id}'"); string query; if (res == null) { query = $"insert into {TableName} " + "(Id, EventId, ClientId, AccountId, TradingConditionId, Balance, BaseAssetId, EventTime, FreeMargin, IsEventStopout, MarginAvailable, " + "MarginCall, MarginInit, MarginUsageLevel, OpenPositionsCount, PnL, StopOut, TotalCapital, UsedMargin, WithdrawTransferLimit)" + " values " + "(@Id, @EventId, @ClientId, @AccountId, @TradingConditionId, @Balance, @BaseAssetId, @EventTime, @FreeMargin, @IsEventStopout, @MarginAvailable, " + "@MarginCall, @MarginInit, @MarginUsageLevel, @OpenPositionsCount, @PnL, @StopOut, @TotalCapital, @UsedMargin, @WithdrawTransferLimit)"; } else { query = $"update {TableName} set " + "EventId=@EventId, ClientId=@ClientId, AccountId=@AccountId, TradingConditionId=@TradingConditionId, Balance=@Balance, " + "BaseAssetId=@BaseAssetId, EventTime=@EventTime, FreeMargin=@FreeMargin, IsEventStopout=@IsEventStopout, MarginAvailable=@MarginAvailable, " + "MarginCall=@MarginCall, MarginInit=@MarginInit, MarginUsageLevel=@MarginUsageLevel, OpenPositionsCount=@OpenPositionsCount, " + "PnL=@PnL, StopOut=@StopOut, TotalCapital=@TotalCapital, UsedMargin=@UsedMargin, WithdrawTransferLimit=@WithdrawTransferLimit " + " where Id=@Id"; } try { await conn.ExecuteAsync(query, report); } catch (Exception ex) { var msg = $"Error {ex.Message} \n" + "Entity <IAccountMarginEventReport>: \n" + report.ToJson(); await _log?.WriteWarningAsync("AccountMarginEventsReportsSqlRepository", "InsertOrReplaceAsync", null, msg); throw new Exception(msg); } } }
public Task InsertOrReplaceAsync(IAccountMarginEventReport entity) { return(_tableStorage.InsertOrReplaceAsync(AccountMarginEventReportEntity.Create(entity))); }