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 }); }
/// <summary> /// Deprecated Method for adding a new object to the Rewards EntitySet. Consider using the .Add method of the associated ObjectSet<T> 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"); }
/// <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); } }