/// <summary> /// 获取当前组有效的产品数量和价格 /// </summary> /// <param name="group"></param> /// <param name="productSoldNums"></param> /// <param name="currentActivityRules"></param> /// <param name="currentActivity"></param> /// <param name="currentActivityRequestNum"></param> /// <param name="currentActivityRequestTotalPrice"></param> /// <returns></returns> private Tuple <int, decimal> GetEffictiveCurrentActivityRequestNumAndPrice(IGrouping <string, CompProduct> group, IEnumerable <ActivityPidSoldNumModel> productSoldNums, List <SalePromotionActivityDiscount> currentActivityRules, SalePromotionActivityModel currentActivity, int currentActivityRequestNum, decimal currentActivityRequestTotalPrice) { foreach (var product in group.AsEnumerable()) { if (_verifyPayAndInstallMethod) { if (product.Pid.StartsWith("TR", StringComparison.CurrentCultureIgnoreCase) && currentActivity.InstallMethod > 0 && product.RequestInstallMethod != currentActivity.InstallMethod) { currentActivityRequestNum = currentActivityRequestNum - product.RequestNum; currentActivityRequestTotalPrice = currentActivityRequestTotalPrice - product.RequestPrice * product.RequestNum; continue; } if (product.Pid.StartsWith("TR", StringComparison.CurrentCultureIgnoreCase) && currentActivity.PaymentMethod > 0 && product.RequestPaymentMethod != currentActivity.PaymentMethod) { currentActivityRequestNum = currentActivityRequestNum - product.RequestNum; currentActivityRequestTotalPrice = currentActivityRequestTotalPrice - product.RequestPrice * product.RequestNum; continue; } } var currentProductSoldNum = productSoldNums.FirstOrDefault(s => string.Equals(s.Pid, product.Pid))?.SoldNum ?? 0; if (product.LimitQuantity < currentProductSoldNum + product.RequestNum) { currentActivityRequestNum = currentActivityRequestNum - product.RequestNum; currentActivityRequestTotalPrice = currentActivityRequestTotalPrice - product.RequestPrice * product.RequestNum; continue; } } return(new Tuple <int, decimal>(currentActivityRequestNum, currentActivityRequestTotalPrice)); }
private List <MutualFundTransaction> GetMFFundInvestments(IGrouping <object, DataRow> fundsGrp, string type) { List <MutualFundTransaction> result = null; try { if (fundsGrp != null) { result = (from t in fundsGrp.AsEnumerable() where t["Type"].ToString() == type select new MutualFundTransaction() { TransactionId = int.Parse(t["TransactionId"].ToString()), PurchaseDate = DateTime.Parse(t["PurchaseDate"].ToString()), Amount = decimal.Parse(t["Amount"].ToString()), CurrentValue = decimal.Parse(t["CurrentValue"].ToString()), Profit = (Convert.ToDecimal(t["CurrentValue"].ToString()) - Convert.ToDecimal(t["Amount"].ToString())), ProfitPer = GetProfitPer(t), AgePer = CalculatePercentAgeGrowth(t), Units = decimal.Parse(t["Units"].ToString()), DividendPerNAV = decimal.Parse(t["DividendPerNAV"].ToString()), Dividend = decimal.Parse(t["Dividend"].ToString()), SellDate = DateTime.Parse(t["SellDate"].ToString()), ISSIP = t["IsSipInvestment"].ToString() == "N"? false : true, FolioDetails = new MutualFundFolios() { Id = int.Parse(t["FolioId"].ToString()), Number = t["FolioNumber"].ToString() } }).ToList(); } } catch (Exception ex) { } return(result); }
public static void Deconstruct <TKey, TElement>(this IGrouping <TKey, TElement> group, out TKey key, out IEnumerable <TElement> elements) { key = group.Key; elements = group.AsEnumerable(); }
public void Serialize(ref JsonWriter writer, IGrouping <TKey, TElement> value, IJsonFormatterResolver formatterResolver) { if (value == null) { writer.WriteNull(); return; } else { writer.WriteRaw(CollectionFormatterHelper.groupingName[0]); formatterResolver.GetFormatterWithVerify <TKey>().Serialize(ref writer, value.Key, formatterResolver); writer.WriteRaw(CollectionFormatterHelper.groupingName[1]); formatterResolver.GetFormatterWithVerify <IEnumerable <TElement> >().Serialize(ref writer, value.AsEnumerable(), formatterResolver); writer.WriteEndObject(); } }
// Converts a System Group to this Group. public static Grouping <TKey, TElement> ToGroup <TKey, TElement>(this IGrouping <TKey, TElement> group) => new Grouping <TKey, TElement>(group.Key, group.AsEnumerable());
private static void ShouldBeEmptyGroup <TKey, TElement>(IGrouping <TKey, TElement> grouping, TKey expectedKey) => grouping.ShouldSatisfyAllConditions( () => grouping.Key.ShouldBe(expectedKey), () => grouping.AsEnumerable().ShouldBeEmpty());