public void Update(Book book) { var validator = new UpdateBookValidation(); if (!validator.Validate(book)) { throw new Exception("Invalid."); } var builder = Builders <Book> .Update; var updateDefinition = builder .Set(b => b.Author, book.Author) .Set(b => b.Title, book.Title); Collection.FindOneAndUpdate <Book>(x => x.Id == book.Id, updateDefinition, new FindOneAndUpdateOptions <Book, Book>() { IsUpsert = false }); }
public Task <IResult <Book> > UpdateAsync(Book book) { var bookValidationResult = new UpdateBookValidation().Validate(book); if (!bookValidationResult.IsValid) { return(new ErrorResult <Book>(bookValidationResult.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty).ToTask()); } if (_bookRepository.GetById(book.Id) == null) { throw new ExceptionHandler(HttpStatusCode.NotFound, $"Book id {book.Id} not found."); } book = _bookRepository.Update(book); if (!_unitOfWork.Commit()) { throw new ExceptionHandler(HttpStatusCode.BadRequest, "A problem occurred during saving the data."); } return(new SuccessResult <Book>(book).ToTask()); }
public Task <IResult <Customer> > UpdateAsync(Customer customer) { var customerValidationResult = new UpdateBookValidation().Validate(customer); if (!customerValidationResult.IsValid) { return(new ErrorResult <Customer>(customerValidationResult.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty).ToTask()); } if (_customerRepository.GetById(customer.Id) == null) { throw new ExceptionHandler(HttpStatusCode.NotFound, $"Customer id {customer.Id} not found."); } customer = _customerRepository.Update(customer); if (!_unitOfWork.Commit()) { throw new ExceptionHandler(HttpStatusCode.BadRequest, "A problem occurred during saving the data."); } return(new SuccessResult <Customer>(customer).ToTask()); }