public virtual Order CreateOrder(Session session, Basket basket, pci.BasketStatus basketStatus, string clientIpAddress, string languageId, string micrositeId) { try { Guid?currencyId = new Guid(session.CurrencyId); var currency = CurrencyRepository.GetSingle(x => x.Id.Equals(currencyId)); var micrositeCurrency = GetCurrencyFromMicrositeId(micrositeId); var user = UserRepository.GetSingle(x => x.Id == basket.UserId); var order = new Order { PaymentMethod = basketStatus.card.type, NumbViewPdf = 0, OpenForPrinting = true, DatePdfLastViewed = DateTime.Now, UserId = user.Id, UserName = user.Firstname + " " + user.Lastname, EmailAddress = string.IsNullOrWhiteSpace(user.FriendlyEmail) ? user.Email : user.FriendlyEmail, CurrencyId = currencyId, LanguageId = languageId, Total = basket.Total, CcLast4Digits = basketStatus.card.number, ClientIp = clientIpAddress, WorldPayMerchantId = basketStatus.merchant.merchantId, GatewayReference = basketStatus.merchant.gatewayref, NameOnCard = basketStatus.card.name, BasketId = basket.Id, SessionId = session.Id, TotalQuantity = basket.BasketLines.Sum(x => x.TicketQuantity), IsMobileAppOrder = false, //check how this is populated on old system. DateCreated = LocalizationService.GetLocalDateTime(micrositeId), FromNewCheckout = true, PurchaseMicrosite = micrositeId, PurchaseMicrositeCurrencyCode = micrositeCurrency.ISOCode }; //populate order lines with existing baskets. foreach (var basketLine in basket.BasketLines) { order.OrderLines.Add(ConvertBasketLineToOrderLine(basketLine, order.Id)); } OrderRepository.Add(order); order.User = user; order.Currency = currency; return(order); } catch (Exception ex) { Log(string.Format("Order Create Failed sessionid: {0} basketid:{1} {2} ", session.Id, basket.Id, ex.Message)); return(null); } }
private void LoadBasket() { //make sure we have a valid session if (CurrentSession == null || CurrentSession.BasketId == null || CurrentSession.BasketId == Guid.Empty) { GoToErrorPage(GetTranslation("Session_Details_NotFound"), "Session not found in Session"); return; } _basketId = CurrentSession.BasketId.ToString(); if (string.IsNullOrEmpty(_basketId)) { _basketId = AuthenticationService.GetBasketIdFromCookie(BasketCookieName); GoToErrorPage(GetTranslation("Session_Basket_NotFound"), "Basket Id not found in Session Id:" + _basketId); return; } Log("Retrieving basket with id:" + _basketId); _basket = BasketService.GetBasket(new Guid(_basketId)); }