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
     });
 }
Beispiel #2
0
 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)));
 }