public ActionResult CreateReward(string rewardCode, string rewardEmail, decimal discount, string rewardDesc)
 {
     var userId = MembershipHelper.GetUserIdByEmail(rewardEmail);
     if (userId.HasValue)
     {
         var reward = new Reward()
         {
             UserId = userId,
             RewardDescription = rewardDesc,
             Amount = discount,
             RewardCreatedAt = DateTime.Now,
             RewardTypeId = (int)RewardType.LuckySpin
         };
         db.Rewards.AddObject(reward);
         db.SaveChanges();
         ViewBag.CreateStatus = "Successful";
     }
     else
     {
         ViewBag.CreateStatus = "Error, Can't find userId with given email";
     }
     var orderFrom = DateTime.Now.Date.AddDays(-(int)DateTime.Now.Date.DayOfWeek - 7);
     var orderTo = DateTime.Now.Date.AddDays(-(int)DateTime.Now.Date.DayOfWeek);
     var ordersLastWeek = db.Orders.Where(i => i.DeliveryTime.Value.CompareTo(orderFrom) > 0 && i.DeliveryTime.Value.CompareTo(orderTo) > 0 && string.Compare(i.PayerEmail, rewardEmail) == 0);
     var universities = db.Universities;
     var rewards = db.Rewards.OrderByDescending(i => i.RewardCreatedAt);
     return View("LuckyDraw", new LuckySpinViewModel() { Candidates = ordersLastWeek, Universities = universities, Rewards = rewards });
 }
Beispiel #2
0
 /// <summary>
 /// Deprecated Method for adding a new object to the Rewards EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToRewards(Reward reward)
 {
     base.AddObject("Rewards", reward);
 }
        public ActionResult MyVotes(FormCollection values)
        {
            var selectedDishes = new List<string>();

            for (int i = 0; i < values.Count; i++)
            {
                var dishId = Convert.ToInt32(values[i]);
                var dish = db.Dishes.Single(j => j.DishId == dishId);
                var voting = new Voting() { DishId = dishId, VotedOn = DateTime.Now , VotedBy= CurrentUserId};
                db.Votings.AddObject(voting);
            }

            var reward = new Reward()
            {
                RewardCreatedAt = DateTime.Now,
                RewardDescription = "Voting",
                Amount = 30,
                UserId = CurrentUserId,
                RewardTypeId = (int)RewardType.Voting
            };
            db.Rewards.AddObject(reward);

            db.SaveChanges();
            return RedirectToAction("MyVotes");
        }
Beispiel #4
0
 /// <summary>
 /// Create a new Reward object.
 /// </summary>
 /// <param name="rewardId">Initial value of the RewardId property.</param>
 /// <param name="rewardTypeId">Initial value of the RewardTypeId property.</param>
 /// <param name="amount">Initial value of the Amount property.</param>
 /// <param name="rewardCreatedAt">Initial value of the RewardCreatedAt property.</param>
 public static Reward CreateReward(global::System.Int32 rewardId, global::System.Int32 rewardTypeId, global::System.Decimal amount, global::System.DateTime rewardCreatedAt)
 {
     Reward reward = new Reward();
     reward.RewardId = rewardId;
     reward.RewardTypeId = rewardTypeId;
     reward.Amount = amount;
     reward.RewardCreatedAt = rewardCreatedAt;
     return reward;
 }
        public void OnPaymentComplete( PaymentType paymentType, PaymentStatusLevel paymentStatus, BillingInfo billingInfo, DeliveryInfo deliveryInfo, Order order)
        {
            if ( paymentType == PaymentType.CreditCard && paymentStatus == PaymentStatusLevel.WaitingForPayment)
            {
                // payment failed, we won't record it in db
                order.PaymentStatus = paymentStatus.ToString();

            }
            else
            {
                var cart = ShoppingCartHelper.GetCart(HttpContext);
                order.PaymentStatus = paymentStatus.ToString();
                order.TxnId = order.TxnId;
                order.OrderStatusId = (int)OrderStatusLevel.Processing;
                order.PaymentNote = paymentType.ToString() ;
                order.OrderReceivedAt = DateTime.Now;
                db.Orders.AddObject(order);
                db.SaveChanges();
                foreach (var cartItem in cart.ShoppingCartItems)
                {
                    order.OrderItems.Add(new OrderItem()
                    {
                        OrderId = order.OrderId,
                        ItemId = cartItem.ItemId,
                        ItemTypeId = cartItem.ItemTypeId,
                        LineItemCost = cartItem.LineItemCost,
                        Quantity = cartItem.Quantity
                    });
                }
                db.SaveChanges();

                // save payer details
                var payer = (MyLunchBoxMembershipUser)(new MyLunchBoxMembershipProvider().GetUser(User.Identity.Name, true));
                var userDetails = db.UserDetails.Single(i => i.UserId == order.UserId);
                userDetails.FirstName = order.ReceiverFirstName;
                userDetails.LastName = order.ReceiverLastName;
                userDetails.UniversityId = LocationHelper.GetSelectedUniversityId(HttpContext);
                userDetails.UniversityDeliveryId = LocationHelper.GetDeliveryLocationId(HttpContext);
                if (billingInfo != null)
                {
                    if (userDetails.Location == null)
                    {
                        var location = new Location()
                        {
                            LocationName = billingInfo.BillingAddress1,
                            FirstName = billingInfo.BillingFirstName,
                            LastName = billingInfo.BillingLastName,
                            Address1 = billingInfo.BillingAddress1,
                            Address2 = billingInfo.BillingAddress2,
                            City = billingInfo.City,
                            StateOrProvince = billingInfo.State,
                            ZipCode = billingInfo.ZipCode,
                            CountryCode = billingInfo.CountryCode.ToString(),
                            Country = "United States"
                        };
                        db.Locations.AddObject(location);
                        db.SaveChanges();
                        userDetails.LocationId = location.LocationId;
                    }
                    else
                    {
                        userDetails.Location.FirstName = billingInfo.BillingFirstName;
                        userDetails.Location.LastName = billingInfo.BillingLastName;
                        userDetails.Location.Address1 = billingInfo.BillingAddress1;
                        userDetails.Location.Address2 = billingInfo.BillingAddress2;
                        userDetails.Location.City = billingInfo.City;
                        userDetails.Location.StateOrProvince = billingInfo.State;
                        userDetails.Location.ZipCode = billingInfo.ZipCode;
                    }

                }
                db.UserDetails.ApplyCurrentValues(userDetails);
                db.SaveChanges();
                //process reward
                if (order.rewardPoints > 0)
                {
                    var reward = new Reward()
                    {
                        Amount = -order.rewardPoints,
                        RewardTypeId = (int)RewardType.Order,
                        OrderId = order.OrderId,
                        RewardCreatedAt = DateTime.Now,
                        UserId = MembershipHelper.GetUserIdByEmail(payer.UserName),
                        RewardDescription = "Consume reward points"
                    };
                    db.Rewards.AddObject(reward);
                }
                if(order.OrderItems.Count(i=>i.ItemTypeId == (int)ItemType.MembershipCard) > 0) {
                    var rewardCards = order.OrderItems.Where(i=>i.ItemTypeId == (int)ItemType.MembershipCard);
                    var totalPoints = 0.0m;
                    foreach( var rewardCard in rewardCards) {
                        var card = db.RewardCards.Single(i=>i.RewardCardId == rewardCard.ItemId);
                        totalPoints += card.RewardPoints * rewardCard.Quantity;
                    }
                    var reward = new Reward()
                    {
                        Amount = totalPoints,
                        RewardTypeId = (int)RewardType.RewardCard,
                        OrderId = order.OrderId,
                        Txn = order.TxnId,
                        RewardCreatedAt = DateTime.Now,
                        UserId = MembershipHelper.GetUserIdByEmail(payer.UserName),
                        RewardDescription = "Reward Card Redeemed"
                    };
                    db.Rewards.AddObject(reward);
                }
                db.SaveChanges();

                var oss = new OrderStatusService();
                oss.SendOrderConfirmationMail(order.OrderId);
                // empty shopping cart
                ShoppingCartHelper.EmptyCart(HttpContext);
            }
        }