private void MapViewModelToModel(SupplierCreateOrUpdateRequestViewModel viewModel, Supplier model)
 {
     model.CompanyId = viewModel.CompanyId;
     model.Name      = viewModel.Name;
     //model.Kmkr = viewModel.Kmkr; // TODO
     model.CompanyRegNumber = viewModel.RegistrationNumber;
     model.Phone            = viewModel.Phone;
     model.Email            = viewModel.Email;
     //model.AaInBank = viewModel.AaInBank; // TODO
     model.BankIban     = viewModel.Iban;
     model.BankSwift    = viewModel.BicSwift;
     model.DeadlineDays = viewModel.PaymentPeriodInDays;
     model.Comment      = viewModel.Comment;
 }
        public async Task <ServiceResult <int> > Create(SupplierCreateOrUpdateRequestViewModel viewModel)
        {
            var model = new Supplier();

            MapViewModelToModel(viewModel, model);

            var validator        = new SupplierCreateOrUpdateRequestViewModelValidator();
            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, SupplierCreateOrUpdateRequestViewModel 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 SupplierCreateOrUpdateRequestViewModelValidator();
            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));
        }
Beispiel #4
0
 public async Task <IActionResult> Update([FromRoute] int id, [FromBody] SupplierCreateOrUpdateRequestViewModel viewModel)
 => await HandleResultAsync(() => _service.Update(id, viewModel));