Exemplo n.º 1
0
 /// <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);
        }
Exemplo n.º 3
0
 public static void Deconstruct <TKey, TElement>(this IGrouping <TKey, TElement> group, out TKey key, out IEnumerable <TElement> elements)
 {
     key      = group.Key;
     elements = group.AsEnumerable();
 }
Exemplo n.º 4
0
        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();
            }
        }
Exemplo n.º 5
0
 // 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());
Exemplo n.º 6
0
 private static void ShouldBeEmptyGroup <TKey, TElement>(IGrouping <TKey, TElement> grouping, TKey expectedKey) =>
 grouping.ShouldSatisfyAllConditions(
     () => grouping.Key.ShouldBe(expectedKey),
     () => grouping.AsEnumerable().ShouldBeEmpty());