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); }
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); }
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); }
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)); }
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); }