示例#1
0
        public void MemeberShipPaymentRule(ProductOrderDeatils ProdOrder)
        {
            try
            {
                var PType = ProdOrder.PaymentType.ToString();
                if (PType == PaymentDetail.PaymentTypes.MemebershipActPayment.ToString())
                {
                    ProdOrder.ValidationFlag = true;
                    ProdOrder.Miscellaneous  = ProdOrder.Miscellaneous +
                                               "Memebership Upgraded applied for Customer:" +
                                               ProdOrder.cutomerID;
                }

                else if (PType == PaymentDetail.PaymentTypes.MemebershipUpPayment.ToString())
                {
                    ProdOrder.ValidationFlag = true;
                }

                //Email Rule.
                EmailR.EmailSendRule(ProdOrder);
            }


            catch (Exception e)
            {
                ProdOrder.ValidationFlag  = false;
                ProdOrder.ValidationError = ProdOrder.ValidationError +
                                            ProdOrder.ValidationFlag + "Failed to Memebership/Upgrade Payment Rule" +
                                            e.Message;
            }
        }
示例#2
0
 public void RuleExcute(ProductOrderDeatils ProdOrder)
 {
     ProductPaymentRule(ProdOrder);
     BookPaymentRule(ProdOrder);
     VideoPaymentRule(ProdOrder);
     MemeberShipPaymentRule(ProdOrder);
 }
示例#3
0
        public void ProductPaymentRule(ProductOrderDeatils ProdOrder)
        {
            var PType = ProdOrder.PaymentType.ToString();

            if (PType == PaymentDetail.PaymentTypes.PhysicalProduct.ToString())
            {
                ProdOrder.ValidationFlag = true;
                ProdOrder.PackingSlip    = true;
                AgentR.AgentCommission(ProdOrder);
            }
        }
示例#4
0
        public void EmailSendRule(ProductOrderDeatils ProdOrder)
        {
            var PType = ProdOrder.PaymentType.ToString();
            var pDesc = ProdOrder.PaymentDesc.ToString();

            if (PType == PaymentDetail.PaymentTypes.MemebershipActPayment.ToString() ||
                PType == PaymentDetail.PaymentTypes.MemebershipUpPayment.ToString())
            {
                ProdOrder.ValidationFlag = true;
                ProdOrder.Miscellaneous  = ProdOrder.Miscellaneous +
                                           "Email has been sent to customer:" +
                                           ProdOrder.cutomerID;
            }
        }
示例#5
0
        public void MemeberShipRuleCheck()
        {
            ProductOrderDeatils ProdOrder = new ProductOrderDeatils();

            ProdOrder.OrderNumber = 1;
            ProdOrder.PaymentDesc = "none";
            ProdOrder.PaymentType = PaymentDetail.PaymentTypes.MemebershipActPayment.ToString();
            ProdOrder.cutomerID   = 101;


            PaymnetTypeRule PaymentRule = new PaymnetTypeRule();

            PaymentRule.MemeberShipPaymentRule(ProdOrder);
            Assert.AreEqual(true, ProdOrder.ValidationFlag, "Test is failed");
        }
示例#6
0
        public void AgentCommission(ProductOrderDeatils ProdOrder)
        {
            try
            {
                ProdOrder.ValidationFlag = true;
                ProdOrder.AgentComm      = ProdOrder.AgentCommPer * ProdOrder.TotalOrderCost / 100;
            }

            catch
            {
                ProdOrder.ValidationFlag  = false;
                ProdOrder.ValidationError = ProdOrder.ValidationError + ProdOrder.OrderNumber +
                                            "Validation failed for Agent Commision";
            }
        }
示例#7
0
        public void ExcuteAllRules()
        {
            ProductOrderDeatils ProdOrder = new ProductOrderDeatils();

            ProdOrder.OrderNumber    = 1;
            ProdOrder.PaymentDesc    = "Learning To Ski";
            ProdOrder.PaymentType    = PaymentDetail.PaymentTypes.VideoPayment.ToString();
            ProdOrder.TotalOrderCost = 100;
            ProdOrder.AgentComm      = 0;
            ProdOrder.AgentCommPer   = 5;

            PaymnetTypeRule PaymentRule = new PaymnetTypeRule();

            PaymentRule.RuleExcute(ProdOrder);
            Assert.AreEqual(true, ProdOrder.ValidationFlag, "Test is failed");
        }
示例#8
0
 public void VideoPaymentRule(ProductOrderDeatils ProdOrder)
 {
     try
     {
         var PType = ProdOrder.PaymentType.ToString();
         if (PType == PaymentDetail.PaymentTypes.VideoPayment.ToString())
         {
             ProdOrder.PackingSlip    = true;
             ProdOrder.ValidationFlag = true;
             ShipR.PackingSlipRule(ProdOrder);
         }
     }
     catch
     {
         ProdOrder.ValidationFlag  = false;
         ProdOrder.ValidationError = ProdOrder.ValidationError +
                                     ProdOrder.ValidationFlag + "Failed to validate Video Payment Rule";
     }
 }
示例#9
0
        public void PackingSlipRule(ProductOrderDeatils ProdOrder)
        {
            var PType = ProdOrder.PaymentType.ToString();
            var pDesc = ProdOrder.PaymentDesc.ToString();

            if (PType == PaymentDetail.PaymentTypes.BookPayment.ToString())
            {
                ProdOrder.PackingSlip    = true;
                ProdOrder.ValidationFlag = true;
                ProdOrder.Miscellaneous  = ProdOrder.Miscellaneous +
                                           "Duplicate Packing Slip for Royalty Department";
            }


            if (PType == PaymentDetail.PaymentTypes.VideoPayment.ToString() &&
                pDesc == "Learning To Ski")
            {
                ProdOrder.PackingSlip    = true;
                ProdOrder.ValidationFlag = true;
                ProdOrder.Miscellaneous  = ProdOrder.Miscellaneous +
                                           "Adding first add video to packinglist for OrderID:"
                                           + ProdOrder.OrderNumber;
            }
        }