private AdvisorAssetResponse GetAdvisorAssetResponse(AdvisorProfit advisorProfit, List <DomainObjects.Asset.Asset> assets) { var asset = assets?.FirstOrDefault(c => c.Id == advisorProfit.AssetId); return(new AdvisorAssetResponse() { AssetId = advisorProfit.AssetId, AssetName = asset?.Name, AssetCode = asset?.Code, Pair = PairBusiness.GetBaseQuotePair(advisorProfit.AssetId), Type = advisorProfit.Type, OrderCount = advisorProfit.OrderCount, SuccessCount = advisorProfit.SuccessCount, TotalInvested = advisorProfit.TotalDollar - advisorProfit.SummedProfitDollar, TotalQuantity = advisorProfit.TotalQuantity, TotalProfit = advisorProfit.SummedProfitDollar, TotalFee = advisorProfit.TotalFee, AveragePrice = (advisorProfit.TotalDollar - advisorProfit.SummedProfitDollar - advisorProfit.TotalFee ?? 0) / advisorProfit.TotalQuantity, SuccessRate = (double)advisorProfit.SuccessCount / advisorProfit.OrderCount, AverageReturn = advisorProfit.SummedProfitDollar / (advisorProfit.TotalDollar - advisorProfit.SummedProfitDollar), TotalVirtual = advisorProfit.TotalDollar, SummedTradeMinutes = advisorProfit.SummedTradeMinutes }); }
private string GetInsertScript(DateTime referenceDate, AdvisorProfit advisorProfit) { var baseInsert = "INSERT INTO [AdvisorProfitHistory] (UserId, AssetId, Status, Type, ReferenceDate, SummedProfitPercentage, SummedProfitDollar, TotalDollar, TotalQuantity, OrderCount, SuccessCount, SummedTradeMinutes, TotalFee) VALUES ({0});"; return(string.Format(baseInsert, $"{advisorProfit.UserId}, {advisorProfit.AssetId}, {advisorProfit.Status}, {advisorProfit.Type}, {GetDateTimeSqlFormattedValue(referenceDate)}, {GetDoubleSqlFormattedValue(advisorProfit.SummedProfitPercentage)}, {GetDoubleSqlFormattedValue(advisorProfit.SummedProfitDollar)}, {GetDoubleSqlFormattedValue(advisorProfit.TotalDollar)}, {GetDoubleSqlFormattedValue(advisorProfit.TotalQuantity)}, {advisorProfit.OrderCount}, {advisorProfit.SuccessCount}, {GetNullableValue(advisorProfit.SummedTradeMinutes)}, {GetDoubleSqlFormattedValue(advisorProfit.TotalFee)}")); }