public bool DoCheckoutCompleted(BuyGiftCardModel model) { bool completed = false; NVPCodec decoderResults = new NVPCodec(); decoderResults = (NVPCodec)Session["result"]; TempData["OrderSummaryTitle"] = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(); // string res = Util.BuildResponse(Session["result"], Request.QueryString.Get("API"), "Thank you for your payment!"); int cardid = CreditCardRepository.GetCreditCardId(UserName, int.Parse(model.CardType), model.CardNumber, int.Parse(model.ExpirationMonth), int.Parse(model.ExpirationYear), int.Parse(model.SecurityCode)); if (cardid == 0) { cardid = AddCreditCardToDB(model).CreditCardId; } CreditCard cc = CreditCardRepository.GetCreditCardById(cardid); //Order od = AddOrderToDB(cart, decoderResults["TRANSACTIONID"].ToString(), false, 0, 0.0m); string code = Guid.NewGuid().ToString(); TempData["CardCode"] = code; DateTime dt = DateTime.Now; GiftCard gc = GiftCardRepository.AddGiftCard(0, code, CurrentUserID, cardid, 0, model.BuyerEmail, model.RecipientEmail, model.Amount, dt, model.Amount, 0.0m, 0.0m, dt, UserName, dt, UserName, true); EmailManager em = new EmailManager(); EmailContents ec = new EmailContents(); em.OrderTime = dt.ToShortTimeString() + " " + dt.ToShortDateString(); TempData["DeliveryAddress"] = ""; em.OrderType = "Buy Gift Card"; em.PaymentType = "Credit Card"; em.OrderNumber = code; //gift card code em.Name = UserName; em.Phone = model.Phone; em.IpAddress = base.CurrentUserIP; em.CreditCardType = cc.CreditCardType.Title; em.CreditCardNumber = "xxxx-xxxx-xxxx-" + cc.CreditCardNumber.Substring(cc.CreditCardNumber.Length - 4); em.ExpirationDate = cc.ExpirationMonth.ToString() + "/" + cc.ExpirationYear.ToString(); em.SecurityCode = "xx" + cc.SecurityCode.ToString().Substring(cc.SecurityCode.ToString().Length - 1); em.Instruction = model.Message; em.Total = Helper.FormatPriceWithDollar(decoderResults["AMT"].ToString()); // ToUSD(cart.Total().ToString("N2")); ec.FromEmailAddress = Globals.Settings.ContactForm.MailFrom; ec.FromName = "foodready.net"; ec.Subject = "New online order"; ec.To = model.RecipientEmail; ec.Body = em.BuildGiftCardEmailHtmlBody(model); //em.FaxBody = em.BuildGiftCardFaxHtmlBody(model); //em.SendFax(WebConfigurationManager.AppSettings["OnlineFaxNumber"].ToString()); em.Send(ec); ec.To = Globals.Settings.ContactForm.MailTo; em.Send(ec); if (em.IsSent == false) { completed = false; TempData["EmailSentMsg"] = ec.Body; // TempData["paymentResult"] = "SendEmail failed"; } else { completed = true; TempData["EmailSentMsg"] = ec.Body; //TempData["paymentResult"] = string.Empty; } return(completed); }
public ActionResult ProcessGroupCheckout(ShoppingCart cart) { string success = "failed"; string addDatabase = "failed"; string orderlist = string.Empty; List <RealTimeOrder> lr = new List <RealTimeOrder>(); if (DoGroupPaymentSuccess(GroupCart.GroupCarts[cart.CartKey].PartyTotal())) { success = "success"; NVPCodec decoderResults = new NVPCodec(); decoderResults = (NVPCodec)Session["result"]; TempData["OrderSummaryTitle"] = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(); if (User.Identity.IsAuthenticated) { base.CurrentCreditCard.CreditCardId = CreditCardRepository.GetCreditCardId(User.Identity.Name, base.CurrentCreditCard.CreditCardTypeId, base.CurrentCreditCard.CreditCardNumber, base.CurrentCreditCard.ExpirationMonth, base.CurrentCreditCard.ExpirationYear, base.CurrentCreditCard.SecurityCode); if (base.CurrentCreditCard.CreditCardId == 0) { CreditCard cc = AddCreditCardToDB(); base.CurrentCreditCard.CreditCardId = cc == null ? 0 : cc.CreditCardId; } } else { base.CurrentCreditCard.CreditCardId = 0;//guest } Dictionary <int, ShoppingCart> dCarts = GetCheckoutGroupCart(GroupCart.GroupCarts[cart.CartKey], cart); List <BizInfo> lbs = new List <BizInfo>(); foreach (var i in dCarts.Keys) { BizInfo bi = BizInfoRepository.GetBizInfoById(i); lbs.Add(bi); string restaurantUserName = bi.AspNetUser.UserName; Order od = AddGroupOrderToDB(dCarts[i], decoderResults["TRANSACTIONID"].ToString()); if (od != null) { base.CurrentOrder.OrderId = od.OrderId; base.CurrentOrder.BizInfoId = i; } orderlist = BuildGroupOrderList(dCarts[i]); SendGroupEmail(dCarts[i], decoderResults["AMT"].ToString()); lr.Add(new RealTimeOrder() { UserName = restaurantUserName, BizTitle = bi.BizTitle, OrderId = base.CurrentOrder.OrderId.ToString(), OrderList = orderlist }); } SendEmailToBoss(lbs, decoderResults["AMT"].ToString()); addDatabase = "success"; GroupCleanup(cart); } return(Json(new { result = success, databaseresult = addDatabase, orderResult = lr.ToArray(), test = TempData["EmailSentMsg"] //test only })); }