public async Task <IActionResult> Put(int id, [FromBody] GarmentInternalPurchaseOrderViewModel ViewModel) { try { identityService.Username = User.Claims.Single(p => p.Type.Equals("username")).Value; IValidateService validateService = (IValidateService)serviceProvider.GetService(typeof(IValidateService)); validateService.Validate(ViewModel); var model = mapper.Map <GarmentInternalPurchaseOrder>(ViewModel); await facade.Split(id, model, identityService.Username); return(NoContent()); } 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 async void Should_Success_Validate_Data() { var viewModelNullItems = new GarmentInternalPurchaseOrderViewModel { Items = null }; Assert.True(viewModelNullItems.Validate(null).Count() > 0); var viewModelZeroQuantity = new GarmentInternalPurchaseOrderViewModel { Items = new List <GarmentInternalPurchaseOrderItemViewModel> { new GarmentInternalPurchaseOrderItemViewModel { Quantity = 0 } } }; Assert.True(viewModelZeroQuantity.Validate(null).Count() > 0); var facade = new GarmentInternalPurchaseOrderFacade(_dbContext(GetCurrentMethod())); var listData = await dataUtil(facade, GetCurrentMethod()).GetTestData(); var data = listData.First(); var item = data.Items.First(); Mock <IServiceProvider> serviceProvider = new Mock <IServiceProvider>(); serviceProvider. Setup(x => x.GetService(typeof(PurchasingDbContext))) .Returns(_dbContext(GetCurrentMethod())); var viewModelDuplicate = new GarmentInternalPurchaseOrderViewModel { Id = data.Id, Items = new List <GarmentInternalPurchaseOrderItemViewModel> { new GarmentInternalPurchaseOrderItemViewModel { Id = item.Id, Quantity = item.Quantity } } }; ValidationContext validationDuplicateContext = new ValidationContext(viewModelDuplicate, serviceProvider.Object, null); Assert.True(viewModelDuplicate.Validate(validationDuplicateContext).Count() > 0); var viewModelNotFoundDuplicate = new GarmentInternalPurchaseOrderViewModel { Id = 1, Items = new List <GarmentInternalPurchaseOrderItemViewModel> { new GarmentInternalPurchaseOrderItemViewModel { Id = 0, Quantity = 1 } } }; ValidationContext validationNotFoundDuplicateContext = new ValidationContext(viewModelNotFoundDuplicate, serviceProvider.Object, null); Assert.True(viewModelNotFoundDuplicate.Validate(validationNotFoundDuplicateContext).Count() > 0); }