private static void MapViewModelToModel(CompanyCreateOrUpdateRequestViewModel viewModel, Company company) { company.Name = viewModel.CompanyName; company.RegNo = viewModel.RegNumber; company.ContactPerson = viewModel.ContactPerson; company.ContactEmail = viewModel.ContactEmail; company.ContactPhone = viewModel.ContactPhone; company.BusinessArea = viewModel.BusinessArea; //company.Address = viewModel.Address; // TODO company.City = viewModel.City; company.Status = viewModel.State; // TODO company.IsActive = viewModel.IsActive; }
public void with_no_properties__then_properties_should_be_updated() { // Arrange var updatedModel = new CompanyCreateOrUpdateRequestViewModel(); // Act TestServiceResult <bool> result; using (var client = ApiServerFixture.Current.Server.CreateClient()) result = client.HttpPutJson <TestServiceResult <bool> >($"{Endpoint}/{_modelId}", updatedModel, expectSuccess: false).Result; // Assert Assert.False(result.Payload); Assert.False(result.IsSuccessful); var errors = result.TestValidation.Errors; Assert.Equal(2, errors.Count); Assert.NotNull(errors.SingleOrDefault(x => x.ErrorMessage == "Name is required")); Assert.NotNull(errors.SingleOrDefault(x => x.ErrorMessage == "Status is required")); }
public void with_no_properties__then_validations_errors_occur() { // Arrange var viewModel = new CompanyCreateOrUpdateRequestViewModel(); // Act TestServiceResult <int> result; using (var client = ApiServerFixture.Current.Server.CreateClient()) { result = client.HttpPostJson <TestServiceResult <int> >(Endpoint, viewModel, expectSuccess: false).Result; } // Assert ApiServerFixture.Current.DoDatabaseOperation(context => { var address = context.Companies.Find(result.Payload); Assert.Null(address); Assert.False(result.IsSuccessful); var errors = result.TestValidation.Errors; Assert.Equal(2, errors.Count); }); }
public async Task <ServiceResult <int> > Create(CompanyCreateOrUpdateRequestViewModel viewModel) { var model = new Company(); MapViewModelToModel(viewModel, model); var validator = new CompanyCreateOrUpdateRequestViewModelValidator(); var validationResult = await validator.ValidateAsync(model); if (!validationResult.IsValid) { return(ServiceResultFactory.Fail <int>(validationResult)); } await _repository.AddAsync(model); var changes = await _repository.SaveChangesAsync(); if (changes == 0) { return(ServiceResultFactory.Fail <int>("Insert fails")); } return(ServiceResultFactory.Success(model.Id)); }
public async Task <ServiceResult <bool> > Update(int id, CompanyCreateOrUpdateRequestViewModel viewModel) { if (id <= 0) { throw new ArgumentException("Argument should be greater than 0", nameof(id)); } var model = await _repository.GetSingleAsync(id); MapViewModelToModel(viewModel, model); var validator = new CompanyCreateOrUpdateRequestViewModelValidator(); var validationResult = await validator.ValidateAsync(model); if (!validationResult.IsValid) { return(ServiceResultFactory.Fail <bool>(validationResult)); } _repository.Update(model); var changes = await _repository.SaveChangesAsync(); return(ServiceResultFactory.Success(changes > 0)); }
public async Task <IActionResult> Update([FromRoute] int id, [FromBody] CompanyCreateOrUpdateRequestViewModel viewModel) => await HandleResultAsync(() => _service.Update(id, viewModel));
public async Task <IActionResult> Create([FromBody] CompanyCreateOrUpdateRequestViewModel viewModel) => await HandleResultAsync(() => _service.Create(viewModel));