Esempio n. 1
0
 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;
 }
Esempio n. 2
0
        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);
            });
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
 public async Task <IActionResult> Update([FromRoute] int id, [FromBody] CompanyCreateOrUpdateRequestViewModel viewModel)
 => await HandleResultAsync(() => _service.Update(id, viewModel));
Esempio n. 7
0
 public async Task <IActionResult> Create([FromBody] CompanyCreateOrUpdateRequestViewModel viewModel)
 => await HandleResultAsync(() => _service.Create(viewModel));