public Task <int> Create(FormDto form) { if (_productSKURepository.ReadAll().Any(entity => entity.Name == form.Name)) { var errorResult = new List <ValidationResult>() { new ValidationResult("Nama tidak boleh duplikat", new List <string> { "Name" }) }; var validationContext = new ValidationContext(form, _serviceProvider, null); throw new ServiceValidationException(validationContext, errorResult); } if (_productSKURepository.ReadAll().Any(entity => entity.Code == form.Code)) { var errorResult = new List <ValidationResult>() { new ValidationResult("Kode tidak boleh duplikat", new List <string> { "Kode" }) }; var validationContext = new ValidationContext(form, _serviceProvider, null); throw new ServiceValidationException(validationContext, errorResult); } var model = new ProductSKUModel( form.Code, form.Name, form.UOMId.GetValueOrDefault(), form.CategoryId.GetValueOrDefault(), form.Description ); return(_productSKURepository.InsertAsync(model)); }
public async Task <int> Update(int id, FormDto form) { var model = await _productSKURepository.ReadByIdAsync(id); if (_productSKURepository.ReadAll().Any(entity => entity.Name == form.Name) && form.Name != model.Name) { var errorResult = new List <ValidationResult>() { new ValidationResult("Nama tidak boleh duplikat", new List <string> { "Name" }) }; var validationContext = new ValidationContext(form, _serviceProvider, null); throw new ServiceValidationException(validationContext, errorResult); } if (_productSKURepository.ReadAll().Any(entity => entity.Code == form.Code) && form.Code != model.Code) { var errorResult = new List <ValidationResult>() { new ValidationResult("Kode tidak boleh duplikat", new List <string> { "Kode" }) }; var validationContext = new ValidationContext(form, _serviceProvider, null); throw new ServiceValidationException(validationContext, errorResult); } model.SetCode(form.Code); model.SetName(form.Name); model.SetUOM(form.UOMId.GetValueOrDefault()); model.SetCategory(form.CategoryId.GetValueOrDefault()); model.SetDescription(form.Description); return(await _productSKURepository.UpdateAsync(id, model)); }