internal static Type GetDetailType(this LineDetailType type)
        {
            switch (type)
            {
            case LineDetailType.DescriptionOnly:
                return(typeof(DescriptionOnly));

            case LineDetailType.DiscountLineDetail:
                return(typeof(DiscountLineDetail));

            case LineDetailType.GroupLineDetail:
                return(typeof(GroupLineDetail));

            case LineDetailType.SalesItemLineDetail:
                return(typeof(SalesItemLineDetail));

            case LineDetailType.SubTotalLineDetail:
                return(typeof(SubtotalLineDetail));

            case LineDetailType.TaxLineDetail:
                return(typeof(TaxLineDetail));

            case LineDetailType.DepositLineDetail:
                return(typeof(DepositLineDetail));

            default:
                throw new ArgumentException($"{nameof(type)} property is null or invalid.");
            }
        }
Exemple #2
0
        public static decimal GetAward(Globe_Clue Globe_Clue, string PrizeContent, Operation_Record record, List <Detail> Detail_List, ref List <string> AwardList)
        {
            decimal getdecimal = 0;
            string  animals    = string.Empty;

            try
            {
                List <Detail_S> Detail_Ss = Detail_S.GetBase(record.Buy_Content, Detail_List, record.BuyPayReturn);

                List <int> contListall = Split_Hepler.str_to_ints(PrizeContent).ToList();

                int            count    = 0;
                LineDetailType LineType = (LineDetailType)Globe_Clue.Second_Type;
                if (LineType == LineDetailType.二尾连中 || LineType == LineDetailType.尾连中 || LineType == LineDetailType.四尾连中)

                {
                    foreach (var animal in Detail_Ss)
                    {
                        foreach (var awardGlobe in contListall)
                        {
                            if (animal.GlobeCodeList.Contains(awardGlobe))
                            {
                                count++;
                                animals += animal.Name + ",";
                                break;
                            }
                        }
                    }
                    if (count >= Detail_Ss.Count)
                    {
                        getdecimal += (decimal)(record.MinPayReturn * record.UnitPrice);
                        AwardList.Add(animals);
                    }
                }
                else if (LineType == LineDetailType.二尾连不中 || LineType == LineDetailType.尾连不中 || LineType == LineDetailType.四尾连不中)
                {
                    foreach (var animal in Detail_Ss)
                    {
                        bool NoAdd = false;
                        foreach (var awardGlobe in contListall)
                        {
                            if (!animal.GlobeCodeList.Contains(awardGlobe))
                            {
                                NoAdd = true;
                                break;
                            }
                        }
                        if (!NoAdd)
                        {
                            count++;
                        }
                    }
                    if (count >= Detail_Ss.Count)
                    {
                        getdecimal += (decimal)(record.MinPayReturn * record.UnitPrice);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex);
            }
            return(getdecimal);
        }