public async Task <IActionResult> Put(string id, [FromBody] UpdateGarmentDeliveryReturnCommand command)
        {
            Guid guid = Guid.Parse(id);

            command.SetId(guid);

            VerifyUser();

            foreach (var item in command.Items)
            {
                var garmentDeliveryReturnItems = _garmentDeliveryReturnItemRepository.Find(x => x.Identity == item.Id).Single();
                if (item.IsSave == true && item.Product.Name != "FABRIC")
                {
                    await PutGarmentUnitExpenditureNoteCreateForDeliveryReturn(item.UENItemId, item.Quantity, garmentDeliveryReturnItems.Quantity);
                }
                else if (item.IsSave == false && item.Product.Name != "FABRIC")
                {
                    await PutGarmentUnitExpenditureNoteCreateForDeliveryReturn(item.UENItemId, 0, garmentDeliveryReturnItems.Quantity);
                }
            }
            ;

            var order = await Mediator.Send(command);

            return(Ok(order.Identity));
        }
Ejemplo n.º 2
0
        public void Place_HaveError()
        {
            // Arrange
            var unitUnderTest = new UpdateGarmentDeliveryReturnCommand()
            {
                Items = new List <GarmentDeliveryReturnItemValueObject>()
                {
                    new GarmentDeliveryReturnItemValueObject()
                    {
                        Product = new Product()
                    }
                }
            };

            // Action
            var validator = GetValidationRules();
            var result    = validator.TestValidate(unitUnderTest);

            // Assert
            result.ShouldHaveError();
        }
        public async Task Put_Success_When_Item_Save()
        {
            // Arrange
            var id            = Guid.NewGuid();
            var unitUnderTest = CreateGarmentDeliveryReturnController();

            _MockMediator
            .Setup(s => s.Send(It.IsAny <UpdateGarmentDeliveryReturnCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new GarmentDeliveryReturn(Guid.NewGuid(), null, "RONo", null, 0, null, 0, null, DateTimeOffset.Now, null, new UnitDepartmentId(1), null, null, new StorageId(1), null, null, false));

            _mockGarmentDeliveryReturnItemRepository
            .Setup(s => s.Find(It.IsAny <Expression <Func <GarmentDeliveryReturnItemReadModel, bool> > >()))
            .Returns(new List <GarmentDeliveryReturnItem>()
            {
                new GarmentDeliveryReturnItem(id, id, 0, 0, null, new ProductId(1), null, null, null, "RONo", 0, new UomId(1), null)
            });

            UpdateGarmentDeliveryReturnCommand command = new UpdateGarmentDeliveryReturnCommand();

            command.Items = new List <GarmentDeliveryReturnItemValueObject>()
            {
                new GarmentDeliveryReturnItemValueObject()
                {
                    IsSave  = true,
                    Product = new Product()
                    {
                        Name = "NOFABRIC"
                    }
                }
            };

            // Act
            var result = await unitUnderTest.Put(id.ToString(), command);

            // Assert
            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(result));
        }
Ejemplo n.º 4
0
        public void Place_NotHaveError()
        {
            // Arrange
            Guid id            = Guid.NewGuid();
            var  unitUnderTest = new UpdateGarmentDeliveryReturnCommand()
            {
                Article     = "Article",
                DRNo        = "DRNo",
                IsUsed      = true,
                PreparingId = id.ToString(),
                ReturnDate  = DateTimeOffset.Now,
                ReturnType  = "ReturnType",
                RONo        = "RONo",
                Storage     = new Storage()
                {
                    Id   = 1,
                    Code = "Code",
                    Name = "Name"
                },
                UENId    = 1,
                UnitDOId = 1,
                UnitDONo = "UnitDONo",
                Unit     = new UnitDepartment()
                {
                    Id   = 1,
                    Code = "Code",
                    Name = "Name"
                },
                Items = new List <GarmentDeliveryReturnItemValueObject>()
                {
                    new GarmentDeliveryReturnItemValueObject(id, id, 1, 1, id.ToString(), new Product(), "DesignColor", "roNo", 1, new Uom(), id, 1, 1, true),
                    new GarmentDeliveryReturnItemValueObject()
                    {
                        IsSave          = true,
                        DesignColor     = "DesignColor",
                        DRId            = id,
                        PreparingItemId = id.ToString(),
                        Product         = new Product()
                        {
                            Id   = 1,
                            Code = "Code",
                            Name = "FABRIC"
                        },
                        Quantity        = 1,
                        QuantityUENItem = 1,
                        RemainingQuantityPreparingItem = 2,
                        RONo         = "RONo",
                        UENItemId    = 1,
                        UnitDOItemId = 1,
                        Uom          = new Uom()
                        {
                            Id   = 1,
                            Unit = "Unit"
                        }
                    }
                }
            };

            // Action
            var validator = GetValidationRules();
            var result    = validator.TestValidate(unitUnderTest);

            // Assert
            result.ShouldNotHaveError();
        }
        public async Task Handle_when_item_save_is_true()
        {
            // Arrange
            Guid id = Guid.NewGuid();
            UpdateGarmentDeliveryReturnCommandHandler unitUnderTest = CreateUpdateGarmentDeliveryReturnCommandHandler();
            CancellationToken cancellationToken = CancellationToken.None;

            var garmentDeliveryReturn = new GarmentDeliveryReturn(id, "drNo", "roNo", "article", 1, "unitDONo", 1, "preparingId", DateTimeOffset.Now, "returnType", new UnitDepartmentId(1), "unitCode", "unitName", new StorageId(1), "storageName", "storageCode", true);

            _mockGarmentDeliveryReturnRepository
            .Setup(s => s.Find(It.IsAny <Expression <Func <GarmentDeliveryReturnReadModel, bool> > >()))
            .Returns(new List <GarmentDeliveryReturn>()
            {
                garmentDeliveryReturn
            });

            _mockGarmentDeliveryReturnItemRepository
            .Setup(s => s.Find(It.IsAny <Expression <Func <GarmentDeliveryReturnItemReadModel, bool> > >()))
            .Returns(new List <GarmentDeliveryReturnItem>()
            {
                new GarmentDeliveryReturnItem(id, id, 1, 1, "preparingItemId", new ProductId(1), "productCode", "FABRIC", "designColor", "roNo", 1, new UomId(1), "uomUnit")
            });

            GarmentPreparingItem garmentDeliveryReturnItem = new GarmentPreparingItem(id, 1, new Domain.GarmentPreparings.ValueObjects.ProductId(1), "productCode", "productName", "designColor", 1, new Domain.GarmentPreparings.ValueObjects.UomId(1), "uomUnit", "fabricType", 1, 1, id, null);

            _mockGarmentPreparingItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentPreparingItemReadModel>()
            {
                garmentDeliveryReturnItem.GetReadModel()
            }.AsQueryable());

            _mockGarmentDeliveryReturnItemRepository
            .Setup(s => s.Update(It.IsAny <GarmentDeliveryReturnItem>()))
            .Returns(Task.FromResult(It.IsAny <GarmentDeliveryReturnItem>()));

            _mockGarmentPreparingItemRepository
            .Setup(s => s.Update(It.IsAny <GarmentPreparingItem>()))
            .Returns(Task.FromResult(It.IsAny <GarmentPreparingItem>()));

            _mockGarmentDeliveryReturnRepository
            .Setup(s => s.Update(It.IsAny <GarmentDeliveryReturn>()))
            .Returns(Task.FromResult(It.IsAny <GarmentDeliveryReturn>()));

            _MockStorage
            .Setup(x => x.Save())
            .Verifiable();

            UpdateGarmentDeliveryReturnCommand request = new UpdateGarmentDeliveryReturnCommand()
            {
                Article     = "Article",
                DRNo        = "DRNo",
                IsUsed      = true,
                PreparingId = id.ToString(),
                ReturnDate  = DateTimeOffset.Now,
                ReturnType  = "ReturnType",
                RONo        = "RONo",
                Storage     = new Storage()
                {
                    Id   = 1,
                    Code = "Code",
                    Name = "Name"
                },
                UENId    = 1,
                UnitDOId = 1,
                UnitDONo = "UnitDONo",
                Unit     = new UnitDepartment()
                {
                    Id   = 1,
                    Code = "Code",
                    Name = "Name"
                },
                Items = new List <GarmentDeliveryReturnItemValueObject>()
                {
                    new GarmentDeliveryReturnItemValueObject()
                    {
                        DesignColor     = "DesignColor",
                        DRId            = id,
                        Id              = id,
                        IsSave          = true,
                        PreparingItemId = id.ToString(),
                        Product         = new Product()
                        {
                            Id   = 1,
                            Code = "Code",
                            Name = "FABRIC"
                        },
                        Quantity        = 1,
                        QuantityUENItem = 1,
                        RemainingQuantityPreparingItem = 1,
                        RONo         = "RONo",
                        UENItemId    = 1,
                        UnitDOItemId = 1,
                        Uom          = new Uom()
                        {
                            Id   = 1,
                            Unit = "Unit"
                        },
                    }
                }
            };
            // Act
            var result = await unitUnderTest.Handle(request, cancellationToken);

            // Assert
            result.Should().NotBeNull();
        }
        public async Task Handle_Throws_ValidationException()
        {
            // Arrange
            Guid id = Guid.NewGuid();
            UpdateGarmentDeliveryReturnCommandHandler unitUnderTest = CreateUpdateGarmentDeliveryReturnCommandHandler();
            CancellationToken cancellationToken = CancellationToken.None;

            _mockGarmentDeliveryReturnRepository
            .Setup(s => s.Find(It.IsAny <Expression <Func <GarmentDeliveryReturnReadModel, bool> > >()))
            .Returns(new List <GarmentDeliveryReturn>()
            {
            });

            UpdateGarmentDeliveryReturnCommand request = new UpdateGarmentDeliveryReturnCommand()
            {
                Article     = "Article",
                DRNo        = "DRNo",
                IsUsed      = true,
                PreparingId = id.ToString(),
                ReturnDate  = DateTimeOffset.Now,
                ReturnType  = "ReturnType",
                RONo        = "RONo",
                Storage     = new Storage()
                {
                    Id   = 1,
                    Code = "Code",
                    Name = "Name"
                },
                UENId    = 1,
                UnitDOId = 1,
                Unit     = new UnitDepartment()
                {
                    Id   = 1,
                    Code = "Code",
                    Name = "Name"
                },
                Items = new List <GarmentDeliveryReturnItemValueObject>()
                {
                    new GarmentDeliveryReturnItemValueObject()
                    {
                        DesignColor     = "DesignColor",
                        DRId            = id,
                        Id              = id,
                        IsSave          = true,
                        PreparingItemId = id.ToString(),
                        Product         = new Product()
                        {
                            Id   = 1,
                            Code = "Code",
                            Name = "Name"
                        },
                        Quantity        = 1,
                        QuantityUENItem = 1,
                        RemainingQuantityPreparingItem = 1,
                        RONo         = "RONo",
                        UENItemId    = 1,
                        UnitDOItemId = 1,
                        Uom          = new Uom()
                        {
                            Id   = 1,
                            Unit = "Unit"
                        }
                    }
                }
            };
            // Act
            await Assert.ThrowsAsync <FluentValidation.ValidationException>(() => unitUnderTest.Handle(request, cancellationToken));
        }