示例#1
0
 public override void OnStartUp()
 {
     this.Member = MemberStrategy.GetMemberFromSession(this.SessionId);
     if (this.Member == null)
     {
         this.StopProcess();
     }
 }
示例#2
0
        public ValidationResult ValidateWallet(string sessionId, params string[] memberNames)
        {
            var wallet = MemberStrategy.GetMemberWallet(this.Member.id);

            if (this.TotalPrice > wallet.amount)
            {
                return(TfValidationResult.Compose("InsufficientCash", memberNames));
            }
            return(null);
        }
示例#3
0
        public void PurchaseBonus(string sessionId)
        {
            var memberId = MemberStrategy.GetMemberFromSession(sessionId)?.id;

            if (memberId == null)
            {
                return;
            }
            this.Bonuses.Entity.member_id = memberId;
            this.Bonuses.Insert();
            TokensStrategy.Add(memberId, -this.Campaign.Entity.price);
        }
示例#4
0
        /// <summary>
        /// Método que me permite cambiar la estrategia de seleccion de miembro
        /// </summary>
        /// <param name="strategy"></param>
        public void SetMemberSrtategy(MemberStrategy strategy)
        {
            switch (strategy)
            {
            case MemberStrategy.RRMEMORY:
                SetMemberSrtategy(new MemberStrategyRRM());
                break;

            default:
                SetMemberSrtategy(new MemberStrategyRRM());
                break;
            }
        }
示例#5
0
        public override IEnumerable <ValidationResult> Validate()
        {
            yield return(this.ValidateSession());

            if (this.IsValid(nameof(this.SessionId), nameof(this.SessionKey)))
            {
                this.Library.Member = MemberStrategy.GetMemberFromSession(this.SessionId);
                this.Library.Carts.Entity.SetValuesFromModel(this);
                yield return(this.Library.ValidateCart(nameof(this.SessionKey)));

                this.Library.GetCartItems();
                yield return(this.Library.ValidateWallet(this.SessionId, nameof(this.SessionId)));
            }
        }
示例#6
0
        private void InsertOrderHeaders(out int orderId, out int totalPoints)
        {
            var orderHeader = _DB.OrderHeaders;

            orderHeader.Entity.member_id = this.Member.id;
            orderHeader.Entity.price     = this.TotalPrice;
            orderHeader.Entity.points    = this.TotalPoints;
            orderHeader.Insert();

            orderId     = orderHeader.Entity.id ?? 0;
            totalPoints = orderHeader.Entity.points ?? 0;

            TokensStrategy.Add(this.Member.id, totalPoints);
            MemberStrategy.UpdateMemberWallet(this.Member.id, -this.TotalPrice);
        }
 public MemberFacade()
 {
     strategy = new MemberStrategy();
 }
示例#8
0
 public override void HandleModel()
 {
     MemberStrategy.UpdateMemberWallet(this.Member.id, this.Amount ?? 0);
 }
示例#9
0
 public override void MapModel()
 {
     this.Wallets.Entity.member_id = this.Member.id;
     this.Amount = MemberStrategy.GetMemberWallet(this.Member.id)?.amount ?? 0;
 }