コード例 #1
0
        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
            });
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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());
        }