//public bool SaveData(string actionName, Payment payment, SlipDeatils slipDeatils, MemberShip memberShip,string VideoType)
        //{
        //    switch (actionName)
        //    {
        //        case "Product":
        //            GenerateProductSlip(payment, slipDeatils, 'P');

        //            //Generate Commission
        //            break;
        //        case "Book":
        //            GenerateProductSlip(payment, slipDeatils, 'B');
        //            //Generate Commission
        //            // Statements executed if expression(or variable) = value1
        //            break;
        //        case "Activate":
        //            MembershipPayment(payment, memberShip, 'S');
        //            //Generate Commission
        //            // Statements executed if expression(or variable) = value1
        //            break;
        //        case "Upgrade":
        //            MembershipPayment(payment, memberShip, 'U');
        //            //Generate Commission
        //            // Statements executed if expression(or variable) = value1
        //            break;
        //        case "UpgradeEmail":
        //            SendEmail(payment);
        //            //Generate Commission
        //            // Statements executed if expression(or variable) = value1
        //            break;
        //            break;
        //        case "Video":
        //         if(VideoType=="First Aid")
        //            {
        //                SaveVideoPayment(payment);
        //            }
        //            break;
        //        default:
        //            break;
        //            // Statements executed if no case matches
        //    }
        //    throw new NotImplementedException();
        //}
        public async Task <bool> GenerateSlip(int moduleId, Payment payment, SlipDeatils slipDeatils, Char slipType)
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    context.Payment.Add(payment);
                    context.SaveChanges();
                    slipDeatils.PaymentId = payment.PaymentId;
                    slipDeatils.SlipType  = slipType;
                    context.SlipDeatil.Add(slipDeatils);
                    context.SaveChanges();
                    var query = context.Agents.Where(a => a.ModuleId == moduleId);
                    if (query != null)
                    {
                        decimal commision = payment.PaidAmount * (Convert.ToDecimal(query.Select(a => a.CommisionPercentage)) / 100);

                        AgentCommission agentCommission = new AgentCommission();
                        agentCommission.AgentId         = Convert.ToInt32(query.Select(a => a.AgentId));
                        agentCommission.CommisionAmount = commision;
                        context.AgentCommission.Add(agentCommission);
                        context.SaveChanges();
                    }
                    transaction.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(false);
                }
            }
        }
Esempio n. 2
0
        public async Task GenerateSlipTest()
        {
            try
            {
                Payment payment = new Payment {
                    PaymentOptionId = 1, IsPaid = true, Status = 'P', PaidDate = DateTime.Now, PaidAmount = 200
                };
                SlipDeatils slipDeatils = new SlipDeatils {
                    SlipAddress = "aaa", ContactNumber = "2233"
                };
                IPaymentRepository paymentRepository = GetPaymentRepository();
                var result = await paymentRepository.GenerateSlip(1, payment, slipDeatils, 'P');

                Assert.True(Convert.ToInt32(result) > 0, "The DataSved Successfully !!");
            }
            catch (Exception ex)
            {
                Assert.NotNull(ex);
                Assert.IsType <InvalidOperationException>(ex);
            }
        }
        public async Task GenerateBookSlipTest()
        {
            try
            {
                var     controller = new PaymentController();
                Payment payment    = new Payment {
                    PaymentOptionId = 2, IsPaid = true, Status = 'P', PaidDate = DateTime.Now, PaidAmount = 200
                };
                SlipDeatils slipDeatils = new SlipDeatils {
                    SlipAddress = "aaa", ContactNumber = "2233"
                };
                int moduleId = 2;
                var result   = await controller.GenerateBookSlip(moduleId, payment, slipDeatils);

                Assert.Equal(result.Value, true);
                Assert.NotEqual(result.Value, true);
            }
            catch (Exception ex)
            {
                Assert.NotNull(ex);
            }
        }
        public async Task <JsonResult> GenerateBookSlip(int moduleId, Payment payment, SlipDeatils slipDeatils)
        {
            var result = await paymentRepository.GenerateSlip(moduleId, payment, slipDeatils, 'B');

            return(new JsonResult(result));
        }