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")); }
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")); }