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);
        }
Beispiel #2
0
        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
            }));
        }