public ActionResult ConfirmGiftOrders(GiftOrder giftOrder)
        {
            try
            {
                if (Request.IsAjaxRequest())
                {
                    //creating pending order for gift cards
                    giftOrder.UserId = UserContext.UserId;
                    var order = _giftCardOrderService.CreateOrder(giftOrder);

                    var confirmGiftCards = Mapper.Map <ConfirmGiftCards>(order);
                    for (var i = 0; i < confirmGiftCards.GiftOrderDetail.Count; i++)
                    {
                        confirmGiftCards.GiftOrderDetail[i].Index = i + 1;
                    }

                    var GiftOrderDetails = confirmGiftCards.GiftOrderDetail;

                    return(PartialView("_GiftOrderDetails", confirmGiftCards));
                }
                return(PartialView("_GiftOrderDetails"));
            }
            catch (Exception e)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(e);
                return(PartialView("_GiftOrderDetails"));
            }
        }
Example #2
0
        public void OrderGiftDirectlyAtGoblin_ReturnFunctionEatHomeworkForDoll()
        {
            var goblin = new Goblin();
            var child  = ChildList[0];
            var order  = new GiftOrder(child, typeof(Doll), GiftColor.Black);

            Assert.Equal("Christmas.GiftStrategy.EatHomework", goblin.Create(order).Function.ToString());
        }
Example #3
0
        public void OrderGift_ReturnFunctionBeepForDoll()
        {
            var child = ChildList[0];
            var order = new GiftOrder(child, typeof(Doll), GiftColor.Green);

            OrderAndDeliverGifts(order);
            Assert.Equal("Christmas.GiftStrategy.Beep", order.Gift.Function.ToString());
        }
Example #4
0
        public void OrderGift_ReturnGiftColorForDoll()
        {
            var child = ChildList[0];
            var order = new GiftOrder(child, typeof(Doll), GiftColor.Green);

            OrderAndDeliverGifts(order);
            Assert.Equal(GiftColor.Green, child.Gift.Color);
        }
Example #5
0
        public void OrderFortniteVBucks_ReturnDollInstead()
        {
            var child = ChildList[0];
            var order = new GiftOrder(child, typeof(FortniteVBucks), GiftColor.Black);

            OrderAndDeliverGifts(order);
            Assert.Equal(typeof(Doll), child.Gift.GiftType.GetType());
        }
Example #6
0
        public void OrderGift_ReturnGiftTypeForAk47()
        {
            var child = ChildList[0];
            var order = new GiftOrder(child, typeof(Ak47), GiftColor.Black);

            OrderAndDeliverGifts(order);
            Assert.Equal(typeof(Ak47), child.Gift.GiftType.GetType());
        }
Example #7
0
 public GiftOrder FailOrder(GiftOrder order, string message)
 {
     order.LastFailureMessage = message;
     order.FailedAt           = DateTime.UtcNow;
     order.OrderStatus        = StatusFailed();
     _giftCardOrderRepository.Update(order);
     return(order);
 }
Example #8
0
 public GiftOrder CompleteOrder(GiftOrder order, string chargeId)
 {
     order.CompletedAt        = DateTime.UtcNow;
     order.FailedAt           = null;
     order.LastFailureMessage = null;
     order.ChargeId           = chargeId;
     order.OrderStatus        = StatusComplete();
     _giftCardOrderRepository.Update(order);
     return(order);
 }
Example #9
0
        public FuctionalTests()
        {
            _buyer = new Buyer
            {
                FirstName   = "buyers",
                LastName    = "Two",
                PhoneNumber = 123456789,
                Email       = "*****@*****.**",

                Address = "Bangalore",
            };

            _contactUs = new ContactUs
            {
                Name        = "John",
                PhoneNumber = 9888076466,
                Email       = "*****@*****.**",
                Address     = "Paris"
            };
            _gift = new Gift
            {
                GiftName = "Toys",
                Ammount  = 500
            };
            _giftOrder = new GiftOrder
            {
                RecepientName   = "john",
                ShippingAddress = "Delhi",
                GiftId          = _gift.GiftId,
                BuyerId         = _buyer.BuyerId
            };
            _mockCollection = new Mock <IMongoCollection <Buyer> >();
            _mockCollection.Object.InsertOne(_buyer);


            _contactmockCollection = new Mock <IMongoCollection <ContactUs> >();
            _contactmockCollection.Object.InsertOne(_contactUs);
            _giftOrdermockCollection = new Mock <IMongoCollection <GiftOrder> >();
            _giftOrdermockCollection.Object.InsertOne(_giftOrder);
            _giftmockCollection = new Mock <IMongoCollection <Gift> >();
            _giftmockCollection.Object.InsertOne(_gift);

            _contactlist = new List <ContactUs>();
            _contactlist.Add(_contactUs);
            _giftlist = new List <Gift>();
            _giftlist.Add(_gift);

            _orederlist = new List <GiftOrder>();
            _orederlist.Add(_giftOrder);
            _mockContext = new Mock <IMongoDBContext>();
            _mockOptions = new Mock <IOptions <Mongosettings> >();
            _list        = new List <Buyer>();
            _list.Add(_buyer);
        }
Example #10
0
 public async Task CreateOrEditAsync(GiftOrder model)
 {
     if (model.Id >= 0)
     {
         await _Repository.UpdateAsync(model);
     }
     else
     {
         await _Repository.InsertAsync(model);
     }
 }
        //creating or mocking dummy object
        public BusinessLogicTests()
        {
            _buyer = new Buyer
            {
                FirstName   = "Jai",
                LastName    = "buyer",
                PhoneNumber = 90876543321,
                Email       = "*****@*****.**",
                Address     = "Delhi",
            };

            _contactUs = new ContactUs
            {
                Name        = "John",
                PhoneNumber = 9888076466,
                Email       = "*****@*****.**",
                Address     = "Paris"
            };
            _gift = new Gift
            {
                GiftName = "Toys",
                Ammount  = 500
            };
            _giftOrder = new GiftOrder
            {
                RecepientName   = "john",
                ShippingAddress = "Delhi",
                GiftId          = _gift.GiftId,
                BuyerId         = _buyer.BuyerId
            };
            _mockCollection = new Mock <IMongoCollection <Buyer> >();
            _mockCollection.Object.InsertOne(_buyer);


            _contactmockCollection = new Mock <IMongoCollection <ContactUs> >();
            _contactmockCollection.Object.InsertOne(_contactUs);
            _giftOrdercontactmockCollection = new Mock <IMongoCollection <GiftOrder> >();
            _giftOrdercontactmockCollection.Object.InsertOne(_giftOrder);
            _giftmockCollection = new Mock <IMongoCollection <Gift> >();
            _giftmockCollection.Object.InsertOne(_gift);


            _contactlist = new List <ContactUs>();
            _contactlist.Add(_contactUs);

            _orederlist = new List <GiftOrder>();
            _orederlist.Add(_giftOrder);
            _mockContext = new Mock <IMongoDBContext>();
            //MongoSettings initialization
            _mockOptions = new Mock <IOptions <Mongosettings> >();
            _list        = new List <Buyer>();
            _list.Add(_buyer);
        }
Example #12
0
        public void SendGiftOrderConfirmationEmail(GiftOrder order)
        {
            // TODO: Mails are sent synchronously
            // this probably still should be refactored to use a real bg process
            _giftorderConfirmationMailerController.GiftOrderConfirmationEmail(order).Deliver();
            _giftorderNotificationMailerController.GiftOrderNotificationEmail(order).Deliver();

            for (int i = 0; i < order.GiftOrderDetail.Count; i++)
            {
                _giftorderConfirmationMailerController.GiftOrderConfirmationEmailToRecipient(order, i).Deliver();
            }
        }
        public BusinessLogicTests()
        {
            _buyer = new Buyer
            {
                FirstName   = "abc",
                LastName    = "abc",
                PhoneNumber = 123456789,
                Email       = "*****@*****.**",

                Address = "123456789",
            };

            _contactUs = new ContactUs
            {
                Name        = "John",
                PhoneNumber = 9888076466,
                Email       = "*****@*****.**",
                Address     = "Paris"
            };
            _gift = new Gift
            {
                GiftName = "Toys",
                Ammount  = 500
            };
            _giftOrder = new GiftOrder
            {
                OrderedGift = _gift,
                GiftBuyer   = _buyer
            };
            _mockCollection = new Mock <IMongoCollection <Buyer> >();
            _mockCollection.Object.InsertOne(_buyer);


            _contactmockCollection = new Mock <IMongoCollection <ContactUs> >();
            _contactmockCollection.Object.InsertOne(_contactUs);
            _giftOrdercontactmockCollection = new Mock <IMongoCollection <GiftOrder> >();
            _giftOrdercontactmockCollection.Object.InsertOne(_giftOrder);
            _giftmockCollection = new Mock <IMongoCollection <Gift> >();
            _giftmockCollection.Object.InsertOne(_gift);


            _contactlist = new List <ContactUs>();
            _contactlist.Add(_contactUs);

            _orederlist = new List <GiftOrder>();
            _orederlist.Add(_giftOrder);
            _mockContext = new Mock <IMongoDBContext>();
            //MongoSettings initialization
            _mockOptions = new Mock <IOptions <Mongosettings> >();
            _list        = new List <Buyer>();
            _list.Add(_buyer);
        }
Example #14
0
        public EmailResult GiftOrderNotificationEmail(GiftOrder giftorder)
        {
            var model = new GiftOrderConfirmationEmail
            {
                GiftOrder = giftorder
            };

            To.Add(giftorder.User.Email);
            // TODO: from address should be configurable somewhere
            From    = "*****@*****.**";
            Subject = string.Format("brite spokes order notification for Order number: {0}", giftorder.OrderNumber);
            return(Email("GiftOrderNotificationEmail", model));
        }
Example #15
0
        private static List <GiftOrderDetail> BuildGiftOrderDetailList(GiftOrder order)
        {
            var giftCardCount = order.Quantity;
            var giftCards     = new List <GiftOrderDetail>(giftCardCount);

            for (var i = 0; i < giftCardCount; i++)
            {
                giftCards.Add(new GiftOrderDetail {
                    RecipientGiftCode = GenerateOrderNumber()
                });
            }
            return(giftCards);
        }
Example #16
0
        public BillingOverview BuildBillingOverview(GiftOrder order)
        {
            var giftCard = order.GiftCard;


            return(new BillingOverview
            {
                GiftCardName = giftCard.Name,
                NumberOfCards = order.Quantity,
                Total = order.Total,
                ItemTotal = order.ItemTotal,
                Countries = Countries(),
                States = States()
            });
        }
Example #17
0
        public EmailResult GiftOrderConfirmationEmailToRecipient(GiftOrder giftorder, int index)
        {
            //var departure = order.ProductVariants.First().ProductVariant.Product.Departure;
            // var tour = departure.Tour;
            var model = new GiftOrderConfirmationEmail
            {
                GiftOrder = giftorder
            };

            To.Add(giftorder.GiftOrderDetail[index].RecipientEmail);
            // TODO: from address should be configurable somewhere
            From = "*****@*****.**";


            Subject = string.Format("brite spokes gift gift code: {0}", giftorder.GiftOrderDetail[index].RecipientGiftCode);

            return(Email("RecipientGiftCodeEmail", model));
        }
Example #18
0
        public List <GiftOrder> GiftOrderByUsedstatus(string orderStatus)
        {
            var results = _giftorderRepo.All
                          .Join(_giftorderdetailRepo.All, d => d.Id, o => o.GiftOrderId, (d, o) => new { d, o })
                          .Join(_giftcardsummary.All, t => t.o.Id, c => c.GiftOrderDetailId, (t, c) => new { t.d, t.o, c })
                          .Join(_OrderRepo.All, p => p.c.OrderId, s => s.Id, (p, s) => new { p.c, p.d, p.o, s })
                          .Where(a => a.s.OrderStatusId == 3)
                          .Where(a => a.d.OrderStatusId == 3);


            List <GiftOrder> orderlist = new List <GiftOrder>();

            foreach (var p in results)
            {
                GiftOrder ord = new
                                GiftOrder()
                {
                    User                = p.s.User,
                    UserId              = p.s.UserId,
                    GiftCardId          = p.d.GiftCardId,
                    BillingAddressId    = p.d.BillingAddressId,
                    ShippingAddressId   = p.d.ShippingAddressId,
                    OrderStatusId       = p.s.OrderStatusId,
                    OrderNumber         = p.s.OrderNumber,
                    SpecialInstructions = p.s.SpecialInstructions,
                    Quantity            = p.d.Quantity,
                    Total               = p.d.Total,
                    ItemTotal           = p.d.ItemTotal,
                    AdjustmentTotal     = p.d.AdjustmentTotal,
                    ChargeId            = p.d.ChargeId,
                    IsDeleted           = p.d.IsDeleted,
                    CreatedAt           = p.d.CreatedAt,
                    UpdatedAt           = p.d.UpdatedAt,
                    CompletedAt         = p.d.CompletedAt,
                    FailedAt            = p.d.FailedAt,
                    LastFailureMessage  = p.d.LastFailureMessage,
                    OrderStatus         = p.s.OrderStatus,
                    Id = p.d.Id
                };
                ord.OrderStatus.Name = "Used";
                orderlist.Add(ord);
            }
            return(orderlist);
        }
Example #19
0
 public FunctionalTests()
 {
     _buyerservices     = new BuyerServices(buyerservice.Object);
     _viworderservices  = new ViewOrderServices(viworderservices.Object);
     _contactusservices = new ContactUsServices(contactusservices.Object);
     buyer = new Buyer()
     {
         BuyerId     = random.Next(1, 300000),
         FirstName   = "ddd",
         LastName    = "ddd",
         Email       = "*****@*****.**",
         PhoneNumber = 123456779,
         Address     = "Delhi"
     };
     gift = new Gift
     {
         GiftId   = random.Next(1, 300000),
         GiftName = "giftFlower",
         Ammount  = 2000
     };
     order = new GiftOrder()
     {
         GiftOrderId     = random.Next(1, 300000),
         RecepientName   = "recepient",
         ShippingAddress = "Bangalore",
         GiftId          = gift.GiftId,
         BuyerId         = buyer.BuyerId
     };
     contact = new ContactUs()
     {
         ContactUsId = random.Next(1, 300),
         Name        = "ContactUs",
         PhoneNumber = 9980765432,
         Email       = "*****@*****.**",
         Address     = "bangalore"
     };
     orderList = new List <GiftOrder>();
     orderList.Add(order);
     buyerlist = new List <Buyer>();
     buyerlist.Add(buyer);
 }
Example #20
0
        public GiftOrder CreateOrder(GiftOrder giftOrder)
        {
            var user  = _userService.Find(giftOrder.UserId);
            var order = new GiftOrder
            {
                User        = user,
                OrderStatus = StatusPending(),
                OrderNumber = GenerateOrderNumber(),
                Quantity    = giftOrder.Quantity,
                GiftCardId  = giftOrder.GiftCardId
            };

            //foreach (var shoppingCartItem in shoppingCartItems)
            //    AddProductVariant(order, shoppingCartItem);

            order.GiftOrderDetail = BuildGiftOrderDetailList(order);
            // OrderCalculator.Calculate(order);
            _giftCardOrderRepository.Add(order);

            return(order);
        }
Example #21
0
        public EmailResult GiftOrderConfirmationEmail(GiftOrder giftorder)
        {
            //var departure = order.ProductVariants.First().ProductVariant.Product.Departure;
            // var tour = departure.Tour;
            var model = new GiftOrderConfirmationEmail
            {
                GiftOrder = giftorder
            };

            To.Add(giftorder.User.Email);
            // TODO: from address should be configurable somewhere
            From = "*****@*****.**";
            //foreach (var item in order.GiftOrderDetail)
            //{
            //    BCC.Add(item.RecipientEmail);
            //    Subject = string.Format("brite spokes order confirmation Gift Code: {0}", item.RecipientGiftCode);
            //}
            Subject = string.Format("brite spokes gift order confirmation number: {0}", giftorder.OrderNumber);

            return(Email("GiftOrderConfirmationEmail", model));
        }
Example #22
0
        public BillingDetails BuildBillingDetails(GiftOrder order, User user = null)
        {
            var billingOverview = BuildBillingOverview(order);

            var billingDetails = new BillingDetails
            {
                GiftOrderId     = order.Id,
                GiftOrderNumber = order.OrderNumber,
                UserId          = order.UserId,
                CountryId       = 226, // TODO: hardcoded country for now
                BillingOverview = billingOverview
            };

            if (user != null)
            {
                billingDetails.FirstName = user.FirstName;
                billingDetails.LastName  = user.LastName;
                billingDetails.Email     = user.Email;

                var lastOrder = LastOrderForUser(user);
                if (lastOrder != null)
                {
                    var billingAddress = lastOrder.BillingAddress;
                    if (billingAddress != null)
                    {
                        billingDetails.Address1        = billingAddress.Address1;
                        billingDetails.Address2        = billingAddress.Address2;
                        billingDetails.City            = billingAddress.City;
                        billingDetails.StateOrProvince = billingAddress.StateOrProvince;
                        billingDetails.ZipCode         = billingAddress.ZipCode;
                    }
                }
            }

            return(billingDetails);
        }
 public ActionResult PlaceGiftOrderAsync(GiftOrder Order)
 {
     //Write Code Here
     return(Ok());
 }
Example #24
0
        public GiftOrderSummary GiftOrderSummary(GiftOrder giftorder)
        {
            List <GiftOrderDetails> orderdetails = new List <GiftOrderDetails>();


            var resultsUsed = _giftorderdetailRepo.All
                              .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o })
                              .Join(_giftcardsummary.All, t => t.d.Id, c => c.GiftOrderDetailId, (t, c) => new { t.d, t.o, c })
                              .Join(_OrderRepo.All, p => p.c.OrderId, s => s.Id, (p, s) => new { p.c, p.d, p.o, s })
                              .Where(a => a.o.OrderStatusId == 3)
                              .Where(a => a.o.Id == giftorder.Id)
                              .Where(a => a.s.OrderStatusId == 3)
                              .Select(a => new GiftOrderDetails
            {
                Id = a.d.Id,

                Amount = a.d.Amount,

                RecipientEmail = a.d.RecipientEmail,

                YourName = a.d.YourName,

                Message = a.d.Message,

                RecipientGiftCode = a.d.RecipientGiftCode,

                StatusName = "Used"
            }).ToList();

            var resultsUnUsed1 = _giftorderdetailRepo.All
                                 .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o })
                                 .Join(_giftcardsummary.All, t => t.d.Id, c => c.GiftOrderDetailId, (t, c) => new { t.d, t.o, c })
                                 .Join(_OrderRepo.All, p => p.c.OrderId, s => s.Id, (p, s) => new { p.c, p.d, p.o, s })
                                 .Where(a => a.o.OrderStatusId == 3)
                                 .Where(a => a.o.Id == giftorder.Id)
                                 .Where(a => a.s.OrderStatusId != 3)
                                 .Select(a => new GiftOrderDetails
            {
                Id = a.d.Id,

                Amount = a.d.Amount,

                RecipientEmail = a.d.RecipientEmail,

                YourName = a.d.YourName,

                Message = a.d.Message,

                RecipientGiftCode = a.d.RecipientGiftCode,

                StatusName = "Unused"
            }).ToList();

            var resultsUnUsed2 = _giftorderdetailRepo.All
                                 .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o })
                                 .Where(a => a.o.OrderStatusId == 3)
                                 .Where(a => a.o.Id == giftorder.Id)
                                 .Select(a => new GiftOrderDetails
            {
                Id = a.d.Id,

                Amount = a.d.Amount,

                RecipientEmail = a.d.RecipientEmail,

                YourName = a.d.YourName,

                Message = a.d.Message,

                RecipientGiftCode = a.d.RecipientGiftCode,

                StatusName = "Unused"
            }).ToList();

            foreach (var item in resultsUsed)
            {
                resultsUnUsed2.Remove(resultsUnUsed2.Single(s => s.Id == item.Id));
            }

            foreach (var item in resultsUnUsed1)
            {
                resultsUnUsed2.Remove(resultsUnUsed2.Single(s => s.Id == item.Id));
            }



            orderdetails = orderdetails.Concat(resultsUsed).ToList();
            orderdetails = orderdetails.Concat(resultsUnUsed1).ToList();
            orderdetails = orderdetails.Concat(resultsUnUsed2).ToList();

            var giftorderSummary = new GiftOrderSummary
            {
                Id               = giftorder.Id,
                GiftOrder        = giftorder,
                GiftOrderDetails = orderdetails
            };

            return(giftorderSummary);
        }
 public Task <GiftOrder> PlaceGiftOrderAsync(GiftOrder Order)
 {
     throw new NotImplementedException();
 }
Example #26
0
 public ActionResult PlaceGiftOrderAsync(GiftOrder Order)
 {
     return(Ok());
 }
Example #27
0
 public async Task <bool> PlaceOrderAsync(GiftOrder Order)
 {
     //Do code here
     throw new NotImplementedException();
 }
Example #28
0
 //place gift order
 public Task <GiftOrder> PlaceGiftOrderAsync(GiftOrder Order)
 {
     //write code here
     throw new NotImplementedException();
 }
 public async Task <IActionResult> PlaceGiftOrderAsync(GiftOrder Order)
 {
     //Do code here
     throw new NotImplementedException();
 }
Example #30
0
 private static void OrderAndDeliverGifts(GiftOrder order)
 {
     Santa.GetInstance().EnqueueGift(order);
     Santa.GetInstance().OrderGiftsFromGiftMaker();
     Santa.GetInstance().ItsChristmasTime();
 }