Beispiel #1
0
        public ActionResult Pay(Order order)
        {
            logger.Info("Method Start" + " at " + DateTime.UtcNow);
            EasyPayContext db                = new EasyPayContext();
            int            servicetypeId     = 0;
            int            serviceOperatorId = 0;

            ServiceEngine.ServiceHelper serviceHelper = new ServiceEngine.ServiceHelper();
            ServiceEngine.ServiceOrder  serviceOrder  = new ServiceEngine.ServiceOrder();
            logger.Info("Type is " + Request.Form["type"] + " at " + DateTime.UtcNow);
            try
            {
                if (Request.Form["type"] == "Mobile")
                {
                    if (Request.Form["mobiletype"] == "Mobile")
                    {
                        servicetypeId     = 1;
                        serviceOperatorId = Convert.ToInt32(Request.Form["prepaidOperators"]);
                    }
                    else
                    {
                        servicetypeId     = 2;
                        serviceOperatorId = Convert.ToInt32(Request.Form["postpaidOperators"]);
                    }
                    serviceOrder.ServiceType = ServiceEngine.ServiceType.Mobile;
                }
                else if (Request.Form["type"] == "DTH")
                {
                    servicetypeId            = 3;
                    serviceOperatorId        = Convert.ToInt32(Request.Form["dthOperators"]);
                    serviceOrder.ServiceType = ServiceEngine.ServiceType.DTH;
                }
                else if (Request.Form["type"] == "DataCard")
                {
                    servicetypeId            = 4;
                    serviceOperatorId        = Convert.ToInt32(Request.Form["dataCardOperators"]);
                    serviceOrder.ServiceType = ServiceEngine.ServiceType.DataCard;
                }
                var providerService = db.ProviderServices.FirstOrDefault(x => x.ProviderId == 2 && x.ServiceOperatorId == serviceOperatorId);
                order.ProviderServiceId = providerService.ProviderServiceId;
                string   utcDateString = System.DateTime.UtcNow.ToString();
                DateTime localDate     = DateTime.Parse(utcDateString,
                                                        CultureInfo.CurrentCulture,
                                                        DateTimeStyles.AssumeUniversal);
                order.OrderDate           = localDate.AddMinutes(30).AddHours(12);
                order.comments            = "Pending";
                order.Status              = (int)OrderStatus.RegargeInProgress;
                order.commission          = providerService.Comission;
                serviceOrder.OperatorCode = providerService.Format;
                serviceOrder.ProviderType = ServiceEngine.ProviderType.JOLO;
                serviceOrder.Amount       = order.Amount;
                serviceOrder.ItemCode     = order.ItemCode;
                if (User.Identity.IsAuthenticated)
                {
                    // if (ModelState.IsValid)
                    // {
                    MembershipUser membershipUser = System.Web.Security.Membership.GetUser();
                    //UserProfile userProfile = db.UserProfiles.Where(u => u.UserName == membershipUser.UserName).FirstOrDefault();
                    //userProfile.IsSkip = Session["_ssnUserPreference"].ToString();
                    //db.Entry(userProfile).State = EntityState.Modified;
                    //db.SaveChanges();

                    order.UserProfileId = Convert.ToInt32(membershipUser.ProviderUserKey);
                    order.UserProfile   = db.UserProfiles.First(t => t.UserProfileId == order.UserProfileId);
                    db.Orders.Add(order);
                    db.SaveChanges();
                    order.Remarks         = "AZ" + order.OrderId.ToString() + GetUniqueKey();
                    db.Entry(order).State = EntityState.Modified;
                    order.Status          = (int)OrderStatus.RegargeInProgress;
                    db.SaveChanges();
                    serviceOrder.OrderNumber = order.Remarks;
                    //string resultString = serviceHelper.DoRecharge(serviceOrder);
                    //ProcessResult(resultString, order);
                    //db.SaveChanges();

                    //If user agrees to set preference, then save details in Preference table.

                    //if (order.UserProfile.IsSkip == "No")
                    //{
                    //    if (Session["_ssnUserPreference"].ToString() == "No")
                    //    {
                    //        Preference preference = new Models.Preference();
                    //        var userName = User.Identity.Name;
                    //        var thisUser = db.UserProfiles.Where(u => u.UserName.Equals(userName)).FirstOrDefault();
                    //        if (thisUser != null)
                    //        {
                    //            preference.UserProfileId = thisUser.UserProfileId;
                    //            preference.Amount = order.Amount.ToString();
                    //            preference.ServiceOperatorId = serviceOperatorId;
                    //            preference.RechargeNumber = order.ItemCode;
                    //            preference.ServiceTypeId = servicetypeId;
                    //            db.Preferences.Add(preference);
                    //            db.SaveChanges();
                    //        }
                    //    }
                    //}
                    Session["order"]        = order;
                    Session["serviceOrder"] = serviceOrder;
                    //return Redirect("~/Order/Index");
                    return(Redirect("~/ConfirmOrder/Index"));
                    // }
                    //return RedirectToAction("Index");
                }
                else
                {
                    Session["order"]        = order;
                    Session["serviceOrder"] = serviceOrder;

                    return(RedirectToAction("Login", "Account", new { returnUrl = "/Home/Pay" }));
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error: " + ex.InnerException + " " + ex.StackTrace + " " + ex.Message + " at " + DateTime.UtcNow);
            }
            return(RedirectToAction("Index"));
        }
Beispiel #2
0
        public ActionResult Pay()
        {
            logger.Info("Method Start" + " at " + DateTime.UtcNow);
            ServiceEngine.ServiceHelper serviceHelper = new ServiceEngine.ServiceHelper();
            Order order = (Order)Session["order"];

            ServiceEngine.ServiceOrder serviceOrder = (ServiceEngine.ServiceOrder)Session["serviceOrder"];
            try
            {
                if (Session["order"] != null)
                {
                    logger.Info("Order Session Found" + " at " + DateTime.UtcNow);
                    if (ModelState.IsValid)
                    {
                        EasyPayContext db = new EasyPayContext();
                        //MembershipUser membershipUser = Membership.GetUser();
                        //order.UserProfileId = Convert.ToInt32(membershipUser.ProviderUserKey);
                        //UserWallet userwallet = db.UserWallets.FirstOrDefault(x => x.UserProfileId == order.UserProfileId);
                        //if (userwallet != null)
                        //{
                        //    if (userwallet.Balance > order.Amount)
                        //    {
                        //        userwallet.Balance -= order.Amount;
                        //        db.Entry(userwallet).State = EntityState.Modified;
                        //    }
                        //    else
                        //    {
                        //        return Redirect("~/Order/Balance");
                        //    }
                        //}
                        MembershipUser membershipUser = System.Web.Security.Membership.GetUser();
                        order.UserProfileId = Convert.ToInt32(membershipUser.ProviderUserKey);
                        logger.Info("Order UserProfileId " + order.UserProfileId + " at " + DateTime.UtcNow);

                        db.Orders.Add(order);
                        db.SaveChanges();
                        order.Remarks         = "AZ" + order.OrderId.ToString() + GetUniqueKey();
                        db.Entry(order).State = EntityState.Modified;
                        order.Status          = (int)OrderStatus.RegargeInProgress;
                        logger.Info("Order Status " + order.Status + " at " + DateTime.UtcNow);
                        db.SaveChanges();
                        serviceOrder.OrderNumber = order.Remarks;
                        Session["order"]         = order;
                        Session["serviceOrder"]  = serviceOrder;
                        //string resultString = serviceHelper.DoRecharge(serviceOrder);
                        //ProcessResult(resultString, order);
                        //db.SaveChanges();
                        //Session.Remove("order");
                        //Session.Remove("serviceOrder");
                        //return Redirect("~/Order/Index");

                        return(Redirect("~/ConfirmOrder/Index"));
                    }
                    return(Redirect("~/ConfirmOrder/Index"));
                    //return Redirect("~/Order/Index");
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error: " + ex.InnerException + " " + ex.StackTrace + " " + ex.Message + " at " + DateTime.UtcNow);
            }

            return(RedirectToAction("Index"));
        }