示例#1
0
        public int GetTypeCostPence(MembershipTypeEnum type, DateTime currentDate)
        {
            decimal cost = 50;

            if (_memberRegistration == null)
            {
                return(50);
            }

            switch (type)
            {
            case MembershipTypeEnum.Individual:
                cost = _memberRegistration.IndividualMemberCost;
                break;

            case MembershipTypeEnum.Couple:
                cost = _memberRegistration.CoupleMemberCost;
                break;

            case MembershipTypeEnum.Concession:
                cost = _memberRegistration.ConcessionMemberCost;
                break;
            }
            ;

            int costInPence = (int)(cost * 100);

            costInPence = DiscountedMonths.Contains(currentDate.Month)
                                ? costInPence / 2
                                : costInPence;
            return(costInPence);
        }
        public void AcceptOpenWaterWaiver(IMember member)
        {
            member.SetValue(MemberProperty.OpenWaterIndemnityAcceptance, true);

            //Set SwimAuthNumber
            MembershipTypeEnum membershipType = member.GetValue <MembershipTypeEnum>(MemberProperty.membershipType);
            int swimAuthNumber = GetSwimAuthNumber(membershipType);

            member.SetValue(MemberProperty.SwimAuthNumber, swimAuthNumber);
        }
示例#3
0
        public int PaymentStateCost(PaymentStates state, MembershipTypeEnum type)
        {
            switch (state)
            {
            case PaymentStates.SS05991:
            case PaymentStates.SS05992:
            {
                return(SwimsSubsCostInPence(type));
            }
            }

            throw new Exception("Unknown cost");
        }
        private int GetSwimAuthNumber(MembershipTypeEnum membershipType)
        {
            var membersDetails = GetAllMemberDetails();

            //Calculate the next available swim auth number
            IEnumerable <MemberDetailsDto> openWaterSwimmers = membersDetails.Where(m => m.SwimAuthNumber.HasValue);

            int swimAuthNumber = 0;

            if (membershipType != MembershipTypeEnum.Guest)
            {
                var swimMembers = openWaterSwimmers.Where(m => m.SwimAuthNumber < 1000).OrderBy(m => m.SwimAuthNumber);
                swimAuthNumber = swimMembers.Any() ? swimMembers.Last().SwimAuthNumber.Value + 1 : 1;
            }
            else
            {
                var guestSwimmers = openWaterSwimmers.Where(m => m.SwimAuthNumber > 1000 && m.SwimAuthNumber < 2000).OrderBy(m => m.SwimAuthNumber);
                swimAuthNumber = guestSwimmers.Any() ? guestSwimmers.Last().SwimAuthNumber.Value + 1 : 1001;
            }

            return(swimAuthNumber);
        }
示例#5
0
        public int SwimsSubsCostInPence(MembershipTypeEnum type)
        {
            int swimSubsCost = (int)(_memberRegistration.SwimSubsCost * 100);

            return(type == MembershipTypeEnum.Concession ? swimSubsCost / 2 : swimSubsCost);
        }
示例#6
0
 public MembershipPayment(MembershipTypeEnum membershipType)
 {
     MembershipType = membershipType;
 }