public IActionResult SaveChange(MembershipPayment model)
        {
            string note   = AppGlobal.InitString;
            int    result = 0;

            if (model.Id > 0)
            {
                model.Initialization(InitType.Update, RequestUserID);
                result = _menbershipPaymentResposistory.Update(model.Id, model);
                if (result > 0)
                {
                    note = AppGlobal.Success + " - " + AppGlobal.EditSuccess;
                }
                else
                {
                    note = AppGlobal.Success + " - " + AppGlobal.EditFail;
                }
            }
            else
            {
                model.Initialization(InitType.Insert, RequestUserID);
                result = _menbershipPaymentResposistory.Create(model);
                if (result > 0)
                {
                    note = AppGlobal.Success + " - " + AppGlobal.CreateSuccess;
                }
                else
                {
                    note = AppGlobal.Success + " - " + AppGlobal.CreateFail;
                }
            }
            return(Json(note));
        }
예제 #2
0
        private DateTime GetMembershipExpirationDate(MembershipPayment membershipPayment)
        {
            MembershipType membershipType = _membershipTypes
                                            .Where(x => x.Id == membershipPayment.MembershipTypeId)
                                            .FirstOrDefault();

            return(membershipPayment.CreatedAt.AddMonths(membershipType.MonthsValid));
        }
        public ActionResult DeleteConfirmed(string id)
        {
            MembershipPayment membershipPayment = db.MembershipPayments.Find(id);

            db.MembershipPayments.Remove(membershipPayment);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #4
0
        public void Test_MembershipActivatePayment()
        {
            IPayment membershipPayment = new MembershipPayment();
            IProduct product           = new Membership(membershipPayment);

            IOrderProcessor processor = new OrderProcessor();

            processor.ProcessOrder(product);
            Assert.Equal("Membership applied", product.Status);
        }
 public MembershipPaymentCreateForm(string token, Client client, MembershipPayment payment)
 {
     InitializeComponent();
     _token      = token;
     _payment    = payment;
     _client     = client;
     _apiService = new ApiService("membershipPayments", token);
     _membershipTypeApiService = new ApiService("membershipTypes", token);
     initData();
 }
 public ActionResult Edit([Bind(Include = "MembershipPayment_ID,Membership_ID,STUDENT_ID,Date")] MembershipPayment membershipPayment)
 {
     if (ModelState.IsValid)
     {
         db.Entry(membershipPayment).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Membership_ID = new SelectList(db.Memberships, "Membership_ID", "Name", membershipPayment.Membership_ID);
     return(View(membershipPayment));
 }
예제 #7
0
        public void Test_MembershipPayment()
        {
            var order = new MembershipPayment {
                Id = Guid.NewGuid()
            };
            var task   = _ruleEngineOrder.ProcessOrder(order.OrderTypeId);
            var result = task.ExecuteTask(order);

            Assert.Contains(ActivityConstants.ActivateMembership, result);
            Assert.Contains(ActivityConstants.SendEmail, result);
        }
        // GET: MembershipPayments/Details/5
        public ActionResult Details(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MembershipPayment membershipPayment = db.MembershipPayments.Find(id);

            if (membershipPayment == null)
            {
                return(HttpNotFound());
            }
            return(View(membershipPayment));
        }
        // GET: MembershipPayments/Edit/5
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MembershipPayment membershipPayment = db.MembershipPayments.Find(id);

            if (membershipPayment == null)
            {
                return(HttpNotFound());
            }
            ViewBag.STUDENT_ID    = new SelectList(db.Students, "STUDENT_ID", "STUDENT_Fname", membershipPayment.STUDENT_ID);
            ViewBag.Membership_ID = new SelectList(db.Memberships, "Membership_ID", "Name", membershipPayment.Membership_ID);
            return(View(membershipPayment));
        }
        public IActionResult Create(MembershipPayment model)
        {
            string note = AppGlobal.InitString;

            model.Initialization(InitType.Insert, RequestUserID);
            int result = _menbershipPaymentResposistory.Create(model);

            if (result > 0)
            {
                note = AppGlobal.Success + " - " + AppGlobal.CreateSuccess;
            }
            else
            {
                note = AppGlobal.Success + " - " + AppGlobal.CreateFail;
            }
            return(Json(note));
        }
예제 #11
0
        private void DgvPayments_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int selectedRowIndex = dgvPayments.CurrentCell.RowIndex;
            int id = int.Parse(dgvPayments.Rows[selectedRowIndex].Cells[0].Value.ToString());

            MembershipPayment           payment     = _payments.Where(x => x.Id == id).FirstOrDefault();
            MembershipPaymentCreateForm paymentForm = new MembershipPaymentCreateForm(_accessToken, _client, payment);

            paymentForm.MdiParent   = this.MdiParent;
            paymentForm.WindowState = FormWindowState.Maximized;
            paymentForm.ControlBox  = false;
            paymentForm.MaximizeBox = false;
            paymentForm.MinimizeBox = false;
            paymentForm.ShowIcon    = false;

            paymentForm.Show();
        }
예제 #12
0
        public void TestMethod1()
        {
            Customer customer = new Customer();

            customer.MembershipType = MembershipPayment.MembershipTypeEnum.Activate;
            customer.VideoText      = "Learning to ski";

            MembershipPayment membershipPayment = new MembershipPayment(MembershipPayment.MembershipTypeEnum.Activate);

            BookPayment              bookPayment              = new BookPayment();
            VideoPAyment             videoPayment             = new VideoPAyment();
            PhysicalProductPaymentcs physicalProductPaymentcs = new PhysicalProductPaymentcs();


            //Below code to test with varios payment types and assert
            ProcessOrder order = new ProcessOrder(bookPayment, customer);
        }
예제 #13
0
        public ActionResult <string> SaveChange(MembershipPayment model)
        {
            Result routeResult;
            int    result = 0;

            if (model.Id > 0)
            {
                model.Initialization(InitType.Update, RequestUserID);
                result = _menbershipPaymentResposistory.Update(model.Id, model);
                if (result > 0)
                {
                    routeResult = new Result()
                                  .setResultType(ResultType.Success)
                                  .setMessage(AppGlobal.EditSuccess);
                }
                else
                {
                    routeResult = new Result()
                                  .setResultType(ResultType.Error)
                                  .setErrorType(ErrorType.EditError)
                                  .setMessage(AppGlobal.EditFail);
                }
            }
            else
            {
                model.Initialization(InitType.Insert, RequestUserID);
                result = _menbershipPaymentResposistory.Create(model);
                if (result > 0)
                {
                    routeResult = new Result()
                                  .setResultType(ResultType.Success)
                                  .setMessage(AppGlobal.CreateSuccess);
                }
                else
                {
                    routeResult = new Result()
                                  .setResultType(ResultType.Error)
                                  .setErrorType(ErrorType.InsertError)
                                  .setMessage(AppGlobal.CreateFail);
                }
            }
            return(ObjectToJson(routeResult));
        }
예제 #14
0
        public void Setup_SendEmails()
        {
            var emailMock = new Mock <IEmailService>();

            Program.Setup(Messenger.Instance, emailMock.Object);

            var mem = new MembershipPayment();

            Messenger.Instance.Publish(mem);
            Thread.Sleep(500); //this should no be added to tests, a better way of finding out when the task are done should be implemented inside of the Messenger class
            Messenger.Instance.Publish(new UpgradeMembershipPayment()
            {
                MebershipID = mem.MebershipID
            });
            Thread.Sleep(500);

            emailMock.Verify(e => e.SendActivationEmail(It.IsAny <string>()), Times.Once);
            emailMock.Verify(e => e.SendUpgradeEmail(It.IsAny <string>()), Times.Once);
        }
예제 #15
0
 /// <summary>
 /// Inserts a MembershipPayment
 /// </summary>
 /// <param name="membershipPayment">MembershipPayment</param>
 public static void InsertMembershipPayment(MembershipPayment membershipPayment)
 {
     try
     {
         using (var conn = GetConnection())
         {
             using (SqlCommand cmd = new SqlCommand("MembershipPayment_InsertDetails", conn))
             {
                 cmd.CommandType = CommandType.StoredProcedure;
                 cmd.Parameters.Add("@UserId", SqlDbType.Int).Value           = membershipPayment.UserId;
                 cmd.Parameters.Add("@PaymentMode", SqlDbType.Int).Value      = membershipPayment.PaymentMode;
                 cmd.Parameters.Add("@ChequeNumber", SqlDbType.VarChar).Value = membershipPayment.ChequeNumber != null ? membershipPayment.ChequeNumber : string.Empty;
                 cmd.Parameters.Add("@FullAmount", SqlDbType.Int).Value       = membershipPayment.FullAmount;
                 conn.Open();
                 cmd.ExecuteNonQuery();
             }
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
예제 #16
0
        public ActionResult Create([Bind(Include = "MembershipPayment_ID,Membership_ID,STUDENT_ID,Date")] MembershipPayment membershipPayment)
        {
            if (ModelState.IsValid)
            {
                //update set ID and Date
                var count = db.MembershipPayments.ToList().Count();
                membershipPayment.MembershipPayment_ID = (count + 1).ToString();
                membershipPayment.Date = DateTime.Now;

                //Update student membership
                var student = db.Students.SingleOrDefault(b => b.STUDENT_ID == membershipPayment.STUDENT_ID);
                membershipPayment.Membership = db.Memberships.SingleOrDefault(b => b.Membership_ID == membershipPayment.Membership_ID);

                student.Membership          = membershipPayment.Membership;
                student.MembershipValidTill = DateTime.Now.AddDays(Convert.ToDouble(membershipPayment.Membership.Duration));

                //Calculate Profit from Memberships
                var membership = db.Memberships.SingleOrDefault(b => b.Membership_ID == membershipPayment.Membership_ID);
                var cost       = Convert.ToDecimal(membership.Price);
                if (string.IsNullOrEmpty(membership.Profit))
                {
                    membership.Profit = "0";
                }
                var profit = Convert.ToDecimal(membership.Profit);

                membership.Profit = (profit + cost).ToString();


                db.MembershipPayments.Add(membershipPayment);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.STUDENT_ID    = new SelectList(db.Students, "STUDENT_ID", "STUDENT_Fname", membershipPayment.STUDENT_ID);
            ViewBag.Membership_ID = new SelectList(db.Memberships, "Membership_ID", "Name", membershipPayment.Membership_ID);
            return(View(membershipPayment));
        }
 public MembershipPayProcess(MembershipPayment membershipPayment)
 {
     this._membershipPayment = membershipPayment;
 }