public void OrderController_Checkout_Should_Return_ViewResult_When_First_Called()
        {
            OrderController controller = new OrderController(_orderService, _catalogService);

            controller.SetFakeControllerContextWithLogin("testuser", "password", "");
            //add two items to the cart
            controller.AddItem(1);
            controller.AddItem(2);

            ActionResult result = (ActionResult)controller.Checkout();

            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
Ejemplo n.º 2
0
 public void TestAddItem()
 {
     using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string))
     {
         using (var context = new OrderContext(connection.Options))
         {
             var controller = new OrderController(context);
             var response   = controller.AddOrder(new Order());
             Assert.IsType <OkResult>(response);
         }
         using (var context = new OrderContext(connection.Options))
         {
             var controller = new OrderController(context);
             var response   = controller.AddItem(1, new Item {
                 Quantity    = 1,
                 Price       = 4,
                 Description = "Pineapple"
             });
             Assert.IsType <OkResult>(response);
         }
         using (var context = new OrderContext(connection.Options))
         {
             var controller = new OrderController(context);
             var response   = controller.GetItems(1);
             var items      = (List <Item>)response.Value;
             Assert.Equal((int)HttpStatusCode.OK, response.StatusCode);
             Assert.Equal(1, items.Count);
             var item = items[0];
             Assert.Equal(1, item.Quantity);
             Assert.Equal(4, item.Price);
             Assert.Equal("Pineapple", item.Description);
         }
     }
 }
Ejemplo n.º 3
0
    protected void btnWomen3_Click(object sender, EventArgs e)
    {
        string sProductGUID = "f6d3b994-d5ca-491f-b55a-f22fa8974b25";

        productGUID = new Guid(sProductGUID);
        try
        {
            product = ProductController.GetProductDeepByGUID(productGUID);
            //make sure we have a product
            TestCondition.IsTrue(product.IsLoaded, "Invalid url/product id");

            //set the page variables
            productID        = product.ProductID;
            productSku       = product.Sku;
            product.Quantity = 3;
            OrderController.AddItem(product);
            AddKeyForOrderMotion();
            //This behavior is by design
            //See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpresponseclassendtopic.asp
            Response.Redirect("additemresult.aspx", false);
            //Response.Redirect("order.aspx", false); KPL
        }
        catch (Exception ex)
        {
            LovRubLogger.LogException(ex); // 04/10/08 KPL added
            throw ex;
            //ExceptionPolicy.HandleException(ex, "Application Exception");
            //Response.Redirect(Page.ResolveUrl("~/ExceptionPage.aspx"), false);
        }
    }
Ejemplo n.º 4
0
    protected void btnMen3_Click(object sender, EventArgs e)
    {
        string sProductGUID = "a3ba18d1-b7d0-488c-9687-706873e0ee53";

        productGUID = new Guid(sProductGUID);
        try
        {
            product = ProductController.GetProductDeepByGUID(productGUID);
            //make sure we have a product
            TestCondition.IsTrue(product.IsLoaded, "Invalid url/product id");

            //set the page variables
            productID        = product.ProductID;
            productSku       = product.Sku;
            product.Quantity = 3;
            OrderController.AddItem(product);
            AddKeyForOrderMotion();
            //This behavior is by design
            //See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpresponseclassendtopic.asp
            Response.Redirect("additemresult.aspx", false);
            //Response.Redirect("order.aspx", false); KPL
        }
        catch (Exception ex)
        {
            LovRubLogger.LogException(ex); // 04/10/08 KPL added
            throw ex;
        }
    }
Ejemplo n.º 5
0
    protected void AddBundle(object sender, EventArgs e)
    {
        decimal discountPercent = 0;
        decimal discountAmount  = 0;
        decimal price           = 0;
        int     productID       = 0;
        int     bundleID        = 0;

        Commerce.Common.Product prod = null;
        List <BundleItem>       list = PromotionService.GetBundleByProduct(product.ProductID);

        foreach (Commerce.Promotions.BundleItem bundleItem in list)
        {
            discountPercent = Convert.ToDecimal(bundleItem.DiscountPercent);
            price           = bundleItem.OurPrice;
            discountAmount  = price * discountPercent / 100;
            productID       = bundleItem.ProductID;
            bundleID        = bundleItem.BundleID;

            prod                = new Commerce.Common.Product(productID);
            prod.ImageFile      = prod.DefaultImage;
            prod.Quantity       = 1;
            prod.DiscountAmount = discountAmount;
            prod.PromoCode      = "BUNDLE:" + bundleID.ToString();
            OrderController.AddItem(prod);
        }
        Response.Redirect("additemresult.aspx", false);
    }
Ejemplo n.º 6
0
 protected void AddToCart_Click(object sender, ImageClickEventArgs e)
 {
     Commerce.Common.Product prod = new Commerce.Common.Product(ProductID);
     prod.Quantity = 1;
     OrderController.AddItem(prod);
     Response.Redirect("~/AddItemResult.aspx", false);
 }
        public void OrderController_AddItem_ShouldRedirect()
        {
            OrderController controller = new OrderController(_orderService, _catalogService);
            ActionResult    result     = controller.AddItem(1);

            //we should get a redirect here
            Assert.IsInstanceOfType(result, typeof(RedirectResult));
        }
Ejemplo n.º 8
0
    protected void AddToCart(int productID)
    {
        Commerce.Common.Product prod = new Commerce.Common.Product(productID);
        prod.Quantity  = 1;
        prod.ImageFile = prod.DefaultImage;
        //prod.SelectedAttributes = "";
        prod.PromoCode      = "";
        prod.DiscountAmount = 0;

        OrderController.AddItem(prod);
    }
Ejemplo n.º 9
0
        public Order RefundOrder(IOrderable refundOrderItem, Order order,
                                 DomainObjectBase creatorOrganizationRoleUser, DomainObjectBase forOrganizationRoleUser)
        {
            IOrderController orderController = new OrderController();

            orderController.AddItem(refundOrderItem, 1, forOrganizationRoleUser.Id, creatorOrganizationRoleUser.Id, null,
                                    null, null, RefundItemStatus.Applied.OrderStatusState);

            order = orderController.RefundOrder(order);
            return(order);
        }
Ejemplo n.º 10
0
    protected void AddToCart_Click(object sender, EventArgs e)
    {
        if (txtAddQty.Text != string.Empty)
        {
            int qty = 0;
            int.TryParse(txtAddQty.Text, out qty);
            if (qty > 0)
            {
                try {
                    string promoCode = "";

                    //add the item to the current order and redirect them to
                    //the add page
                    product.Quantity = int.Parse(txtAddQty.Text);
                    //product.SelectedAttributes=selectedAtts;
                    product.PromoCode = promoCode;

                    //pull the atribute selection from the User Control "ProductTopDisplay"
                    //which in turn pulls the bits from ProductAttributeDisplay.
                    product.SelectedAttributes = ProductTopDisplay1.SelectedAttributes;
                    decimal savedDiscountPrice = 0;
                    if (product.SelectedAttributes != null)
                    {
                        //if there is a price adjustment
                        //apply it here. It's possible that they could have chosen multiple adjustments
                        //so.... just add them up!
                        foreach (Commerce.Common.Attribute att in product.SelectedAttributes)
                        {
                            foreach (AttributeSelection sel in att.Selections)
                            {
                                if (sel.PriceAdjustment != 0)
                                {
                                    savedDiscountPrice += savedDiscountPrice = -sel.PriceAdjustment;
                                }
                            }
                        }
                    }
                    product.DiscountAmount = savedDiscountPrice;
                    OrderController.AddItem(product);

                    //This behavior is by design
                    //See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpresponseclassendtopic.asp
                    Response.Redirect("additemresult.aspx", false);
                }
                catch (Exception ex) {
                    if (ExceptionPolicy.HandleException(ex, "Application Exception"))
                    {
                        throw;
                    }
                }
            }
        }
    }
 public void TestAddItemWithValidationError()
 {
     using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)){
         using (var context = new OrderContext(connection.Options))
         {
             var controller = new OrderController(context);
             controller.ModelState.AddModelError("FakeError", "FakeError");
             var response = controller.AddItem(1, new Item());
             Assert.IsType <BadRequestObjectResult>(response);
         }
     }
 }
Ejemplo n.º 12
0
        public Order CancelRefundOrder(IEnumerable <IOrderable> refundOrderItem, Order order, DomainObjectBase creatorOrganizationRoleUser, DomainObjectBase forOrganizationRoleUser)
        {
            IOrderController orderController = new OrderController();

            foreach (var orderable in refundOrderItem)
            {
                orderController.AddItem(orderable, 1, forOrganizationRoleUser.Id, creatorOrganizationRoleUser.Id, null,
                                        null, null, RefundItemStatus.NotApplied.OrderStatusState);
            }

            order = orderController.RefundOrder(order);
            return(order);
        }
Ejemplo n.º 13
0
        public void OrderController_AddItem_Should_Add_Item_ToCart_ForTestUser()
        {
            Order order = _orderService.GetCurrentOrder("testuser");

            Assert.AreEqual(0, order.Items.Count);

            OrderController controller = new OrderController(_orderService, _catalogService);

            controller.SetFakeControllerContext();
            ActionResult result = controller.AddItem(1);

            //should have an item in our cart
            order = _orderService.GetCurrentOrder("testuser");
            Assert.AreEqual(1, order.Items.Count);
        }
Ejemplo n.º 14
0
        public void PlaceOrderPersistsOrderWithOneItemSpecified()
        {
            IOrderController orderController = new OrderController();

            var eventPackage = new EventPackage(3730)
            {
                Price = 139.95m, PackageId = 57, EventId = 940
            };

            orderController.AddItem(eventPackage, 1, 0, 0);

            orderController.PlaceOrder(OrderType.Retail, 0);

            // TODO: Test that this actually occurred.
        }
Ejemplo n.º 15
0
 public void TestAddItemToNotExistingOrder()
 {
     using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string))
     {
         using (var context = new OrderContext(connection.Options))
         {
             var controller = new OrderController(context);
             var response   = controller.AddItem(1, new Item {
                 Quantity    = 1,
                 Price       = 4,
                 Description = "Pineapple"
             });
             Assert.IsType <NotFoundResult>(response);
         }
     }
 }
Ejemplo n.º 16
0
        private bool PaymentViaSourceCode()
        {
            var organizationRoleUser = GetOrganizationRoleUser();

            var orderables     = new List <IOrderable>();
            var packageTestIds = new List <long>();

            if (PackageId > 0)
            {
                var packageRepository = IoC.Resolve <IEventPackageRepository>();
                var package           = packageRepository.GetByEventAndPackageIds(EventId.Value, PackageId);
                if (package != null)
                {
                    packageTestIds = package.Tests.Select(t => t.Test.Id).ToList();
                }

                orderables.Add(package);
            }

            var independentTestIds = !packageTestIds.IsNullOrEmpty() ? TestIds.Where(t => !packageTestIds.Contains(t)).Select(t => t).ToList() : TestIds;

            if (!independentTestIds.IsNullOrEmpty())
            {
                var eventTestRepository = IoC.Resolve <IEventTestRepository>();
                orderables.AddRange(eventTestRepository.GetByEventAndTestIds(EventId.Value, independentTestIds));
            }

            if (ProductId.HasValue && ProductId.Value > 0)
            {
                IUniqueItemRepository <ElectronicProduct> itemRepository = new ElectronicProductRepository();
                orderables.Add(itemRepository.GetById(ProductId.Value));
            }

            if (orderables.IsNullOrEmpty())
            {
                return(false);
            }

            Core.Finance.Domain.Order order = null;
            EventCustomer             eventCustomer;

            try
            {
                order = GetOrder();
                if (order == null)
                {
                    eventCustomer = SaveEventCustomer(organizationRoleUser);
                }
                else
                {
                    eventCustomer = UpdateEventCustomer(organizationRoleUser);
                }
            }
            catch
            {
                eventCustomer = SaveEventCustomer(organizationRoleUser);
            }

            SourceCode sourceCode;

            if (SourceCodeId > 0)
            {
                sourceCode = new SourceCode
                {
                    Id          = SourceCodeId,
                    CouponCode  = SourceCode,
                    CouponValue = SourceCodeAmount
                }
            }
            ;
            else
            {
                sourceCode = null;
            }

            if (ShippingDetail != null)
            {
                IShippingController shippingController = new ShippingController();
                ShippingDetail = shippingController.OrderShipping(ShippingDetail);
            }

            IOrderController orderController        = new OrderController();
            bool             indentedLineItemsAdded = false;

            // TODO: applying hook to the system all the indented line items will be attached to the first order item.
            foreach (var orderable in orderables)
            {
                if (!indentedLineItemsAdded)
                {
                    orderController.AddItem(orderable, 1, organizationRoleUser.Id, organizationRoleUser.Id,
                                            sourceCode,
                                            eventCustomer, ShippingDetail, OrderStatusState.FinalSuccess);
                    indentedLineItemsAdded = true;
                }
                else
                {
                    orderController.AddItem(orderable, 1, organizationRoleUser.Id, organizationRoleUser.Id,
                                            OrderStatusState.FinalSuccess);
                }
            }

            if (order == null)
            {
                order = orderController.PlaceOrder(OrderType.Retail, organizationRoleUser.Id);
            }
            else
            {
                order = orderController.ActivateOrder(order);
            }

            SaveProductShippingDetail(order);
            return(true);
        }
Ejemplo n.º 17
0
        private void SaveGiftCertificateOrderforRequest()
        {
            if (Session[RefundRequest.ProcessRequestId] == null)
            {
                return;
            }
            var requestId = Convert.ToInt64(Session[RefundRequest.ProcessRequestId]);

            if (requestId < 1)
            {
                return;
            }

            var refundRepository = IoC.Resolve <IRefundRequestRepository>();
            var refundRequest    = refundRepository.Get(requestId);

            var forOrganizationRoleUser = new OrganizationRoleUser(refundRequest.CustomerId);
            var userSession             = IoC.Resolve <ISessionContext>().UserSession;

            var giftCertificateRepository = IoC.Resolve <IGiftCertificateRepository>();

            try
            {
                giftCertificateRepository.ActivateGiftCertificate(GiftCertificate.Id);
            }
            catch (Exception)
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "js_alerterror",
                                                             "alert('OOPS! Some error occured while saving details.');",
                                                             true);
                return;
            }

            var orderRepository = IoC.Resolve <IOrderRepository>();
            var order           = orderRepository.GetOrder(refundRequest.OrderId);
            IOrderController orderController = new OrderController();

            orderController.AddItem(GiftCertificate, 1, forOrganizationRoleUser.Id,
                                    userSession.CurrentOrganizationRole.OrganizationRoleUserId, OrderStatusState.FinalSuccess);

            if (refundRequest.RefundRequestType == RefundRequestType.CustomerCancellation || refundRequest.RefundRequestType == RefundRequestType.EventCancellation || refundRequest.RefundRequestType == RefundRequestType.ForcedCancellation)
            {
                orderController.NegateAppointmentOrderagainstGiftCertificate(order, refundRequest.CustomerId, userSession.CurrentOrganizationRole.OrganizationRoleUserId);
            }
            else
            {
                orderController.AdjustOrderagainstGiftCertificate(order, refundRequest.CustomerId, userSession.CurrentOrganizationRole.OrganizationRoleUserId);
            }

            if (order == null || order.Id < 1)
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "js_alerterror", "alert('OOPS! Some error occured while saving details.');", true);
                return;
            }

            var customerRepository = IoC.Resolve <ICustomerRepository>();
            var customer           = customerRepository.GetCustomer(refundRequest.CustomerId);

            //var notifier = IoC.Resolve<INotifier>();
            //var emailNotificationModelsFactory = IoC.Resolve<IEmailNotificationModelsFactory>();

            //var acknowledgmentmail = emailNotificationModelsFactory.GetGiftCertificateNotificationModel(GiftCertificate.ClaimCode, GiftCertificate.FromName, GiftCertificate.ToName, GiftCertificate.Message, GiftCertificate.Price);
            //notifier.NotifySubscribersViaEmail(NotificationTypeAlias.GiftCertificateAcknowledgmentEmail, EmailTemplateAlias.GiftCertificateAcknowledgmentEmail, acknowledgmentmail, customer.Id, userSession.CurrentOrganizationRole.OrganizationRoleUserId, Request.Url.AbsolutePath);

            refundRequest.RefundRequestResult.ProcessedOn = DateTime.Now;
            refundRequest.RequestStatus = (long)RequestStatus.Resolved;
            refundRequest.RefundRequestResult.ProcessedByOrgRoleUserId =
                userSession.CurrentOrganizationRole.OrganizationRoleUserId;
            refundRequest.RefundRequestResult.RequestResultType = RequestResultType.IssueGiftCertificate;

            ((IRepository <RefundRequest>)refundRepository).Save(refundRequest);
            refundRepository.SaveRequestandGiftCertificateMapping(refundRequest.Id, GiftCertificateId);
            Session["CustomerId"] = customer.CustomerId;
        }