public ActionResult Index() { var receiptPage = _contentRepository.Get <ReceiptPage>(_siteConfiguration.GetSettings().ReceiptPage); var cartHelper = new CartHelper(Cart.DefaultName); if (cartHelper.IsEmpty && !PageEditing.PageIsInEditMode) { return(View("Error/_EmptyCartError")); } string message = ""; OrderViewModel orderViewModel = null; if (cartHelper.Cart.OrderForms.Count > 0) { var orderNumber = cartHelper.Cart.GeneratePredictableOrderNumber(); _log.Debug("Order placed - order number: " + orderNumber); cartHelper.Cart.OrderNumberMethod = CartExtensions.GeneratePredictableOrderNumber; System.Diagnostics.Trace.WriteLine("Running Workflow: " + OrderGroupWorkflowManager.CartCheckOutWorkflowName); var results = OrderGroupWorkflowManager.RunWorkflow(cartHelper.Cart, OrderGroupWorkflowManager.CartCheckOutWorkflowName); message = string.Join(", ", OrderGroupWorkflowManager.GetWarningsFromWorkflowResult(results)); if (message.Length == 0) { cartHelper.Cart.SaveAsPurchaseOrder(); cartHelper.Cart.Delete(); cartHelper.Cart.AcceptChanges(); } System.Diagnostics.Trace.WriteLine("Loading Order: " + orderNumber); var order = _orderService.GetOrderByTrackingNumber(orderNumber); // Must be run after order is complete, // This might release the order for shipment and // send the order receipt by email System.Diagnostics.Trace.WriteLine(string.Format("Process Completed Payment: {0} (User: {1})", orderNumber, User.Identity.Name)); _paymentCompleteHandler.ProcessCompletedPayment(order, User.Identity); orderViewModel = new OrderViewModel(_currentMarket.GetCurrentMarket().DefaultCurrency.Format, order); } ReceiptViewModel model = new ReceiptViewModel(receiptPage); model.CheckoutMessage = message; model.Order = orderViewModel; // Track successfull order in Google Analytics TrackAfterPayment(model); _metricsLoggingService.Count("Purchase", "Purchase Success"); _metricsLoggingService.Count("Payment", "Generic"); return(View("ReceiptPage", model)); }
public ActionResult ProcessPayment(DibsPaymentPage currentPage, DibsPaymentResult result) { if (_log.IsDebugEnabled()) { _log.Debug("Payment processed: {0}", result); } var model = GetReceiptForPayment(result); // Track successfull order in Google Analytics _googleAnalyticsTracker.TrackAfterPayment(model); _metricsLoggingService.Count("Purchase", "Purchase Success"); _metricsLoggingService.Count("Payment", "Dibs"); return(View("ReceiptPage", model)); }
public ActionResult Login(LoginPage currentPage, LoginViewModel model, LoginForm loginForm, string returnUrl) { if (!ModelState.IsValid) { return(View("Index", model)); } string user = loginForm.Username; string pw = loginForm.Password; CustomerContact cc = null; if (Membership.ValidateUser(user, pw)) { MembershipUser account = Membership.GetUser(user); if (account != null) { var profile = SecurityContext.Current.CurrentUserProfile as CustomerProfileWrapper; if (profile != null) { cc = CustomerContext.Current.GetContactForUser(account); CreateAuthenticationCookie(ControllerContext.HttpContext, user, Mediachase.Commerce.Core.AppContext.Current.ApplicationName, false); string url = returnUrl; if (string.IsNullOrEmpty(returnUrl)) { if (currentPage.LoggedInPage != null) { url = _urlResolver.GetUrl(currentPage.LoggedInPage); } else { url = _urlResolver.GetUrl(ContentReference.StartPage); } } _metrics.Count("Users", "Login Success"); return(Redirect(url)); } } } ModelState.AddModelError("LoginForm.ValidationMessage", _localizationService.GetString("/common/account/login_error")); _metrics.Count("Users", "Login Failure"); return(View("Index", model)); }