예제 #1
0
        /// <summary>
        /// 得到价格
        /// </summary>
        /// <param name="calculator"></param>
        /// <returns></returns>
        public virtual decimal GetMarryPrice(FreightCalculatorEntity calculator)
        {
            var carry = Carries.FirstOrDefault(it => it.RegionArray != null
                                               &&
                                               (it.RegionArray.Contains(calculator.Province) ||
                                                it.RegionArray.Contains(calculator.City) ||
                                                it.RegionArray.Contains(calculator.County)));

            if (carry == null)
            {
                carry = Carries.FirstOrDefault(it => string.IsNullOrWhiteSpace(it.Region));
            }
            if (carry == null)
            {
                return(0);
            }
            var defaultPrice = carry.DefaultPrice;

            if (calculator.Count > carry.DefaultCount)
            {
                var overCount  = calculator.Count - carry.DefaultCount;
                var priceCount =
                    (int)Math.Ceiling((double)overCount / (carry.ContinueCount == 0 ? 1 : carry.ContinueCount));
                return(defaultPrice + priceCount * carry.ContinuePrice);
            }
            return(defaultPrice);
        }
예제 #2
0
        public IStat CreateStat(string statType)
        {
            IStat stat = null;

            switch (statType)
            {
            case "Q":
                stat = new Sack();
                break;

            case "Y":
                stat = new YardsRushing();
                break;

            case "R":
                stat = new Carries();
                break;

            case "C":
                stat = new Completions();
                break;

            case "A":
                stat = new PassAttempts();
                break;

            case "S":
                stat = new YardsPassing();
                break;

            case "Z":
                stat = new PassesIntercepted();
                break;

            case "P":
                stat = new PassesCaught();
                break;

            case "G":
                stat = new YardsReceiving();
                break;

            case "M":
                stat = new InterceptionsMade();
                break;

            default:
                RosterLib.Utility.Announce(string.Format("A stat of type {0} cannot be found", statType));
                break;
            }

            return(stat);
        }
예제 #3
0
        public IStat CreateStat( string statType )
        {
            IStat stat = null;

            switch (statType)
            {
                case "Q":
                    stat = new Sack();
                    break;
                case "Y":
                    stat = new YardsRushing();
                    break;
                case "R":
                    stat = new Carries();
                    break;
                case "C":
                    stat = new Completions();
                    break;
                case "A":
                    stat = new PassAttempts();
                    break;
                case "S":
                    stat = new YardsPassing();
                    break;
                case "Z":
                    stat = new PassesIntercepted();
                    break;
                case "P":
                    stat = new PassesCaught();
                    break;
                case "G":
                    stat = new YardsReceiving();
                    break;
                case "M":
                    stat = new InterceptionsMade();
                    break;
                default:
                    RosterLib.Utility.Announce( string.Format("A stat of type {0} cannot be found", statType ) );
                    break;
            }

            return stat;
        }