public void GetAllCustomersShouldReturnAllDataWhenDefaultValuesUsed()
        {
            // Arrange
            var interceptors = new DefaultRepositoryInterceptors(new NorthwindQueryRepositoryInterceptor());
            var repository = new InMemoryRepository(interceptors);

            for (int i = 0; i < 15; i++)
            {
                repository.Add(EntityGenerator.Create<Customer>(
                    p => p.CompanyName = p.CompanyName + i,
                    p => p.CustomerID = i.ToString(),
                    p => p.Orders.First().OrderDetails.First().Quantity = (short)i,
                    p => p.Orders.First().OrderDetails.First().UnitPrice = 100.0M));
            }

            // Act
            var ordersController = new OrdersController(repository);
            var results = ordersController.GetAllCustomers().Result;

            // Assert
            results.Count().ShouldEqual(15);
            for (int i = 0; i < 15; i++)
            {
                results.ElementAt(i).CustomerId.ShouldEqual(i.ToString());
                results.ElementAt(i).CompanyName.ShouldEqual("CompanyName" + i);
                results.ElementAt(i).CombinedOrderValue.ShouldEqual(100 * i);
            }
        }
Ejemplo n.º 2
0
 public OrdersControllerTests()
 {
     _amazonOrderService = A.Fake<IAmazonOrderService>();
     _amazonAppSettings = A.Fake<AmazonAppSettings>();
     _amazonOrderSearchService = A.Fake<IAmazonOrderSearchService>();
     _ecommerceSettings = new SiteSettings() { DefaultPageSize = 10 };
     _amazonOrderSyncService = A.Fake<IAmazonOrderSyncService>();
     _ordersController = new OrdersController(_amazonOrderService,_amazonAppSettings,
         _amazonOrderSearchService,_ecommerceSettings,_amazonOrderSyncService);
 }
Ejemplo n.º 3
0
        public void GetOrderWithId()
        {
            //Arrange
            var mock = new Mock<IOrderRepository>();
            var controller = new OrdersController(mock.Object);
            mock.Setup(x => x.GetOrder(3)).Returns(new Order { id = 3 });

            //Act
            var actionResult = controller.Get(3);

            //Assert
            Assert.IsNotNull(actionResult);
            Assert.AreEqual(3, actionResult.id);
        }
        public void GetAllCustomersQueryShouldUseCorrectStrategies(int take, int skip, string orderBy, bool ascending, decimal? minOrderValue)
        {
            // Arrange
            var events = new RecordedRepositoryEvents();
            var repository = new InMemoryRepository(events);

            // Act
            var notUsed = new OrdersController(repository).GetAllCustomers(take, skip, orderBy, ascending, minOrderValue).Result;

            // Assert
            var allStrategies = events.QueryEvents.Single().GetQueryStrategies();
            allStrategies.Count().ShouldEqual(4);

            allStrategies.First().GetType().ShouldEqual(typeof(DefaultSpecificationQueryStrategy<AggregateCustomerSales>));
            allStrategies.Second().GetType().ShouldEqual(typeof(ConditionalQueryStrategy));
            allStrategies.Third().GetType().ShouldEqual(typeof(ConditionalQueryStrategy));
            allStrategies.Fourth().GetType().ShouldEqual(typeof(ConditionalQueryStrategy));
        }
        public void GetVeryImportantCustomersShouldReturnCorrectData()
        {
            // Arrange
            var events = new RecordedRepositoryEvents();
            var repository = new InMemoryRepository(events);
            var customerSales = Enumerable.Repeat(EntityGenerator.Create<AggregateCustomerSales>(), 20).ToList();
            customerSales.ForEach(repository.Add);

            // Act
            var ordersController = new OrdersController(repository);
            var results = ordersController.GetVeryImportantCustomers().Result;

            // Assert
            results.Count().ShouldEqual(10);
            var allStrategies = events.QueryEvents.Single().GetQueryStrategies();

            // check the strategies used in this call
            allStrategies.Count().ShouldEqual(2);
            allStrategies.First().GetType().ShouldEqual(typeof(DefaultSpecificationQueryStrategy<AggregateCustomerSales>));
            allStrategies.Second().GetType().ShouldEqual(typeof(FindVeryImportantCustomersQueryStrategy));
        }
        public void GetCustomerOrderHistoryShouldReturnCorrectData()
        {
            // Arrange
            var events = new RecordedRepositoryEvents();
            var repository = new InMemoryRepository(events);

            // Act
            var ordersController = new OrdersController(repository);
            var result = ordersController.GetCustomerOrderHistory("NotUsed").Result;

            result.Count().ShouldEqual(TestsEntityFrameworkRepositoryExtensions.CustomerOrderHistories.Count());

            var allStrategies = events.QueryEvents.Single().GetQueryStrategies();
            allStrategies.Count().ShouldEqual(3);

            allStrategies.First().GetType().ShouldEqual(typeof(DefaultSpecificationQueryStrategy<CustomerOrderHistory>));
            allStrategies.Second().GetType().ShouldEqual(typeof(CustomerOrderHistoryStoredProcQueryStrategy));
            allStrategies.Third().GetType().ShouldEqual(typeof(ConditionalQueryStrategy));
        }
        private void bwLoadData_DoWork(object sender, DoWorkEventArgs e)
        {
            insockMaterialList = InsockMaterialController.Select();

            orderList             = OrdersController.SelectByOutsoleMaterial();
            insockSupplierList    = InsockSuppliersController.Select();
            insockRawMaterialList = InsockRawMaterialController.Select();

            List <String> lastCodeList = orderList.Select(o => o.LastCode).Distinct().ToList();

            foreach (string lastCode in lastCodeList)
            {
                var productNoList         = orderList.Where(w => w.LastCode == lastCode).Select(s => s.ProductNo).Distinct().ToList();
                var insockMaterialList_D1 = insockMaterialList.Where(w => productNoList.Contains(w.ProductNo)).ToList();
                var supplierPerLastCode   = insockMaterialList_D1.Select(s => s.InsockSupplierId).Distinct().ToList();
                suppIdShowInGridviewList.AddRange(supplierPerLastCode);
            }

            suppIdShowInGridviewList = suppIdShowInGridviewList.Distinct().OrderBy(s => s).ToList();

            DataTable dt = new DataTable();

            Dispatcher.Invoke(new Action(() => {
                dt.Columns.Add("LastCode", typeof(String));
                DataGridTextColumn columnLastCode = new DataGridTextColumn();
                columnLastCode.Header             = "Last Code";
                columnLastCode.Binding            = new Binding("LastCode");
                columnLastCode.FontWeight         = FontWeights.Bold;
                dgInsockDelivery.Columns.Add(columnLastCode);
                Binding bindingWidth1 = new Binding();
                bindingWidth1.Source  = columnLastCode;
                bindingWidth1.Path    = new PropertyPath("ActualWidth");
                ColumnDefinition cd1  = new ColumnDefinition();
                cd1.SetBinding(ColumnDefinition.WidthProperty, bindingWidth1);
                gridTotal.ColumnDefinitions.Add(cd1);


                dt.Columns.Add("Quantity", typeof(Int32));
                DataGridTextColumn columnQuantity = new DataGridTextColumn();
                columnQuantity.Header             = "Quantity";
                columnQuantity.Binding            = new Binding("Quantity");
                dgInsockDelivery.Columns.Add(columnQuantity);
                Binding bindingWidth2 = new Binding();
                bindingWidth2.Source  = columnQuantity;
                bindingWidth2.Path    = new PropertyPath("ActualWidth");
                ColumnDefinition cd2  = new ColumnDefinition();
                cd2.SetBinding(ColumnDefinition.WidthProperty, bindingWidth2);
                gridTotal.ColumnDefinitions.Add(cd2);

                dt.Columns.Add("Reject", typeof(Int32));
                DataGridTextColumn column4 = new DataGridTextColumn();
                column4.Header             = "Reject";
                column4.Binding            = new Binding("Reject");
                dgInsockDelivery.Columns.Add(column4);
                Binding bindingWidth4 = new Binding();
                bindingWidth4.Source  = column4;
                bindingWidth4.Path    = new PropertyPath("ActualWidth");
                ColumnDefinition cd4  = new ColumnDefinition();
                cd4.SetBinding(ColumnDefinition.WidthProperty, bindingWidth4);
                gridTotal.ColumnDefinitions.Add(cd4);

                dgInsockDelivery.FrozenColumnCount = 3;

                for (int i = 0; i < suppIdShowInGridviewList.Count; i++)
                {
                    var insockSupplier = insockSupplierList.FirstOrDefault(f => f.InsockSupplierId == suppIdShowInGridviewList[i]);
                    if (insockSupplier != null)
                    {
                        dt.Columns.Add(String.Format("Column{0}", suppIdShowInGridviewList[i]), typeof(String));
                        DataGridTextColumn column = new DataGridTextColumn();
                        column.Header             = insockSupplier.InsockSupplierName;
                        column.Binding            = new Binding(String.Format("Column{0}", suppIdShowInGridviewList[i]));
                        column.FontWeight         = FontWeights.Bold;

                        Style style = new Style(typeof(DataGridCell));
                        style.Setters.Add(new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Center));

                        Setter setterBackground   = new Setter();
                        setterBackground.Property = DataGridCell.BackgroundProperty;
                        setterBackground.Value    = new Binding(String.Format("Column{0}Background", suppIdShowInGridviewList[i]));
                        style.Setters.Add(setterBackground);

                        Setter setterToolTip   = new Setter();
                        setterToolTip.Property = DataGridCell.ToolTipProperty;
                        setterToolTip.Value    = new Binding(String.Format("Column{0}ToolTip", suppIdShowInGridviewList[i]));
                        style.Setters.Add(setterToolTip);

                        column.CellStyle = style;

                        dgInsockDelivery.Columns.Add(column);
                        Binding bindingWidth = new Binding();
                        bindingWidth.Source  = column;
                        bindingWidth.Path    = new PropertyPath("ActualWidth");
                        ColumnDefinition cd  = new ColumnDefinition();
                        cd.SetBinding(ColumnDefinition.WidthProperty, bindingWidth);
                        gridTotal.ColumnDefinitions.Add(cd);

                        DataColumn columnBackground   = new DataColumn(String.Format("Column{0}Background", suppIdShowInGridviewList[i]), typeof(SolidColorBrush));
                        DataColumn columnToolTip      = new DataColumn(String.Format("Column{0}ToolTip", suppIdShowInGridviewList[i]), typeof(String));
                        columnBackground.DefaultValue = Brushes.White;
                        dt.Columns.Add(columnBackground);
                        dt.Columns.Add(columnToolTip);
                    }
                }
            }));

            foreach (var lastCode in lastCodeList)
            {
                DataRow dr = dt.NewRow();
                dr["LastCode"] = lastCode;

                var productNoList         = orderList.Where(w => w.LastCode == lastCode).Select(s => s.ProductNo).Distinct().ToList();
                var insockMaterialList_D1 = insockMaterialList.Where(w => productNoList.Contains(w.ProductNo)).ToList();
                var insockSupplierIdList  = insockMaterialList_D1.Select(s => s.InsockSupplierId).Distinct().ToList();
                var qtyTotalList          = new List <Int32>();
                var qtyRejectList         = new List <Int32>();

                foreach (var insockSupplierId in insockSupplierIdList)
                {
                    var outsoleMaterialList_D2 = insockMaterialList_D1.Where(o => o.InsockSupplierId == insockSupplierId).ToList();
                    int qtyTotal       = 0;
                    int qtyRejectTotal = 0;
                    foreach (string productNo in productNoList)
                    {
                        var insockMaterialList_D3 = outsoleMaterialList_D2.Where(w => w.ProductNo == productNo).ToList();
                        var sizeNoList            = insockMaterialList.Where(w => w.ProductNo == productNo).Select(s => s.SizeNo).Distinct().ToList();
                        foreach (var sizeNo in sizeNoList)
                        {
                            int qtyMax    = insockMaterialList_D3.Where(w => w.SizeNo == sizeNo).Sum(s => s.Quantity - s.QuantityReject);
                            int qtyReject = insockMaterialList_D3.Where(w => w.SizeNo == sizeNo).Sum(s => s.QuantityReject);

                            qtyTotal       += qtyMax;
                            qtyRejectTotal += qtyReject;
                        }
                    }
                    dr[String.Format("Column{0}", insockSupplierId)]           = "x";
                    dr[String.Format("Column{0}Background", insockSupplierId)] = Brushes.Green;
                    var suppName = insockSupplierList.FirstOrDefault(f => f.InsockSupplierId == insockSupplierId).InsockSupplierName;
                    if (suppName != null)
                    {
                        dr[String.Format("Column{0}ToolTip", insockSupplierId)] = string.Format("{0}{1}", suppName, qtyRejectTotal > 0 ? String.Format("\nQtyReject: {0}", qtyRejectTotal.ToString()) : "");
                    }
                    qtyTotalList.Add(qtyTotal);
                    qtyRejectList.Add(qtyRejectTotal);
                }

                if (qtyRejectList.Count > 0)
                {
                    dr["Reject"] = qtyRejectList.Max();
                }
                if (qtyTotalList.Count > 0)
                {
                    dr["Quantity"] = qtyTotalList.Max();
                }
                dt.Rows.Add(dr);
            }

            Dispatcher.Invoke(new Action(() =>
            {
                dgInsockDelivery.ItemsSource = dt.AsDataView();
                // Row Tail
                TextBlock lblTotal  = new TextBlock();
                lblTotal.Text       = "TOTAL";
                lblTotal.Margin     = new Thickness(1, 0, 0, 0);
                lblTotal.FontWeight = FontWeights.Bold;
                Border bdrTotal     = new Border();
                Grid.SetColumn(bdrTotal, 2);
                Grid.SetColumnSpan(bdrTotal, 1);
                bdrTotal.BorderThickness = new Thickness(1, 0, 1, 1);
                bdrTotal.BorderBrush     = Brushes.Black;
                bdrTotal.Child           = lblTotal;
                gridTotal.Children.Add(bdrTotal);

                TextBlock lblQuantityTotal  = new TextBlock();
                lblQuantityTotal.Text       = dt.Compute("Sum(Quantity)", "").ToString();
                lblQuantityTotal.Margin     = new Thickness(1, 0, 0, 0);
                lblQuantityTotal.FontWeight = FontWeights.Bold;
                Border bdrQuantityTotal     = new Border();
                Grid.SetColumn(bdrQuantityTotal, 3);
                bdrQuantityTotal.BorderThickness = new Thickness(0, 0, 1, 1);
                bdrQuantityTotal.BorderBrush     = Brushes.Black;
                bdrQuantityTotal.Child           = lblQuantityTotal;
                gridTotal.Children.Add(bdrQuantityTotal);
                dgInsockDelivery.ItemsSource = dt.AsDataView();


                TextBlock lblRejectMaximunTotal  = new TextBlock();
                lblRejectMaximunTotal.Text       = dt.Compute("Sum(Reject)", "").ToString();
                lblRejectMaximunTotal.Margin     = new Thickness(1, 0, 0, 0);
                lblRejectMaximunTotal.FontWeight = FontWeights.Bold;
                Border bdrRejectMaximumTotal     = new Border();
                Grid.SetColumn(bdrRejectMaximumTotal, 4);
                bdrRejectMaximumTotal.BorderThickness = new Thickness(0, 0, 1, 1);
                bdrRejectMaximumTotal.BorderBrush     = Brushes.Black;
                bdrRejectMaximumTotal.Child           = lblRejectMaximunTotal;
                gridTotal.Children.Add(bdrRejectMaximumTotal);
                dgInsockDelivery.ItemsSource = dt.AsDataView();
            }));
        }
Ejemplo n.º 8
0
        public static void ClassInitialize(TestContext context)
        {
            TestDAL DAL = new TestDAL();

            order = new OrdersController(DAL);
        }
Ejemplo n.º 9
0
        public void ReturnDefaultView_WithIPagedListOfOrderViewModels_WithSpecifiedPageSize_WhenCalled()
        {
            // Arrange
            IEnumerable <ApplicationUser> users = new List <ApplicationUser>()
            {
                new ApplicationUser()
            };
            IEnumerable <Pizza>       pizzas       = Helper.GetPizzas();
            IEnumerable <CustomPizza> customPizzas = Helper.GetCustomPizzas();
            IEnumerable <Order>       orders       = new List <Order>()
            {
                new Order()
                {
                    Id        = Guid.NewGuid(),
                    CreatedOn = DateTime.Today,
                    Pizzas    = new List <BasePizza>(),
                    Customer  = new ApplicationUser()
                },
                new Order()
                {
                    Id        = Guid.NewGuid(),
                    CreatedOn = DateTime.Now,
                    Pizzas    = new List <BasePizza>(),
                    Customer  = new ApplicationUser()
                }
            };

            var pizzaContextMock = new Mock <IPizzaFactoryDbContext>();
            var orderContextMock = new Mock <IOrderDbContext>();
            var userContextMock  = new Mock <IIdentityDbContext>()
            {
                CallBase = true
            };
            var mapper    = new Mapper();
            var validator = new Validator();

            var pizzaDbSetMock       = QueryableDbSetMock.GetQueryableMockDbSet(pizzas);
            var customPizzaDbSetMock = QueryableDbSetMock.GetQueryableMockDbSet(customPizzas);
            var userDbSetMock        = QueryableDbSetMock.GetQueryableMockDbSet(users);
            var orderDbSetMock       = QueryableDbSetMock.GetQueryableMockDbSet(orders);

            userContextMock.Setup(ctx => ctx.Users).Returns(userDbSetMock.Object);
            pizzaContextMock.Setup(ctx => ctx.Pizzas).Returns(pizzaDbSetMock.Object);
            pizzaContextMock.Setup(ctx => ctx.CustomPizzas).Returns(customPizzaDbSetMock.Object);
            orderContextMock.Setup(ctx => ctx.Orders).Returns(orderDbSetMock.Object);

            IApplicationUserService userService =
                new ApplicationUserService(userContextMock.Object,
                                           pizzaContextMock.Object,
                                           orderContextMock.Object,
                                           mapper,
                                           validator);

            OrdersController controller = new OrdersController(userService, validator);
            int page     = 1;
            int pageSize = 1;

            // Act & Assert
            controller
            .WithCallTo(c => c.Index(page, pageSize))
            .ShouldRenderDefaultView()
            .WithModel <StaticPagedList <OrderViewModel> >(vm =>
            {
                Assert.AreEqual(pageSize, vm.Count);
            });
        }
 public OrdersControllerTests()
 {
     _ordersController = new OrdersController(new Repository.Repository());
 }
        private void bwLoadData_DoWork(object sender, DoWorkEventArgs e)
        {
            var regex = new Regex(@"[a-z]|[A-Z]");

            outsoleRawMaterialList = OutsoleRawMaterialController.Select();
            outsoleMaterialList    = OutsoleMaterialController.SelectByOutsoleRawMaterial();
            sizeRunList            = SizeRunController.SelectByOutsoleRawMaterial();
            outsoleSupplierList    = OutsoleSuppliersController.Select();
            ordersList             = OrdersController.SelectByOutsoleRawMaterial();

            DataTable dt = new OutsoleDelayDataSet().Tables["OutsoleDelayTable"];

            List <String> productNoList = outsoleRawMaterialList.Select(r => r.ProductNo).Distinct().ToList();

            foreach (string productNo in productNoList)
            {
                OrdersModel order = ordersList.Where(o => o.ProductNo == productNo).FirstOrDefault();
                List <OutsoleRawMaterialModel> outsoleRawMaterialList_D1 = outsoleRawMaterialList.Where(o => o.ProductNo == productNo).ToList();
                List <SizeRunModel>            sizeRunList_D1            = sizeRunList.Where(s => s.ProductNo == productNo).OrderBy(o => Double.Parse(regex.IsMatch(o.SizeNo) ? regex.Replace(o.SizeNo, "") : o.SizeNo)).ToList();
                //List<SizeRunModel> sizeRunList_CHECK = sizeRunList.Where(w => w.ProductNo == productNo).OrderBy(o => Double.Parse(regex.IsMatch(o.SizeNo) ? regex.Replace(o.SizeNo, "") : o.SizeNo)).ToList();
                List <OutsoleMaterialModel> outsoleMaterialList_D1 = outsoleMaterialList.Where(o => o.ProductNo == productNo).ToList();
                foreach (OutsoleRawMaterialModel outsoleRawMaterial in outsoleRawMaterialList_D1)
                {
                    List <OutsoleMaterialModel> outsoleMaterialList_D2 = outsoleMaterialList_D1.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).ToList();
                    OutsoleSuppliersModel       outsoleSupplier        = outsoleSupplierList.FirstOrDefault(f => f.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId);
                    DateTime etd = outsoleRawMaterial.ETD.Date;
                    //bool isFull = OutsoleRawMaterialController.IsFull(sizeRunList_D1, new List<OutsoleRawMaterialModel>() { outsoleRawMaterial }, outsoleMaterialList_D1);
                    //if (etd != new DateTime(2000, 1, 1) && etd < DateTime.Now.Date && isFull == false)

                    var productNoList_OutsoleCode = ordersList.Where(w => w.OutsoleCode == order.OutsoleCode).Select(s => s.ProductNo).ToList();

                    if (etd != new DateTime(2000, 1, 1) && etd < DateTime.Now.Date)
                    {
                        foreach (SizeRunModel sizeRun in sizeRunList_D1)
                        {
                            int qtyDelay = sizeRun.Quantity -
                                           outsoleMaterialList_D2.Where(o => o.SizeNo == sizeRun.SizeNo).Sum(o => o.Quantity);
                            if (qtyDelay > 0)
                            {
                                DataRow dr = dt.NewRow();
                                dr["ProductNo"] = productNo;

                                string sizeOutsole        = sizeRun.SizeNo;
                                var    sizeNo_OutsoleCode = sizeRunList.Where(w => productNoList_OutsoleCode.Contains(w.ProductNo) && w.SizeNo == sizeOutsole).FirstOrDefault();
                                if (sizeNo_OutsoleCode != null)
                                {
                                    if (String.IsNullOrEmpty(sizeNo_OutsoleCode.OutsoleSize) == false)
                                    {
                                        sizeOutsole = sizeNo_OutsoleCode.OutsoleSize;
                                    }
                                }

                                string sizeNoString = regex.IsMatch(sizeOutsole) == true?regex.Replace(sizeOutsole, "") : sizeOutsole;

                                double sizeNoDouble = 0;
                                Double.TryParse(sizeNoString, out sizeNoDouble);
                                dr["SizeNoDouble"] = sizeNoDouble;

                                dr["SizeNo"]      = sizeRun.SizeNo;
                                dr["SizeOutsole"] = sizeOutsole;

                                dr["SupplierETD"] = outsoleRawMaterial.ETD;
                                if (order != null)
                                {
                                    dr["OutsoleCode"] = order.OutsoleCode;
                                    dr["ArticleNo"]   = order.ArticleNo;
                                    dr["ETD"]         = order.ETD;
                                }
                                if (outsoleSupplier != null)
                                {
                                    dr["OutsoleSupplier"] = outsoleSupplier.Name;
                                }
                                dr["QuantityDelay"] = qtyDelay;
                                dt.Rows.Add(dr);
                            }
                        }
                    }
                }
            }
            e.Result = dt;
        }
Ejemplo n.º 12
0
 public virtual void SetUp()
 {
     orderManagmentServiceMock = new Mock <IOrderManagmentService>();
     testable = new OrdersController(orderManagmentServiceMock.Object);
 }
Ejemplo n.º 13
0
 public static void SetUpClass()
 {
     controller = GetClient().Orders;
     applyConfiguration();
 }
Ejemplo n.º 14
0
 public static void UpdateStatusAsync_NullModel_ThrowsException(
     OrdersController controller)
 {
     Assert.ThrowsAsync <ArgumentNullException>(async() => await controller.UpdateStatusAsync(default, null));
Ejemplo n.º 15
0
 public static void CreateOrderAsync_NullModel_ThrowsArgumentNullException(
     OrdersController controller)
 {
     Assert.ThrowsAsync <ArgumentNullException>(async() => await controller.CreateOrderAsync(null));
 }
 private void bwDelete_DoWork(object sender, DoWorkEventArgs e)
 {
     OrdersController.Delete(productNo);
 }
 private void bwUpdateOrders_DoWork(object sender, DoWorkEventArgs e)
 {
     ordersToUpdate.ProductNo = productNo;
     OrdersController.Update(ordersToUpdate);
 }
 private void bwSearch_DoWork(object sender, DoWorkEventArgs e)
 {
     orders      = OrdersController.SelectTop1(productNo);
     sizeRunList = SizeRunController.Select(productNo);
 }
Ejemplo n.º 19
0
 public OrdersControllerTest()
 {
     _service    = new TestOrder();
     _controller = new OrdersController(_service);
 }
        public void GetAllCustomersShouldReturnCorrectDataWhenOrderedByDesc()
        {
            // Arrange
            var interceptors = new DefaultRepositoryInterceptors(new NorthwindQueryRepositoryInterceptor());
            var repository = new InMemoryRepository(interceptors);

            for (int i = 0; i < 15; i++)
            {
                repository.Add(EntityGenerator.Create<Customer>(
                    p => p.CompanyName = p.CompanyName + i,
                    p => p.CustomerID = i.ToString(),
                    p => p.Orders.First().OrderDetails.First().Quantity = (short)i,
                    p => p.Orders.First().OrderDetails.First().UnitPrice = 100.0M));
            }

            // Act
            var ordersController = new OrdersController(repository);
            var results = ordersController.GetAllCustomers(take: 1, skip: 0, ascending: false).Result;

            // Assert
            results.Single().CustomerId.ShouldEqual("14");
        }
        private void bwLoad_DoWork(object sender, DoWorkEventArgs e)
        {
            upperComponentMaterialList = UpperComponentMaterialController.Select();
            orderList                     = OrdersController.SelectByOutsoleMaterial();
            upperComponentList            = UpperComponentController.Select();
            upperComponentRawMaterialList = UpperComponentRawMaterialController.Select();

            List <String> outsoleCodeList = orderList.Select(o => o.OutsoleCode).Distinct().ToList();

            foreach (string outsoleCode in outsoleCodeList)
            {
                List <String> productNoList = orderList.Where(o => o.OutsoleCode == outsoleCode).Select(o => o.ProductNo).Distinct().ToList();
                List <UpperComponentMaterialModel> upperComponentMaterialList_D1 = upperComponentMaterialList.Where(o => productNoList.Contains(o.ProductNo)).ToList();
                List <Int32> upperComponentPerOutsole = upperComponentMaterialList_D1.Select(o => o.UpperComponentID).Distinct().ToList();
                upperComponentIDShowInGridviewList.AddRange(upperComponentPerOutsole);
            }
            upperComponentIDShowInGridviewList = upperComponentIDShowInGridviewList.Distinct().OrderBy(s => s).ToList();

            DataTable dt = new DataTable();

            Dispatcher.Invoke(new Action(() =>
            {
                dt.Columns.Add("OutsoleCode", typeof(String));
                DataGridTextColumn column1 = new DataGridTextColumn();
                column1.Header             = "O/S Code";
                column1.Binding            = new Binding("OutsoleCode");
                column1.FontWeight         = FontWeights.Bold;
                dgInventory.Columns.Add(column1);
                Binding bindingWidth1 = new Binding();
                bindingWidth1.Source  = column1;
                bindingWidth1.Path    = new PropertyPath("ActualWidth");
                ColumnDefinition cd1  = new ColumnDefinition();
                cd1.SetBinding(ColumnDefinition.WidthProperty, bindingWidth1);
                gridTotal.ColumnDefinitions.Add(cd1);

                dt.Columns.Add("Quantity", typeof(Int32));
                DataGridTextColumn column2 = new DataGridTextColumn();
                column2.Header             = "Quantity";
                column2.Binding            = new Binding("Quantity");
                dgInventory.Columns.Add(column2);
                Binding bindingWidth2 = new Binding();
                bindingWidth2.Source  = column2;
                bindingWidth2.Path    = new PropertyPath("ActualWidth");
                ColumnDefinition cd2  = new ColumnDefinition();
                cd2.SetBinding(ColumnDefinition.WidthProperty, bindingWidth2);
                gridTotal.ColumnDefinitions.Add(cd2);

                dt.Columns.Add("Matching", typeof(Int32));
                DataGridTextColumn column3 = new DataGridTextColumn();
                column3.Header             = "Matching";
                column3.Binding            = new Binding("Matching");
                dgInventory.Columns.Add(column3);
                Binding bindingWidth3 = new Binding();
                bindingWidth3.Source  = column3;
                bindingWidth3.Path    = new PropertyPath("ActualWidth");
                ColumnDefinition cd3  = new ColumnDefinition();
                cd3.SetBinding(ColumnDefinition.WidthProperty, bindingWidth3);
                gridTotal.ColumnDefinitions.Add(cd3);


                dt.Columns.Add("RejectMaximum", typeof(Int32));
                DataGridTextColumn column4 = new DataGridTextColumn();
                column4.Header             = "Reject";
                column4.Binding            = new Binding("RejectMaximum");
                dgInventory.Columns.Add(column4);

                Binding bindingWidth4 = new Binding();
                bindingWidth4.Source  = column4;
                bindingWidth4.Path    = new PropertyPath("ActualWidth");
                ColumnDefinition cd4  = new ColumnDefinition();
                cd4.SetBinding(ColumnDefinition.WidthProperty, bindingWidth4);
                gridTotal.ColumnDefinitions.Add(cd4);

                dgInventory.FrozenColumnCount = 4;

                for (int i = 0; i < upperComponentIDShowInGridviewList.Count; i++)
                {
                    UpperComponentModel upperComponent = upperComponentList.Where(w => w.UpperComponentID == upperComponentIDShowInGridviewList[i]).FirstOrDefault();
                    if (upperComponent != null)
                    {
                        dt.Columns.Add(String.Format("Column{0}", upperComponentIDShowInGridviewList[i]), typeof(String));
                        DataGridTextColumn column = new DataGridTextColumn();
                        column.Width      = 30;
                        column.Binding    = new Binding(String.Format("Column{0}", upperComponentIDShowInGridviewList[i]));
                        column.FontWeight = FontWeights.Bold;

                        Style style = new Style(typeof(DataGridCell));
                        style.Setters.Add(new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Center));
                        Setter setterBackground   = new Setter();
                        setterBackground.Property = DataGridCell.BackgroundProperty;
                        setterBackground.Value    = new Binding(String.Format("Column{0}Background", upperComponentIDShowInGridviewList[i]));
                        style.Setters.Add(setterBackground);

                        Setter setterToolTip   = new Setter();
                        setterToolTip.Property = DataGridCell.ToolTipProperty;
                        setterToolTip.Value    = new Binding(String.Format("Column{0}ToolTip", upperComponentIDShowInGridviewList[i]));
                        style.Setters.Add(setterToolTip);

                        column.CellStyle = style;

                        dgInventory.Columns.Add(column);
                        Binding bindingWidth = new Binding();
                        bindingWidth.Source  = column;
                        bindingWidth.Path    = new PropertyPath("ActualWidth");
                        ColumnDefinition cd  = new ColumnDefinition();
                        cd.SetBinding(ColumnDefinition.WidthProperty, bindingWidth);
                        gridTotal.ColumnDefinitions.Add(cd);

                        DataColumn columnBackground   = new DataColumn(String.Format("Column{0}Background", upperComponentIDShowInGridviewList[i]), typeof(SolidColorBrush));
                        DataColumn columnToolTip      = new DataColumn(String.Format("Column{0}ToolTip", upperComponentIDShowInGridviewList[i]), typeof(String));
                        columnBackground.DefaultValue = Brushes.White;
                        dt.Columns.Add(columnBackground);
                        dt.Columns.Add(columnToolTip);
                    }
                }
            }));


            foreach (string outsoleCode in outsoleCodeList)
            {
                DataRow dr = dt.NewRow();
                dr["OutsoleCode"] = outsoleCode;
                List <String> productNoList = orderList.Where(o => o.OutsoleCode == outsoleCode).Select(o => o.ProductNo).Distinct().ToList();
                List <UpperComponentMaterialModel> upperComponentMaterialList_D1 = upperComponentMaterialList.Where(o => productNoList.Contains(o.ProductNo)).ToList();
                //List<OutsoleReleaseMaterialModel> outsoleReleaseMaterialList_D1 = outsoleReleaseMaterialList.Where(o => productNoList.Contains(o.ProductNo)).ToList();
                List <Int32> upperComponentIDList = upperComponentMaterialList_D1.Select(o => o.UpperComponentID).Distinct().ToList();
                List <Int32> qtyTotalList         = new List <Int32>();
                List <Int32> qtyRejectList        = new List <Int32>();

                foreach (Int32 upperComponentID in upperComponentIDList)
                {
                    List <UpperComponentMaterialModel> upperComponentMaterialList_D2 = upperComponentMaterialList_D1.Where(o => o.UpperComponentID == upperComponentID).ToList();
                    int qtyTotal       = 0;
                    int qtyRejectTotal = 0;

                    foreach (string productNo in productNoList)
                    {
                        List <UpperComponentMaterialModel> upperComponentMaterialList_D3 = upperComponentMaterialList_D2.Where(o => o.ProductNo == productNo).ToList();
                        //List<OutsoleReleaseMaterialModel> outsoleReleaseMaterialList_D3 = outsoleReleaseMaterialList_D1.Where(o => o.ProductNo == productNo).ToList();

                        List <String> sizeNoList = upperComponentMaterialList.Where(o => o.ProductNo == productNo).Select(o => o.SizeNo).Distinct().ToList();
                        foreach (string sizeNo in sizeNoList)
                        {
                            int qtyMax    = upperComponentMaterialList_D3.Where(o => o.SizeNo == sizeNo).Sum(o => o.Quantity - o.QuantityReject);
                            int qtyReject = upperComponentMaterialList_D3.Where(o => o.SizeNo == sizeNo).Sum(o => o.QuantityReject);
                            //int qtyRelease = outsoleReleaseMaterialList_D3.Where(o => o.SizeNo == sizeNo).Sum(o => o.Quantity);
                            //int qty = qtyMax - qtyRelease;
                            int qty = qtyMax;
                            if (qty < 0)
                            {
                                qty = 0;
                            }
                            qtyTotal       += qty;
                            qtyRejectTotal += qtyReject;
                        }
                    }
                    dr[String.Format("Column{0}", upperComponentID)]           = "x";
                    dr[String.Format("Column{0}Background", upperComponentID)] = Brushes.Green;
                    var upperComponentName = upperComponentList.Where(w => w.UpperComponentID == upperComponentID).Select(s => s.UpperComponentName).FirstOrDefault();
                    if (upperComponentName != null)
                    {
                        dr[String.Format("Column{0}ToolTip", upperComponentID)] = string.Format("{0}{1}", upperComponentName, qtyRejectTotal > 0 ? String.Format("\nQtyReject: {0}", qtyRejectTotal.ToString()) : "");
                        //upperComponentName;
                    }
                    qtyTotalList.Add(qtyTotal);
                    qtyRejectList.Add(qtyRejectTotal);
                }

                int qtyMatchTotal = 0;
                foreach (string productNo in productNoList)
                {
                    List <UpperComponentMaterialModel> upperComponentMaterialList_D2 = upperComponentMaterialList_D1.Where(o => o.ProductNo == productNo).ToList();
                    //List<OutsoleReleaseMaterialModel> outsoleReleaseMaterialList_D2 = outsoleReleaseMaterialList_D1.Where(o => o.ProductNo == productNo).ToList();
                    List <String> sizeNoList = upperComponentMaterialList.Where(o => o.ProductNo == productNo).Select(o => o.SizeNo).Distinct().ToList();
                    foreach (string sizeNo in sizeNoList)
                    {
                        int qtyMin = upperComponentMaterialList_D2.Where(o => o.SizeNo == sizeNo).Select(o => o.Quantity - o.QuantityReject).Min();
                        //int qtyRelease = outsoleReleaseMaterialList_D2.Where(o => o.SizeNo == sizeNo).Sum(o => o.Quantity);
                        //int qtyMatch = qtyMin - qtyRelease;
                        int qtyMatch = qtyMin;
                        if (qtyMatch < 0)
                        {
                            qtyMatch = 0;
                        }
                        qtyMatchTotal += qtyMatch;
                    }
                }

                if (qtyRejectList.Count > 0)
                {
                    dr["RejectMaximum"] = qtyRejectList.Max();
                }

                if (qtyTotalList.Count > 0)
                {
                    dr["Quantity"] = qtyTotalList.Max();
                    dr["Matching"] = qtyMatchTotal;
                    dt.Rows.Add(dr);
                }
            }

            Dispatcher.Invoke(new Action(() =>
            {
                dgInventory.ItemsSource = dt.AsDataView();

                TextBlock lblTotal  = new TextBlock();
                lblTotal.Text       = "TOTAL";
                lblTotal.Margin     = new Thickness(1, 0, 0, 0);
                lblTotal.FontWeight = FontWeights.Bold;
                Border bdrTotal     = new Border();
                Grid.SetColumn(bdrTotal, 1);
                Grid.SetColumnSpan(bdrTotal, 2);
                bdrTotal.BorderThickness = new Thickness(1, 0, 1, 1);
                bdrTotal.BorderBrush     = Brushes.Black;
                bdrTotal.Child           = lblTotal;
                gridTotal.Children.Add(bdrTotal);

                TextBlock lblQuantityTotal  = new TextBlock();
                lblQuantityTotal.Text       = dt.Compute("Sum(Quantity)", "").ToString();
                lblQuantityTotal.Margin     = new Thickness(1, 0, 0, 0);
                lblQuantityTotal.FontWeight = FontWeights.Bold;
                Border bdrQuantityTotal     = new Border();
                Grid.SetColumn(bdrQuantityTotal, 3);
                bdrQuantityTotal.BorderThickness = new Thickness(0, 0, 1, 1);
                bdrQuantityTotal.BorderBrush     = Brushes.Black;
                bdrQuantityTotal.Child           = lblQuantityTotal;
                gridTotal.Children.Add(bdrQuantityTotal);
                dgInventory.ItemsSource = dt.AsDataView();

                TextBlock lblMatchingTotal  = new TextBlock();
                lblMatchingTotal.Text       = dt.Compute("Sum(Matching)", "").ToString();
                lblMatchingTotal.Margin     = new Thickness(1, 0, 0, 0);
                lblMatchingTotal.FontWeight = FontWeights.Bold;
                Border bdrMatchingTotal     = new Border();
                Grid.SetColumn(bdrMatchingTotal, 4);
                bdrMatchingTotal.BorderThickness = new Thickness(0, 0, 1, 1);
                bdrMatchingTotal.BorderBrush     = Brushes.Black;
                bdrMatchingTotal.Child           = lblMatchingTotal;
                gridTotal.Children.Add(bdrMatchingTotal);
                dgInventory.ItemsSource = dt.AsDataView();

                TextBlock lblRejectMaximunTotal  = new TextBlock();
                lblRejectMaximunTotal.Text       = dt.Compute("Sum(RejectMaximum)", "").ToString();
                lblRejectMaximunTotal.Margin     = new Thickness(1, 0, 0, 0);
                lblRejectMaximunTotal.FontWeight = FontWeights.Bold;
                Border bdrRejectMaximumTotal     = new Border();
                Grid.SetColumn(bdrRejectMaximumTotal, 5);
                bdrRejectMaximumTotal.BorderThickness = new Thickness(0, 0, 1, 1);
                bdrRejectMaximumTotal.BorderBrush     = Brushes.Black;
                bdrRejectMaximumTotal.Child           = lblRejectMaximunTotal;
                gridTotal.Children.Add(bdrRejectMaximumTotal);
                dgInventory.ItemsSource = dt.AsDataView();
            }));
        }
        void threadLoad_DoWork(object sender, DoWorkEventArgs e)
        {
            //outsoleRawMaterialList = OutsoleRawMaterialController.Select();
            outsoleRawMaterialList = OutsoleRawMaterialController.SelectFull(etdStartSelect, etdEndSelect);
            outsoleMaterialList    = OutsoleMaterialController.SelectByOutsoleRawMaterialFull(etdStartSelect, etdEndSelect);
            sizeRunList            = SizeRunController.SelectByOutsoleRawMaterialFull(etdStartSelect, etdEndSelect);
            outsoleSupplierList    = OutsoleSuppliersController.Select();
            orderList        = OrdersController.SelectByOutsoleRawMaterialFull(etdStartSelect, etdEndSelect);
            sewingMasterList = SewingMasterController.SelectFull(etdStartSelect, etdEndSelect);

            List <String> productNoList = outsoleRawMaterialList.Select(r => r.ProductNo).Distinct().ToList();

            foreach (string productNo in productNoList)
            {
                OrdersModel order = orderList.FirstOrDefault(f => f.ProductNo == productNo);
                List <OutsoleRawMaterialModel> outsoleRawMaterialList_D1 = outsoleRawMaterialList.Where(o => o.ProductNo == productNo).ToList();
                List <SizeRunModel>            sizeRunList_D1            = sizeRunList.Where(s => s.ProductNo == productNo).ToList();
                List <OutsoleMaterialModel>    outsoleMaterialList_D1    = outsoleMaterialList.Where(o => o.ProductNo == productNo).ToList();
                var sewingMasterList_D1 = sewingMasterList.Where(w => w.ProductNo == productNo).ToList();
                foreach (OutsoleRawMaterialModel outsoleRawMaterial in outsoleRawMaterialList_D1)
                {
                    // 108a-2279
                    //bool isFull = OutsoleRawMaterialController.IsFull(sizeRunList_D1, new List<OutsoleRawMaterialModel>() { outsoleRawMaterial, }, outsoleMaterialList_D1);
                    if (
                        //isFull == false &&
                        outsoleRawMaterial.ETD.Date != dtDefault
                        //&& outsoleRawMaterial.ActualDate.Date == dtDefault
                        )
                    {
                        OutsoleDeliveryStatusViewModel outsoleDeliveryStatusView = new OutsoleDeliveryStatusViewModel();
                        outsoleDeliveryStatusView.ProductNo = productNo;
                        if (order != null)
                        {
                            outsoleDeliveryStatusView.Country     = order.Country;
                            outsoleDeliveryStatusView.ShoeName    = order.ShoeName;
                            outsoleDeliveryStatusView.ArticleNo   = order.ArticleNo;
                            outsoleDeliveryStatusView.OutsoleCode = order.OutsoleCode;
                            outsoleDeliveryStatusView.Quantity    = order.Quantity;
                            outsoleDeliveryStatusView.ETD         = order.ETD;
                        }

                        OutsoleSuppliersModel outsoleSupplier = outsoleSupplierList.FirstOrDefault(f => f.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId);
                        if (outsoleSupplier != null)
                        {
                            outsoleDeliveryStatusView.Supplier = outsoleSupplier.Name;
                        }

                        outsoleDeliveryStatusView.SupplierETD = outsoleRawMaterial.ETD;
                        //outsoleDeliveryStatusView.Actual = sizeRunList_D1.Sum(s => (s.Quantity - outsoleMaterialList_D1.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId && o.SizeNo == s.SizeNo).Sum(o => (o.Quantity - o.QuantityReject)))).ToString();

                        //int actualQty = sizeRunList_D1.Sum(s => (outsoleMaterialList_D1.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId && o.SizeNo == s.SizeNo).Sum(o => (o.Quantity - o.QuantityReject))));
                        //int actualQty = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).Sum(s => s.Quantity - s.QuantityReject);
                        int actualQty = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).Sum(s => s.Quantity);
                        if (actualQty > 0)
                        {
                            outsoleDeliveryStatusView.ActualQuantity = actualQty.ToString();
                        }

                        int rejectQty = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).Sum(s => s.QuantityReject);
                        if (rejectQty > 0)
                        {
                            outsoleDeliveryStatusView.RejectQuantity = rejectQty.ToString();
                        }

                        outsoleDeliveryStatusView.IsFinished = true;
                        int balance = order.Quantity - actualQty + rejectQty;
                        if (balance > 0)
                        {
                            //outsoleDeliveryStatusView.Balance = balance.ToString();
                            outsoleDeliveryStatusView.IsFinished = false;
                        }

                        if (outsoleRawMaterial.ActualDate != dtDefault)
                        {
                            outsoleDeliveryStatusView.Actual = string.Format("{0:M/d}", outsoleRawMaterial.ActualDate);
                        }

                        outsoleDeliveryStatusView.SewingStartDate = dtDefault;
                        var sewingMasterModel = sewingMasterList_D1.FirstOrDefault();
                        if (sewingMasterModel != null)
                        {
                            outsoleDeliveryStatusView.SewingStartDate = sewingMasterModel.SewingStartDate;
                        }

                        outsoleDeliveryStatusViewList.Add(outsoleDeliveryStatusView);
                    }
                }
            }
        }
Ejemplo n.º 23
0
        public void CalculateBestService_WithValidResults_ShouldReturnResults()
        {
            // Arrange
            Dictionary <MealType, int> orders = new Dictionary <MealType, int>()
            {
                { MealType.Others, 40 },
                { MealType.Vegetarian, 5 },
                { MealType.GlutenFree, 2 }
            };

            // A sample of valid result
            List <Result> expectedResult = new List <Result>()
            {
                new Result()
                {
                    Restaurant = new Restaurant()
                    {
                        Name = "Restaurant A"
                    },
                    ProvidedFoods = new Dictionary <MealType, int>()
                    {
                        { MealType.Others, 36 },
                        { MealType.Vegetarian, 4 },
                    }
                },
                new Result()
                {
                    Restaurant = new Restaurant()
                    {
                        Name = "Restaurant B"
                    },
                    ProvidedFoods = new Dictionary <MealType, int>()
                    {
                        { MealType.Others, 4 },
                        { MealType.Vegetarian, 1 },
                        { MealType.GlutenFree, 2 }
                    }
                }
            };

            bool isGetBestServicesCalled = false;
            bool isOrderRemainingCalled  = false;

            VizWorxCodeChallenge.Services.Fakes.StubIAnalysisService stubIAnalysisService = new VizWorxCodeChallenge.Services.Fakes.StubIAnalysisService()
            {
                GetBestServiceDictionaryOfMealTypeInt32ListOfRestaurant = (restaurants, order) =>
                {
                    isGetBestServicesCalled = true;
                    return(expectedResult);
                },
                IsOrderRemainingDictionaryOfMealTypeInt32 = (order) =>
                {
                    isOrderRemainingCalled = true;
                    return(false);
                }
            };

            OrdersController controller = new OrdersController(stubIAnalysisService);

            // Act
            var actionResult = controller.CalculateBestService(orders);

            Assert.IsTrue(isGetBestServicesCalled);
            Assert.IsInstanceOfType(actionResult, typeof(OkNegotiatedContentResult <List <Result> >));
            Assert.IsTrue(isOrderRemainingCalled);
        }
Ejemplo n.º 24
0
        // Notifications
        private void bwLoadDelivery_DoWork(object sender, DoWorkEventArgs e)
        {
            outsoleSupplierList        = OutsoleSuppliersController.Select();
            outsoleMaterialList        = OutsoleMaterialController.Select();
            outsoleReleaseMaterialList = OutsoleReleaseMaterialController.SelectByOutsoleMaterial();
            outsoleOutputList          = OutsoleOutputController.SelectByAssemblyMaster();
            sewingMasterList           = SewingMasterController.Select();
            assemblyMasterList         = AssemblyMasterController.Select();
            outsoleMasterList          = OutsoleMasterController.Select();
            orderList = OrdersController.Select();
            outsoleRawMaterialList = OutsoleRawMaterialController.Select();

            var      outsoleCodeList = orderList.Select(o => o.OutsoleCode).Distinct().ToList();
            DateTime dtNow           = DateTime.Now;
            DateTime dtDefault       = new DateTime(2000, 1, 1);
            DateTime deliveryEFDDate = dtDefault;

            // Delay Shipment Notifications
            foreach (var order in orderList)
            {
                bool needToShow = false;
                int  assemblyBalance = 0, sewingBalance = 0, outsoleBalance = 0;
                var  assemblyMaster = assemblyMasterList.FirstOrDefault(f => f.ProductNo == order.ProductNo);
                var  sewingMaster   = sewingMasterList.FirstOrDefault(f => f.ProductNo == order.ProductNo);
                var  outsoleMaster  = outsoleMasterList.FirstOrDefault(f => f.ProductNo == order.ProductNo);
                if (assemblyMaster == null || sewingMaster == null || outsoleMaster == null)
                {
                    continue;
                }

                if (assemblyMaster.AssemblyBalance != "")
                {
                    Int32.TryParse(assemblyMaster.AssemblyBalance, out assemblyBalance);
                }
                else
                {
                    assemblyBalance = order.Quantity;
                }

                if (sewingMaster.SewingBalance != "")
                {
                    Int32.TryParse(sewingMaster.SewingBalance, out sewingBalance);
                }
                else
                {
                    sewingBalance = order.Quantity;
                }

                if (outsoleMaster.OutsoleBalance != "")
                {
                    Int32.TryParse(outsoleMaster.OutsoleBalance, out outsoleBalance);
                }
                else
                {
                    outsoleBalance = order.Quantity;
                }

                if (dtNow.AddDays(5) < order.ETD)
                {
                    needToShow = false;
                }
                else
                {
                    if (assemblyBalance > 0 || sewingBalance > 0 || outsoleBalance > 0)
                    {
                        needToShow = true;
                    }
                    if (assemblyBalance > 0 && sewingBalance == 0 && outsoleBalance == 0)
                    {
                        needToShow = false;
                    }
                }

                if (needToShow == true)
                {
                    var delayShipment = new DelayShipmentViewModel();
                    delayShipment.Style     = order.ShoeName;
                    delayShipment.ProductNo = order.ProductNo;
                    delayShipment.OrderCSD  = order.ETD.AddDays(10);
                    if (assemblyBalance > 0)
                    {
                        delayShipment.AssemblyBalance = assemblyBalance;
                    }
                    if (sewingBalance > 0)
                    {
                        delayShipment.SewingBalance = sewingBalance;
                    }
                    if (outsoleBalance > 0)
                    {
                        delayShipment.OutsoleBalance = outsoleBalance;
                    }
                    if (delayShipment.OrderCSD < DateTime.Now.Date)
                    {
                        delayShipmentList.Add(delayShipment);
                    }
                }
            }

            // OSWH Notifications
            foreach (string outsoleCode in outsoleCodeList)
            {
                var productNoList = orderList.Where(o => o.OutsoleCode == outsoleCode && o.IsEnable == true).Select(o => o.ProductNo).Distinct().ToList();
                foreach (var productNo in productNoList)
                {
                    var sewingMasterModel = sewingMasterList.Where(w => w.ProductNo == productNo).FirstOrDefault();
                    var orderModel        = orderList.Where(w => w.ProductNo == productNo).FirstOrDefault();
                    if (sewingMasterModel == null || orderModel == null)
                    {
                        continue;
                    }
                    var outsoleMaterialList_D1 = outsoleMaterialList.Where(w => w.ProductNo == productNo).ToList();
                    var supplierIdList         = outsoleMaterialList_D1.Select(s => s.OutsoleSupplierId).Distinct().ToList();

                    foreach (var supplierId in supplierIdList)
                    {
                        int quantityDelivery        = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).Sum(s => s.Quantity) - outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).Sum(s => s.QuantityReject);
                        int quantityDelivery1       = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).Sum(s => s.Quantity - s.QuantityReject);
                        var outsoleMaterialDelivery = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).FirstOrDefault();
                        if (quantityDelivery > 0)
                        {
                            var outsoleRawMaterialModel = outsoleRawMaterialList.Where(w => w.ProductNo == productNo && w.OutsoleSupplierId == supplierId).FirstOrDefault();
                            if (outsoleRawMaterialModel != null)
                            {
                                deliveryEFDDate = outsoleRawMaterialModel.ETD;
                            }
                            if (deliveryEFDDate != dtDefault && deliveryEFDDate > dtNow.AddDays(15) && sewingMasterModel.SewingStartDate > dtNow.AddDays(25))
                            {
                                var deliveryEarly = new NoticeOutsoleWHInventoryViewModel()
                                {
                                    Style            = orderModel.ShoeName,
                                    ProductNo        = productNo,
                                    QuantityDelivery = quantityDelivery,
                                    Supplier         = outsoleSupplierList.Where(w => w.OutsoleSupplierId == supplierId).Select(s => s.Name).FirstOrDefault(),
                                    OutsoleCode      = outsoleCode,
                                    DeliveryEFDDate  = deliveryEFDDate,
                                    SewingStartDate  = sewingMasterModel.SewingStartDate,
                                };
                                noticeOSWHInventoryDeliveryEarlyList.Add(deliveryEarly);
                            }
                        }

                        var outsoleRawMaterialLateModel = outsoleRawMaterialList.Where(w => w.ETD <= dtNow && w.ProductNo == productNo && w.OutsoleSupplierId == supplierId).FirstOrDefault();
                        if (outsoleRawMaterialLateModel != null)
                        {
                            int quantityOrder = orderModel.Quantity;
                            if (quantityOrder - quantityDelivery > 0)
                            {
                                var notDelivery = new NoticeOutsoleWHInventoryViewModel()
                                {
                                    Style               = orderModel.ShoeName,
                                    ProductNo           = productNo,
                                    QuantityNotDelivery = quantityOrder - quantityDelivery,
                                    Supplier            = outsoleSupplierList.Where(w => w.OutsoleSupplierId == supplierId).Select(s => s.Name).FirstOrDefault(),
                                    OutsoleCode         = outsoleCode,
                                    DeliveryEFDDate     = outsoleRawMaterialLateModel.ETD,
                                    OrderCSD            = orderModel.ETD.AddDays(10)
                                };
                                noticeOSWHInventoryNotDeliveryList.Add(notDelivery);
                            }
                        }

                        int quantityReject           = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).Sum(s => s.QuantityReject);
                        var outsoleMaterialReject    = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).FirstOrDefault(); // allways not null
                        var outsoleRawMaterialReject = outsoleRawMaterialList.Where(w => w.ETD <= dtNow && w.ProductNo == productNo && w.OutsoleSupplierId == supplierId).FirstOrDefault();
                        if (quantityReject > 0 && outsoleMaterialReject.ModifiedTimeReject < dtNow.AddDays(-2) && outsoleRawMaterialReject != null)
                        {
                            var reject = new NoticeOutsoleWHInventoryViewModel()
                            {
                                Style           = orderModel.ShoeName,
                                ProductNo       = productNo,
                                OrderEFD        = orderModel.ETD,
                                QuantityReject  = quantityReject,
                                Supplier        = outsoleSupplierList.Where(w => w.OutsoleSupplierId == supplierId).Select(s => s.Name).FirstOrDefault(),
                                OutsoleCode     = outsoleCode,
                                DeliveryEFDDate = outsoleRawMaterialReject.ETD
                            };

                            noticeOSWHInventoryRejectList.Add(reject);
                        }
                    }
                }
            }
        }
Ejemplo n.º 25
0
        private void bwLoadData_DoWork(object sender, DoWorkEventArgs e)
        {
            assemblyMasterList  = AssemblyMasterController.Select();
            sewingOutputList    = SewingOutputController.SelectByAssemblyMaster();
            outsoleOutputList   = OutsoleOutputController.SelectByAssemblyMaster();
            assemblyReleaseList = AssemblyReleaseController.SelectByAssemblyMaster();
            orderList           = OrdersController.SelectByAssemblyMaster();

            List <UpperWHInventoryViewModel> upperWHInventoryViewList = new List <UpperWHInventoryViewModel>();

            assemblyLineList = assemblyMasterList.Where(a => String.IsNullOrEmpty(a.AssemblyLine) == false).Select(a => a.AssemblyLine).Distinct().OrderBy(l => l).ToList();
            foreach (string assemblyLine in assemblyLineList)
            {
                List <String> productNoList = assemblyMasterList.Where(a => a.AssemblyLine == assemblyLine).Select(o => o.ProductNo).Distinct().ToList();

                List <AssemblyReleaseModel> assemblyReleaseList_D1 = assemblyReleaseList.Where(a => productNoList.Contains(a.ProductNo) == true).ToList();
                List <SewingOutputModel>    sewingOutputList_D1    = sewingOutputList.Where(s => productNoList.Contains(s.ProductNo) == true).ToList();
                List <OutsoleOutputModel>   outsoleOutputList_D1   = outsoleOutputList.Where(o => productNoList.Contains(o.ProductNo) == true).ToList();

                int qtyUpperTotal   = 0;
                int qtyOutsoleTotal = 0;
                int qtyMatchTotal   = 0;
                foreach (string productNo in productNoList)
                {
                    List <AssemblyReleaseModel> assemblyReleaseList_D2 = assemblyReleaseList_D1.Where(a => a.ProductNo == productNo).ToList();
                    List <SewingOutputModel>    sewingOutputList_D2    = sewingOutputList_D1.Where(s => s.ProductNo == productNo).ToList();
                    List <OutsoleOutputModel>   outsoleOutputList_D2   = outsoleOutputList_D1.Where(o => o.ProductNo == productNo).ToList();

                    List <String> sizeNoList = sewingOutputList_D2.Select(s => s.SizeNo).Distinct().ToList();
                    if (sizeNoList.Count == 0)
                    {
                        sizeNoList = outsoleOutputList_D2.Select(o => o.SizeNo).Distinct().ToList();
                    }
                    foreach (string sizeNo in sizeNoList)
                    {
                        int qtyRelease = assemblyReleaseList_D2.Where(a => a.SizeNo == sizeNo).Sum(a => a.Quantity);
                        int qtyUpper   = sewingOutputList_D2.Where(s => s.SizeNo == sizeNo).Sum(s => s.Quantity)
                                         - qtyRelease;
                        int qtyOutsole = outsoleOutputList_D2.Where(o => o.SizeNo == sizeNo).Sum(o => o.Quantity)
                                         - qtyRelease;
                        int qtyMatch =
                            MatchingHelper.Calculate(sewingOutputList_D2.Where(s => s.SizeNo == sizeNo).Sum(s => s.Quantity),
                                                     outsoleOutputList_D2.Where(o => o.SizeNo == sizeNo).Sum(o => o.Quantity), sizeNo)
                            - qtyRelease;
                        if (qtyUpper < 0)
                        {
                            qtyUpper = 0;
                        }
                        qtyUpperTotal += qtyUpper;
                        if (qtyOutsole < 0)
                        {
                            qtyOutsole = 0;
                        }
                        qtyOutsoleTotal += qtyOutsole;
                        if (qtyMatch < 0)
                        {
                            qtyMatch = 0;
                        }
                        qtyMatchTotal += qtyMatch;
                    }
                }
                UpperWHInventoryViewModel upperWHInventoryView = new UpperWHInventoryViewModel
                {
                    AssemblyLine  = assemblyLine,
                    ProductNoList = productNoList,
                    SewingOutput  = qtyUpperTotal,
                    OutsoleOutput = qtyOutsoleTotal,
                    Matching      = qtyMatchTotal,
                };

                upperWHInventoryViewList.Add(upperWHInventoryView);
            }

            e.Result = upperWHInventoryViewList;
        }
Ejemplo n.º 26
0
 public void SetUp()
 {
     _createOrderHandler = new Mock <ICreateOrderHandler>();
     _getOrderHandler    = new Mock <IGetOrderHandler>();
     _ordersController   = new OrdersController(_createOrderHandler.Object, _getOrderHandler.Object);
 }
        public void Index_WhenCalled_ShouldReturnOK()
        {
            //Initial
            var _mockBookMarkletHelper = new Mock <Controller>();
            var config        = new MapperConfiguration(c => c.AddProfile(new MappingProfile()));
            var mapper        = config.CreateMapper();
            var unitOfWork    = new UnitOfWork(_context);
            var emailHelper   = new EmailHelper();
            var accountHelper = new AccountHelper(emailHelper);

            //creating 2 orders
            var orders = Odin.Data.Builders.OrderBuilder.New(2);

            orders.ForEach(o => o.ConsultantId     = _dsc.Id);
            orders.ForEach(o => o.TransfereeId     = _transferee.Id);
            orders.ForEach(o => o.ProgramManagerId = _pm.Id);
            orders.ForEach(o => o.TrackingId       = TokenHelper.NewToken());
            var testDateTime = new DateTime(1999, 6, 14);

            orders.ForEach(o => o.PreTripDate = testDateTime);

            _controller = new OrdersController(unitOfWork, mapper, accountHelper);
            _context.Orders.AddRange(orders);
            _controller.MockCurrentUser(_dsc.Id, _dsc.UserName);

            //creating managers
            var managerStore   = new UserStore <Manager>(new ApplicationDbContext());
            var managerManager = new UserManager <Manager>(managerStore);

            //Manager 1
            string _odinPmUserName1 = "*****@*****.**";
            var    pmUser1          = managerManager.FindByName(_odinPmUserName1);

            if (pmUser1 == null)
            {
                var newPm = new Manager()
                {
                    UserName    = _odinPmUserName1,
                    FirstName   = "Odin",
                    LastName    = "Pm",
                    Email       = _odinPmUserName1,
                    PhoneNumber = "2166824239"
                };
                managerManager.Create(newPm, "OdinOdin5$");
                managerManager.AddToRole(newPm.Id, UserRoles.ProgramManager);
                pmUser1 = managerManager.FindByName(_odinPmUserName1);
            }

            //Manager 2
            string _odinPmUserName2 = "*****@*****.**";
            var    pmUser2          = managerManager.FindByName(_odinPmUserName2);

            if (pmUser2 == null)
            {
                var newPm = new Manager()
                {
                    UserName    = _odinPmUserName2,
                    FirstName   = "Pratik",
                    LastName    = "Pm",
                    Email       = _odinPmUserName2,
                    PhoneNumber = "21689578545"
                };
                managerManager.Create(newPm, "OdinOdin5$");
                managerManager.AddToRole(newPm.Id, UserRoles.ProgramManager);
                pmUser2 = managerManager.FindByName(_odinPmUserName2);
            }

            //putting Orders in DB
            _context.Orders.AddRange(orders);
            _context.SaveChanges();

            //ManagerViewModels
            ManagerViewModel mngrvms1 = new ManagerViewModel();

            mngrvms1.FirstName   = pmUser1.FirstName;
            mngrvms1.Id          = pmUser1.Id;
            mngrvms1.LastName    = pmUser1.LastName;
            mngrvms1.phoneNumber = pmUser1.PhoneNumber;
            mngrvms1.Email       = pmUser1.Email;

            ManagerViewModel mngrvms2 = new ManagerViewModel();

            mngrvms2.FirstName   = pmUser2.FirstName;
            mngrvms2.Id          = pmUser2.Id;
            mngrvms2.LastName    = pmUser2.LastName;
            mngrvms2.phoneNumber = pmUser2.PhoneNumber;
            mngrvms2.Email       = pmUser2.Email;


            //Creating view models
            OrdersIndexViewModel ordersIndexViewModel1 = new OrdersIndexViewModel();

            ordersIndexViewModel1.Id             = orders[0].Id;
            ordersIndexViewModel1.ProgramManager = mngrvms1;

            OrdersIndexViewModel ordersIndexViewModel2 = new OrdersIndexViewModel();

            ordersIndexViewModel1.Id             = orders[1].Id;
            ordersIndexViewModel1.ProgramManager = mngrvms2;


            OrderIndexManagerViewModel orderIndexManagerViewModel = new OrderIndexManagerViewModel(Enumerable.Repeat(ordersIndexViewModel1, 1), Enumerable.Repeat(mngrvms1, 1));

            orderIndexManagerViewModel.Managers      = Enumerable.Repeat(mngrvms2, 1);
            orderIndexManagerViewModel.OrdersIndexVm = Enumerable.Repeat(ordersIndexViewModel2, 1);

            //act
            var OrdersIndexViewModelres = _controller.Index(pmUser1.Id) as ViewResult;

            //assert
            OrdersIndexViewModelres.Model.Equals(orderIndexManagerViewModel);
        }
        public void Initialize()
        {
            _orderUseCases = new Mock <IOrderUseCases>();

            _ordersController = new OrdersController(_orderUseCases.Object);
        }
Ejemplo n.º 29
0
 public void Initialize()
 {
     // ARRANGE
     _ordersController = new OrdersController();
 }
Ejemplo n.º 30
0
 public OrderTests()
 {
     _repo       = new GenericRepository <Order>();
     _controller = new OrdersController();
 }
        private void bwLoad_DoWork(object sender, DoWorkEventArgs e)
        {
            orderList         = OrdersController.Select();
            rawMaterialList   = RawMaterialController.Select();
            sewingMasterList  = SewingMasterController.Select();
            outsoleMasterList = OutsoleMasterController.Select();

            productionMemoList = ProductionMemoController.Select();


            //sewingMasterList.RemoveAll(s => DateTimeHelper.Create(s.SewingBalance) != dtDefault && DateTimeHelper.Create(s.SewingBalance) != dtNothing);
            sewingMasterList = sewingMasterList.OrderBy(s => s.Sequence).ToList();

            int[] materialIdUpperArray   = { 1, 2, 3, 4, 10 };
            int[] materialIdSewingArray  = { 5, 7 };
            int[] materialIdOutsoleArray = { 6 };

            foreach (SewingMasterModel sewingMaster in sewingMasterList)
            {
                SewingMasterExportViewModel sewingMasterExportView = new SewingMasterExportViewModel();
                sewingMasterExportView.Sequence  = sewingMaster.Sequence;
                sewingMasterExportView.ProductNo = sewingMaster.ProductNo;
                OrdersModel order = orderList.Where(o => o.ProductNo == sewingMaster.ProductNo).FirstOrDefault();

                string memoId = "";

                if (order != null)
                {
                    sewingMasterExportView.Country   = order.Country;
                    sewingMasterExportView.ShoeName  = order.ShoeName;
                    sewingMasterExportView.ArticleNo = order.ArticleNo;
                    sewingMasterExportView.PatternNo = order.PatternNo;
                    sewingMasterExportView.Quantity  = order.Quantity;
                    sewingMasterExportView.ETD       = order.ETD;

                    List <ProductionMemoModel> productionMemoByProductionNumberList = productionMemoList.Where(p => p.ProductionNumbers.Contains(order.ProductNo) == true).ToList();
                    for (int p = 0; p <= productionMemoByProductionNumberList.Count - 1; p++)
                    {
                        ProductionMemoModel productionMemo = productionMemoByProductionNumberList[p];
                        memoId += productionMemo.MemoId;
                        if (p < productionMemoByProductionNumberList.Count - 1)
                        {
                            memoId += "\n";
                        }
                    }
                    sewingMasterExportView.MemoId = memoId;
                }

                MaterialArrivalViewModel materialArrivalUpper = MaterialArrival(order.ProductNo, materialIdUpperArray);
                sewingMasterExportView.IsUpperMatsArrivalOk = false;
                if (materialArrivalUpper != null)
                {
                    sewingMasterExportView.UpperMatsArrival     = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalUpper.Date);
                    sewingMasterExportView.IsUpperMatsArrivalOk = materialArrivalUpper.IsMaterialArrivalOk;
                }

                MaterialArrivalViewModel materialArrivalSewing = MaterialArrival(order.ProductNo, materialIdSewingArray);
                sewingMasterExportView.IsSewingMatsArrivalOk = false;
                if (materialArrivalSewing != null)
                {
                    sewingMasterExportView.SewingMatsArrival     = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalSewing.Date);
                    sewingMasterExportView.IsSewingMatsArrivalOk = materialArrivalSewing.IsMaterialArrivalOk;
                }

                MaterialArrivalViewModel materialArrivalOutsole = MaterialArrival(order.ProductNo, materialIdOutsoleArray);
                sewingMasterExportView.IsOSMatsArrivalOk = false;
                if (materialArrivalOutsole != null)
                {
                    sewingMasterExportView.OSMatsArrival     = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalOutsole.Date);
                    sewingMasterExportView.IsOSMatsArrivalOk = materialArrivalOutsole.IsMaterialArrivalOk;
                }
                sewingMasterExportView.SewingLine       = sewingMaster.SewingLine;
                sewingMasterExportView.CutAStartDate    = sewingMaster.CutAStartDate;
                sewingMasterExportView.SewingStartDate  = sewingMaster.SewingStartDate;
                sewingMasterExportView.SewingFinishDate = sewingMaster.SewingFinishDate;
                sewingMasterExportView.SewingQuota      = sewingMaster.SewingQuota;
                sewingMasterExportView.SewingBalance    = sewingMaster.SewingBalance;
                sewingMasterExportView.CutABalance      = sewingMaster.CutABalance;
                sewingMasterExportView.CutBBalance      = sewingMaster.CutBBalance;

                OutsoleMasterModel outsoleMaster = outsoleMasterList.Where(o => o.ProductNo == sewingMaster.ProductNo).FirstOrDefault();
                if (outsoleMaster != null)
                {
                    sewingMasterExportView.OSBalance = outsoleMaster.OutsoleBalance;
                }
                else
                {
                    sewingMasterExportView.OSBalance = "";
                }

                sewingMasterExportViewList.Add(sewingMasterExportView);
            }
        }
        public void GetCustomerOrderHistoryShouldReturnCorrectDataWhenFilteredByProductName()
        {
            // Arrange
            var repository = new InMemoryRepository();

            // Act
            var ordersController = new OrdersController(repository);
            var result = ordersController.GetCustomerOrderHistory("NotUsed", "2").Result;

            // Assert
            result.Count().ShouldEqual(1);
            result.First().ProductName.ShouldEqual("ProductName2");
        }
Ejemplo n.º 33
0
 public OrderUnitTest()
 {
     controller = new OrdersController();
 }
Ejemplo n.º 34
0
        private void bwLoad_DoWork(object sender, DoWorkEventArgs e)
        {
            orderList            = OrdersController.Select();
            rawMaterialList      = RawMaterialController.Select();
            sewingMasterList     = SewingMasterController.Select();
            outsoleMasterList    = OutsoleMasterController.Select();
            sockliningMasterList = SockliningMasterController.Select();
            assemblyMasterList   = AssemblyMasterController.Select();
            productionMemoList   = ProductionMemoController.Select();
            //sewingMasterList.RemoveAll(s => DateTimeHelper.Create(s.SewingBalance) != dtDefault && DateTimeHelper.Create(s.SewingBalance) != dtNothing);
            assemblyMasterList = assemblyMasterList.OrderBy(s => s.Sequence).ToList();

            int[] materialIdUpperArray    = { 1, 2, 3, 4, 10 };
            int[] materialIdSewingArray   = { 5, 7 };
            int[] materialIdOutsoleArray  = { 6 };
            int[] materialIdAssemblyArray = { 8, 9 };
            int[] materialIdCartonArray   = { 11 };

            foreach (AssemblyMasterModel assemblyMaster in assemblyMasterList)
            {
                AssemblyMasterExportViewModel assemblyMasterExportView = new AssemblyMasterExportViewModel();
                assemblyMasterExportView.Sequence  = assemblyMaster.Sequence;
                assemblyMasterExportView.ProductNo = assemblyMaster.ProductNo;
                OrdersModel order  = orderList.Where(o => o.ProductNo == assemblyMaster.ProductNo).FirstOrDefault();
                string      memoId = "";
                if (order != null)
                {
                    assemblyMasterExportView.Country   = order.Country;
                    assemblyMasterExportView.ShoeName  = order.ShoeName;
                    assemblyMasterExportView.ArticleNo = order.ArticleNo;
                    assemblyMasterExportView.LastCode  = order.LastCode;
                    assemblyMasterExportView.Quantity  = order.Quantity;
                    assemblyMasterExportView.ETD       = order.ETD;


                    List <ProductionMemoModel> productionMemoByProductionNumberList = productionMemoList.Where(p => p.ProductionNumbers.Contains(order.ProductNo) == true).ToList();
                    for (int p = 0; p <= productionMemoByProductionNumberList.Count - 1; p++)
                    {
                        ProductionMemoModel productionMemo = productionMemoByProductionNumberList[p];
                        memoId += productionMemo.MemoId;
                        if (p < productionMemoByProductionNumberList.Count - 1)
                        {
                            memoId += "\n";
                        }
                    }
                    assemblyMasterExportView.MemoId = memoId;
                }

                MaterialArrivalViewModel materialArrivalOutsole = MaterialArrival(order.ProductNo, materialIdOutsoleArray);
                assemblyMasterExportView.IsOutsoleMatsArrivalOk = false;
                if (materialArrivalOutsole != null)
                {
                    assemblyMasterExportView.OutsoleMatsArrival     = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalOutsole.Date);
                    assemblyMasterExportView.IsOutsoleMatsArrivalOk = materialArrivalOutsole.IsMaterialArrivalOk;
                }

                MaterialArrivalViewModel materialArrivalAssembly = MaterialArrival(order.ProductNo, materialIdAssemblyArray);
                assemblyMasterExportView.IsAssemblyMatsArrivalOk = false;
                if (materialArrivalAssembly != null)
                {
                    assemblyMasterExportView.AssemblyMatsArrival     = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalAssembly.Date);
                    assemblyMasterExportView.IsAssemblyMatsArrivalOk = materialArrivalAssembly.IsMaterialArrivalOk;
                }

                MaterialArrivalViewModel materialArrivalCarton = MaterialArrival(order.ProductNo, materialIdCartonArray);
                if (materialArrivalCarton != null)
                {
                    assemblyMasterExportView.CartonMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalCarton.Date);
                }

                assemblyMasterExportView.AssemblyLine       = assemblyMaster.AssemblyLine;
                assemblyMasterExportView.AssemblyStartDate  = assemblyMaster.AssemblyStartDate;
                assemblyMasterExportView.AssemblyFinishDate = assemblyMaster.AssemblyFinishDate;
                assemblyMasterExportView.AssemblyQuota      = assemblyMaster.AssemblyQuota;
                assemblyMasterExportView.AssemblyBalance    = assemblyMaster.AssemblyBalance;

                SewingMasterModel sewingMaster = sewingMasterList.Where(o => o.ProductNo == assemblyMaster.ProductNo).FirstOrDefault();
                if (sewingMaster != null)
                {
                    assemblyMasterExportView.SewingStartDate  = sewingMaster.SewingStartDate;
                    assemblyMasterExportView.SewingFinishDate = sewingMaster.SewingFinishDate;
                    assemblyMasterExportView.SewingBalance    = sewingMaster.SewingBalance;
                }
                else
                {
                    assemblyMasterExportView.SewingStartDate  = dtDefault;
                    assemblyMasterExportView.SewingFinishDate = dtDefault;
                    assemblyMasterExportView.SewingBalance    = "";
                }

                OutsoleMasterModel outsoleMaster = outsoleMasterList.Where(o => o.ProductNo == assemblyMaster.ProductNo).FirstOrDefault();
                if (outsoleMaster != null)
                {
                    assemblyMasterExportView.OutsoleBalance = outsoleMaster.OutsoleBalance;
                }
                else
                {
                    assemblyMasterExportView.OutsoleBalance = "";
                }

                SockliningMasterModel sockliningMaster = sockliningMasterList.Where(o => o.ProductNo == assemblyMaster.ProductNo).FirstOrDefault();
                if (sockliningMaster != null)
                {
                    assemblyMasterExportView.InsoleBalance = sockliningMaster.InsoleBalance;
                    assemblyMasterExportView.InsockBalance = sockliningMaster.InsockBalance;
                }
                else
                {
                    assemblyMasterExportView.InsoleBalance = "";
                    assemblyMasterExportView.InsockBalance = "";
                }
                assemblyMasterExportViewList.Add(assemblyMasterExportView);
            }
        }
Ejemplo n.º 35
0
        public async Task Put_Success(int quantity)
        {
            // Arrange
            var dbContext = _fixture.Context;
            var mapper    = MapperMock.Get();

            var fileService = FileServiceMock.FilesService();

            var user = NewDatas.NewUser();
            await dbContext.Users.AddAsync(user);

            await dbContext.SaveChangesAsync();

            var product1 = NewDatas.NewProduct();
            await dbContext.Products.AddRangeAsync(product1);

            await dbContext.SaveChangesAsync();

            #region create intial order data
            var order = NewDatas.NewOrder();
            dbContext.Orders.Add(order);
            await dbContext.SaveChangesAsync();

            var orderDetail1 = NewDatas.NewOrderDetail();
            orderDetail1.productId = product1.productId;
            orderDetail1.orderId   = order.orderId;

            int initialQuantity = orderDetail1.quantity;

            await dbContext.OrderDetails.AddRangeAsync(orderDetail1);

            await dbContext.SaveChangesAsync();

            order.orderDetails = new List <OrderDetail> {
                orderDetail1
            };
            order.user = user;
            await dbContext.SaveChangesAsync();

            #endregion

            var orderCreateRequest = NewDatas.NewOrderDetailRequest();
            orderCreateRequest.productId = product1.productId;
            orderCreateRequest.quantity  = quantity;

            int afterPostQuantity = quantity;

            var ordersService    = new OrderService(dbContext, mapper);
            var ordersController = new OrdersController(ordersService, mapper, fileService);

            #region set controller user
            ordersController.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.Name, user.UserName),
                        new Claim(ClaimTypes.NameIdentifier, user.Id.ToString(CultureInfo.InvariantCulture))
                    }, "Bearer")
                                               )
                }
            };
            #endregion

            // Act
            var result = await ordersController.PostOrder(orderCreateRequest);

            // Assert
            var ordersResult         = Assert.IsType <CreatedAtActionResult>(result.Result);
            var productInOrderResult = (ordersResult.Value as Order).orderDetails.First(x => x.productId == product1.productId);
            Assert.Equal(productInOrderResult.quantity, initialQuantity + afterPostQuantity);
        }
        public void GetAllCustomersShouldReturnCorrectDataWhenMinOrderSupplied()
        {
            // Arrange
            var interceptors = new DefaultRepositoryInterceptors(new NorthwindQueryRepositoryInterceptor());
            var repository = new InMemoryRepository(interceptors);

            for (int i = 0; i < 15; i++)
            {
                repository.Add(EntityGenerator.Create<Customer>(
                    p => p.CompanyName = p.CompanyName + i,
                    p => p.CustomerID = i.ToString(),
                    p => p.Orders.First().OrderDetails.First().Quantity = (short)i,
                    p => p.Orders.First().OrderDetails.First().UnitPrice = 100.0M));
            }

            // Act
            var ordersController = new OrdersController(repository);

            // Assert
            var results = ordersController.GetAllCustomers(minOrderValue: 100 * 10).Result;
            results.Count().ShouldEqual(5);
        }
Ejemplo n.º 37
0
 protected void gridMain_ItemCommand(object sender, GridCommandEventArgs e)
 {
     if (e.CommandName == "invPrint")
     {
         GridDataItem        item          = (GridDataItem)e.Item;
         int                 orderID       = (int)((GridDataItem)e.Item).GetDataKeyValue("ID");
         OrdersController    oCont         = new OrdersController();
         OrderB              curOrder      = oCont.GetOrder(orderID);
         TasksController     lCont         = new TasksController();
         List <TaskB>        tasksForOrder = lCont.GetTasksForOrder(orderID);
         CustomersController cCont         = new CustomersController();
         CustomerB           curCust       = cCont.GetCustomer(curOrder.Customer1.ID);
         try {
             DocumentReplacemetsController cont = new DocumentReplacemetsController();
             List <DocumentReplacemetB>    reps = new List <DocumentReplacemetB>();
             reps = cont.GetDocumentReplacemets(sqlUniqueName);
             DocumentReplacemetB curRep;
             string                imgFolderPath = Server.MapPath(fileUploadFolder);
             RadFlowDocument       curDoc        = LoadTemplateDocument(docTemplate);
             RadFlowDocumentEditor editor        = new RadFlowDocumentEditor(curDoc);
             Run       currRun;
             Paragraph currPar;
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currPar.TextAlignment = Alignment.Right;
             currRun = editor.InsertText("ATHENS " + DateTime.Now.ToString("dd/MM/yyyy"));
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = insertParagraph(editor);
             currPar.TextAlignment = Alignment.Right;
             string regNo = curOrder.RegNo == null ? "" : curOrder.RegNo;
             currRun = editor.InsertText("REF. " + regNo);
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             Telerik.Windows.Documents.Flow.Model.Table infoTable = editor.InsertTable(4, 2);
             infoTable.Borders            = new TableBorders(new Border(Telerik.Windows.Documents.Flow.Model.Styles.BorderStyle.None));
             currPar                      = infoTable.Rows[0].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun                      = currPar.Inlines.AddRun("Information:");
             currPar                      = infoTable.Rows[0].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             curRep = reps.Where(o => o.Title == "Πληροφορίες").FirstOrDefault();
             if (curRep != null)
             {
                 currRun = currPar.Inlines.AddRun(curRep.Text);
                 currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             }
             currPar = infoTable.Rows[1].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun = currPar.Inlines.AddRun("Phone:");
             currPar = infoTable.Rows[1].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             curRep = reps.Where(o => o.Title == "Τηλέφωνο").FirstOrDefault();
             if (curRep != null)
             {
                 currRun = currPar.Inlines.AddRun(curRep.Text);
                 currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             }
             currPar = infoTable.Rows[2].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun = currPar.Inlines.AddRun("FAX:");
             currPar = infoTable.Rows[2].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             curRep = reps.Where(o => o.Title == "FAX").FirstOrDefault();
             if (curRep != null)
             {
                 currRun = currPar.Inlines.AddRun(curRep.Text);
                 currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             }
             currPar = infoTable.Rows[3].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun = currPar.Inlines.AddRun("Email:");
             currPar = infoTable.Rows[3].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             curRep = reps.Where(o => o.Title == "Email").FirstOrDefault();
             if (curRep != null)
             {
                 Run currRun2 = currPar.Inlines.AddRun();
                 editor.MoveToInlineEnd(currRun2);
                 editor.InsertHyperlink(curRep.Text, "mailto:" + curRep.Text, false);
                 editor.MoveToTableEnd(infoTable);
             }
             currPar = insertParagraph(editor);
             editor.MoveToParagraphStart(currPar);
             Telerik.Windows.Documents.Flow.Model.Table toTable = editor.InsertTable(3, 2);
             toTable.Borders = new TableBorders(new Border(Telerik.Windows.Documents.Flow.Model.Styles.BorderStyle.None));
             currPar         = toTable.Rows[0].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun = currPar.Inlines.AddRun("ATT.:");
             currPar = toTable.Rows[0].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             if (!string.IsNullOrEmpty(tasksForOrder[0].Customer.NameEN))
             {
                 currRun = currPar.Inlines.AddRun(tasksForOrder[0].Customer.NameEN);
                 currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             }
             currPar = toTable.Rows[1].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun = currPar.Inlines.AddRun("Phone:");
             currPar = toTable.Rows[1].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             if (!string.IsNullOrEmpty(tasksForOrder[0].Customer.Telephone1))
             {
                 currRun = currPar.Inlines.AddRun(tasksForOrder[0].Customer.Telephone1);
                 currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             }
             currPar = toTable.Rows[2].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun = currPar.Inlines.AddRun("FAX:");
             currPar = toTable.Rows[2].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             if (!string.IsNullOrEmpty(tasksForOrder[0].Customer.FAX1))
             {
                 currRun = currPar.Inlines.AddRun(tasksForOrder[0].Customer.FAX1);
                 currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             }
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("SUBJECT:  TEMPORARΥ TELEPHONE LINES");
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currPar.TextAlignment = Alignment.Justified;
             currRun = editor.InsertText("You are kindly requested to provide " + tasksForOrder.Count.ToString() + " temporary telephone lines.");
             currPar = insertParagraph(editor);
             Telerik.Windows.Documents.Flow.Model.Table eventTable = editor.InsertTable(2, 2);
             eventTable.Borders           = new TableBorders(new Border(Telerik.Windows.Documents.Flow.Model.Styles.BorderStyle.None));
             currPar                      = eventTable.Rows[0].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun                      = currPar.Inlines.AddRun("in:");
             currPar                      = eventTable.Rows[0].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             string curP = curOrder.Event.Place.NameEN == null ? "" : curOrder.Event.Place.NameEN;
             currRun = currPar.Inlines.AddRun(curP);
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = eventTable.Rows[1].Cells[0].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             currRun = currPar.Inlines.AddRun("event:");
             currPar = eventTable.Rows[1].Cells[1].Blocks.AddParagraph();
             currPar.Spacing.SpacingAfter = 0;
             string curE = curOrder.Event.NameEN == null ? "" : curOrder.Event.NameEN;
             currRun = currPar.Inlines.AddRun(curE);
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             int tRows = tasksForOrder.Count + 1;
             Telerik.Windows.Documents.Flow.Model.Table contentTable = editor.InsertTable(tRows, 5);
             toTable.Borders = new TableBorders(new Border(Telerik.Windows.Documents.Flow.Model.Styles.BorderStyle.None));
             currPar         = contentTable.Rows[0].Cells[0].Blocks.AddParagraph();
             currRun         = currPar.Inlines.AddRun("Customer Name");
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = contentTable.Rows[0].Cells[1].Blocks.AddParagraph();
             currRun = currPar.Inlines.AddRun("From");
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = contentTable.Rows[0].Cells[2].Blocks.AddParagraph();
             currRun = currPar.Inlines.AddRun("To");
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = contentTable.Rows[0].Cells[3].Blocks.AddParagraph();
             currRun = currPar.Inlines.AddRun("Place of Instal.");
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = contentTable.Rows[0].Cells[4].Blocks.AddParagraph();
             currRun = currPar.Inlines.AddRun("");
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             int curRow = 1;
             foreach (TaskB curTask in tasksForOrder)
             {
                 currPar = contentTable.Rows[curRow].Cells[0].Blocks.AddParagraph();
                 currRun = currPar.Inlines.AddRun(curCust.NameEN);
                 currPar = contentTable.Rows[curRow].Cells[1].Blocks.AddParagraph();
                 currRun = currPar.Inlines.AddRun(curTask.DateTimeStartOrder.ToString());
                 currPar = contentTable.Rows[curRow].Cells[2].Blocks.AddParagraph();
                 currRun = currPar.Inlines.AddRun(curTask.DateTimeEndOrder.ToString());
                 currPar = contentTable.Rows[curRow].Cells[3].Blocks.AddParagraph();
                 currRun = currPar.Inlines.AddRun(curTask.RequestedPosition.NameEN);
                 currPar = contentTable.Rows[curRow].Cells[4].Blocks.AddParagraph();
                 string LineType2Print = curTask.LineType.Name;
                 if (curTask.Internet == true)
                 {
                     LineType2Print += " + WIFI ROUTER";
                 }
                 currRun = currPar.Inlines.AddRun(LineType2Print);
                 curRow++;
             }
             var    distinctTasksLT = tasksForOrder.Select(m => new { m.LineTypeID, m.Internet, m.MSN }).Distinct().ToList();
             string concatString    = "";
             int    distinctItems   = 0;
             foreach (var dItem in distinctTasksLT)
             {
                 if (distinctItems > 0 && distinctItems < distinctTasksLT.Count - 1)
                 {
                     concatString += ", ";
                 }
                 else if (distinctItems > 0 && distinctItems == distinctTasksLT.Count - 1)
                 {
                     concatString += " & ";
                 }
                 TaskB demoTask  = tasksForOrder.Where(k => k.LineTypeID == dItem.LineTypeID && k.Internet == dItem.Internet && k.MSN == dItem.MSN).FirstOrDefault();
                 int   itemCount = tasksForOrder.Where(k => k.LineTypeID == dItem.LineTypeID && k.Internet == dItem.Internet && k.MSN == dItem.MSN).Count();
                 concatString += itemCount.ToString() + " " + demoTask.LineType.Name;
                 if (demoTask.Internet == true && demoTask.MSN == true)
                 {
                     concatString += " with router and MSN";
                 }
                 else if (demoTask.Internet == true)
                 {
                     concatString += " with router";
                 }
                 else if (demoTask.MSN == true)
                 {
                     concatString += " with MSN";
                 }
                 distinctItems++;
             }
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("Please provide " + concatString);
             currRun.Properties.FontSize.LocalValue   = Telerik.Windows.Documents.Media.Unit.PointToDip(9);
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("Contact Person: " + reps.Where(o => o.Title == "Contact Person").FirstOrDefault().Text + "  Mob:" + reps.Where(o => o.Title == "Κινητό C.P.").FirstOrDefault().Text);
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("Please advise on allocated numbers A.S.A.P. to the e-mail address: ");
             editor.InsertHyperlink(curRep.Text, "mailto:" + curRep.Text, false);
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("HELLENIC TELECOMMUNICATIONS ORGANIZATION SA (OTE GROUP OF COMPANIES)");
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("VAT Number: ");
             currRun = editor.InsertText("EL 094019245");
             currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("Responsible for the payments is our company:");
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("HELLENIC TELECOMMUNICATIONS ORGANIZATION SA (OTE GROUP OF COMPANIES) via its Billing department bellow");
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("Delivery invoice address for the original invoice (Post mail):");
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("OTE INTERNATIONAL SOLUTION SA (OTEGLOBE)");
             curRep  = reps.Where(o => o.Title == "OTEGlobe Διεύθυνση 1").FirstOrDefault();
             currPar = insertParagraph(editor);
             if (curRep != null)
             {
                 //currPar = insertParagraph(editor);
                 //currRun = editor.InsertText(curRep.Text);
                 currRun = editor.InsertLine(curRep.Text);
             }
             curRep = reps.Where(o => o.Title == "OTEGlobe Διεύθυνση 2").FirstOrDefault();
             if (curRep != null)
             {
                 //currPar = insertParagraph(editor);
                 //currRun = editor.InsertText(curRep.Text);
                 currRun = editor.InsertLine(curRep.Text);
             }
             curRep = reps.Where(o => o.Title == "OTEGlobe Site").FirstOrDefault();
             if (curRep != null)
             {
                 //currPar = insertParagraph(editor);
                 editor.InsertHyperlink(curRep.Text, "http://" + curRep.Text, false);
             }
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             string rep = "";
             curRep = reps.Where(o => o.Title == "Person In Charge").FirstOrDefault();
             if (curRep != null)
             {
                 rep += curRep.Text;
             }
             curRep = reps.Where(o => o.Title == "Person In Charge (Phone)").FirstOrDefault();
             if (curRep != null)
             {
                 rep += curRep.Text;
             }
             if (!string.IsNullOrEmpty(rep))
             {
                 currRun = editor.InsertText("(Person in charge " + rep + ")");
                 currPar = insertParagraph(editor);
             }
             curRep = reps.Where(o => o.Title == "Person In Charge (Email)").FirstOrDefault();
             if (curRep != null)
             {
                 currRun = editor.InsertText("Email: ");
                 editor.InsertHyperlink(curRep.Text, "mailto:" + curRep.Text, false);
                 currPar = insertParagraph(editor);
             }
             currRun = editor.InsertText("Email: ");
             editor.InsertHyperlink("*****@*****.**", "mailto:[email protected]", false);
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             curRep  = reps.Where(o => o.Title == "Email").FirstOrDefault();
             if (curRep != null)
             {
                 currPar = insertParagraph(editor);
                 currRun = editor.InsertText("You could notify a copy of the invoice (as a pdf) to this e-mail: ");
                 editor.InsertHyperlink(curRep.Text, "mailto:" + curRep.Text, false);
                 currRun.Properties.FontWeight.LocalValue = FontWeights.Bold;
             }
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("The charges will be settled via Bank transfer.");
             currPar = insertParagraph(editor);
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("Best regards,");
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("SAOUSOPOULOU ANNA");
             currPar = insertParagraph(editor);
             currRun = editor.InsertText("MANAGER OF GENTRANS, ATHENS");
             curDoc.UpdateFields();
             exportDOCX(curDoc);
         }
         catch (Exception ex) { }
     }
 }
Ejemplo n.º 38
0
 public OrdersControllerTest()
 {
     _context    = new ApplicationDbContext();
     _controller = new OrdersController(new UnitOfWork(_context));
 }
        public OrdersControllerUnitTest()
        {
            var _mediator = new Mock <IMediator>();

            _controller = new OrdersController(_mediator.Object);
        }