public void Validate_Data_Details_CostCalculation_Empty()
        {
            GarmentPOMasterDistributionViewModel viewModel = new GarmentPOMasterDistributionViewModel
            {
                Supplier = new SupplierViewModel {
                    Id = 1
                },
                DOId  = 1,
                DONo  = "DONo",
                Items = new List <GarmentPOMasterDistributionItemViewModel>
                {
                    new GarmentPOMasterDistributionItemViewModel
                    {
                        Details = new List <GarmentPOMasterDistributionDetailViewModel>
                        {
                            new GarmentPOMasterDistributionDetailViewModel
                            {
                                CostCalculationId = 0,
                                RONo = null
                            }
                        }
                    }
                }
            };

            Assert.True(viewModel.Validate(GetValidationContext(viewModel)).Count() > 0);
        }
コード例 #2
0
        public async Task <IActionResult> Post([FromBody] GarmentPOMasterDistributionViewModel viewModel)
        {
            try
            {
                identityService.Username       = User.Claims.Single(p => p.Type.Equals("username")).Value;
                identityService.TimezoneOffset = int.Parse(Request.Headers["x-timezone-offset"].First());

                IValidateService validateService = (IValidateService)serviceProvider.GetService(typeof(IValidateService));

                validateService.Validate(viewModel);

                var model = mapper.Map <GarmentPOMasterDistribution>(viewModel);

                await facade.Create(model);

                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE)
                    .Ok();
                return(Created(string.Concat(Request.Path, "/", 0), Result));
            }
            catch (ServiceValidationExeption e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE)
                    .Fail(e);
                return(BadRequest(Result));
            }
            catch (Exception e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result));
            }
        }
        public void Validate_Data_Items_TotalQuantity_Too_Much()
        {
            GarmentPOMasterDistributionViewModel viewModel = new GarmentPOMasterDistributionViewModel
            {
                Supplier = new SupplierViewModel {
                    Id = 1
                },
                DOId  = 1,
                DONo  = "DONo",
                Items = new List <GarmentPOMasterDistributionItemViewModel>
                {
                    new GarmentPOMasterDistributionItemViewModel
                    {
                        Details = new List <GarmentPOMasterDistributionDetailViewModel>
                        {
                            new GarmentPOMasterDistributionDetailViewModel
                            {
                                CostCalculationId = 1,
                                RONo           = "RONo",
                                POSerialNumber = "POSerialNumber",
                                QuantityCC     = 2,
                                Conversion     = 2,
                                Quantity       = 4
                            }
                        },
                        DOQuantity = 2
                    }
                }
            };

            Assert.True(viewModel.Validate(GetValidationContext(viewModel)).Count() > 0);
        }
        public void Validate_Data_Details_QuantityCC_Used_All()
        {
            var othersQuantity = new KeyValuePair <string, decimal>("POSerialNumber", 2);

            GarmentPOMasterDistributionViewModel viewModel = new GarmentPOMasterDistributionViewModel
            {
                Supplier = new SupplierViewModel {
                    Id = 1
                },
                DOId  = 1,
                DONo  = "DONo",
                Items = new List <GarmentPOMasterDistributionItemViewModel>
                {
                    new GarmentPOMasterDistributionItemViewModel
                    {
                        Details = new List <GarmentPOMasterDistributionDetailViewModel>
                        {
                            new GarmentPOMasterDistributionDetailViewModel
                            {
                                CostCalculationId = 1,
                                RONo           = "RONo",
                                POSerialNumber = othersQuantity.Key,
                                QuantityCC     = othersQuantity.Value,
                                Conversion     = 1,
                                Quantity       = 1
                            }
                        }
                    }
                }
            };

            Assert.True(viewModel.Validate(GetValidationContext(viewModel, new Dictionary <string, decimal> {
                { othersQuantity.Key, othersQuantity.Value }
            })).Count() > 0);
        }
        public void Validate_Data_Details_Conversion_Null()
        {
            GarmentPOMasterDistributionViewModel viewModel = new GarmentPOMasterDistributionViewModel
            {
                Supplier = new SupplierViewModel {
                    Id = 1
                },
                DOId  = 1,
                DONo  = "DONo",
                Items = new List <GarmentPOMasterDistributionItemViewModel>
                {
                    new GarmentPOMasterDistributionItemViewModel
                    {
                        Details = new List <GarmentPOMasterDistributionDetailViewModel>
                        {
                            new GarmentPOMasterDistributionDetailViewModel
                            {
                                CostCalculationId = 1,
                                RONo           = "RONo",
                                POSerialNumber = "POSerialNumber",
                                Conversion     = 0
                            }
                        }
                    }
                }
            };

            Assert.True(viewModel.Validate(GetValidationContext(viewModel)).Count() > 0);
        }
コード例 #6
0
        public async Task Should_Success_Get_OthersQuantity()
        {
            var dbContext = GetDbContext(GetCurrentMethod());
            var facade    = new GarmentPOMasterDistributionFacade(GetMockServiceProvider().Object, dbContext);
            var data      = await dataUtil(facade, dbContext).GetTestData();

            var viewModel = new GarmentPOMasterDistributionViewModel {
                Id = data.Id, Items = new List <GarmentPOMasterDistributionItemViewModel>()
            };

            foreach (var i in data.Items)
            {
                var viewModelItem = new GarmentPOMasterDistributionItemViewModel {
                    Details = new List <GarmentPOMasterDistributionDetailViewModel>()
                };
                foreach (var d in i.Details)
                {
                    viewModelItem.Details.Add(new GarmentPOMasterDistributionDetailViewModel
                    {
                        POSerialNumber = d.POSerialNumber,
                        Quantity       = d.Quantity
                    });
                }
                viewModel.Items.Add(viewModelItem);
            }

            var Response = facade.GetOthersQuantity(viewModel);

            Assert.NotNull(Response);
        }
        public void Validate_Data_Supplier_Null()
        {
            GarmentPOMasterDistributionViewModel viewModel = new GarmentPOMasterDistributionViewModel
            {
                Supplier = null
            };

            Assert.True(viewModel.Validate(null).Count() > 0);
        }
コード例 #8
0
        private ServiceValidationExeption GetServiceValidationExeption(GarmentPOMasterDistributionViewModel viewModel)
        {
            var serviceProvider = GetMockServiceProvider();

            ValidationContext validationContext = new ValidationContext(viewModel, serviceProvider.Object, null);

            List <ValidationResult> validationResults = new List <ValidationResult>();

            return(new ServiceValidationExeption(validationContext, validationResults));
        }
コード例 #9
0
        public Dictionary <string, decimal> GetOthersQuantity(GarmentPOMasterDistributionViewModel viewModel)
        {
            var poSerialNumbers = viewModel.Items.SelectMany(i => i.Details.Where(w => !string.IsNullOrWhiteSpace(w.POSerialNumber)).Select(d => d.POSerialNumber)).ToHashSet();
            var id         = viewModel.Id;
            var quantities = from p in dbSet
                             join i in dbContext.GarmentPOMasterDistributionItems on p.Id equals i.POMasterDistributionId
                             join d in dbContext.GarmentPOMasterDistributionDetails on i.Id equals d.POMasterDistributionItemId
                             where p.Id != id && poSerialNumbers.Contains(d.POSerialNumber)
                             select new { d.POSerialNumber, d.Quantity };

            return(quantities.ToList().GroupBy(g => g.POSerialNumber).ToDictionary(k => k.Key, k => k.Sum(s => s.Quantity)));
        }
        public void Validate_Data_DO_Invalid()
        {
            GarmentPOMasterDistributionViewModel viewModel = new GarmentPOMasterDistributionViewModel
            {
                Supplier = new SupplierViewModel {
                    Id = 1
                },
                DOId = 0,
                DONo = null
            };

            Assert.True(viewModel.Validate(null).Count() > 0);
        }
        public void Validate_Data_Items_Null()
        {
            GarmentPOMasterDistributionViewModel viewModel = new GarmentPOMasterDistributionViewModel
            {
                Supplier = new SupplierViewModel {
                    Id = 1
                },
                DOId  = 1,
                DONo  = "DONo",
                Items = null
            };

            Assert.True(viewModel.Validate(null).Count() > 0);
        }
        ValidationContext GetValidationContext(GarmentPOMasterDistributionViewModel viewModel, Dictionary <string, decimal> othersQuantity = null)
        {
            Mock <IGarmentPOMasterDistributionFacade> facade = new Mock <IGarmentPOMasterDistributionFacade>();

            facade.Setup(s => s.GetOthersQuantity(It.IsAny <GarmentPOMasterDistributionViewModel>()))
            .Returns(othersQuantity ?? new Dictionary <string, decimal>());

            Mock <IServiceProvider> serviceProvider = new Mock <IServiceProvider>();

            serviceProvider.Setup(s => s.GetService(typeof(IGarmentPOMasterDistributionFacade)))
            .Returns(facade.Object);

            ValidationContext validationContext = new ValidationContext(viewModel, serviceProvider.Object, null);

            return(validationContext);
        }
        public void Validate_Data_Details_Empty()
        {
            GarmentPOMasterDistributionViewModel viewModel = new GarmentPOMasterDistributionViewModel
            {
                Supplier = new SupplierViewModel {
                    Id = 1
                },
                DOId  = 1,
                DONo  = "DONo",
                Items = new List <GarmentPOMasterDistributionItemViewModel>
                {
                    new GarmentPOMasterDistributionItemViewModel
                    {
                        Details = null
                    }
                }
            };

            Assert.True(viewModel.Validate(null).Count() > 0);
        }