public IActionResult UpdateAlbum([FromBody] Book existingBook)
        {
            BookReadAddResponse response =
                _booksDataControllerUtilities.UpdateExistingBook(existingBook);

            return(Ok(response));
        }
Esempio n. 2
0
        public BookReadAddResponse DeleteBook(string id)
        {
            // set up the successful response
            BookReadAddResponse response = new BookReadAddResponse
            {
                ErrorCode  = (int)BookReadAddResponseCode.Success,
                NewItem    = new Book(),
                FailReason = "",
                UserId     = ""
            };

            // Find the item
            GeographyProvider geographyProvider;
            BooksReadProvider booksReadProvider;

            _books = new ObservableCollection <Book>();

            if (GetProviders(out geographyProvider, out booksReadProvider))
            {
                var itemToDelete =
                    _booksReadDatabase.LoadedItems.FirstOrDefault(x => x.Id.ToString() == id);

                if (itemToDelete == null)
                {
                    response.ErrorCode  = (int)BookReadAddResponseCode.UnknownItem;
                    response.FailReason = "Could not find item";
                }
                else
                {
                    _booksReadDatabase.RemoveItemFromDatabase(itemToDelete);
                }
            }

            return(response);
        }
        public IActionResult Delete(string id)
        {
            // set up the successful response
            BookReadAddResponse response =
                _booksDataControllerUtilities.DeleteBook(id);

            return(Ok(response));
        }
Esempio n. 4
0
        /// <summary>
        /// Adds a new user book read.
        /// </summary>
        /// <param name="bookReadAddRequest">The new book read to try to add.</param>
        /// <returns>The action result.</returns>
        public BookReadAddResponse AddNewBookRead(BookReadAddRequest bookReadAddRequest)
        {
            BookReadAddResponse response =
                new BookReadAddResponse
            {
                ErrorCode  = (int)BookReadAddResponseCode.Success,
                FailReason = "",
                UserId     = bookReadAddRequest.UserId
            };

            // First check that the user exists
            User userLogin =
                _userDatabase.LoadedItems.FirstOrDefault(x => x.Id.ToString() == bookReadAddRequest.UserId);

            if (userLogin == null)
            {
                response.ErrorCode  = (int)BookReadAddResponseCode.UnknownUser;
                response.FailReason = "Could not find this user.";
                return(response);
            }

            // Check the book data is valid
            BookRead newBook;

            if (!GetBookRead(bookReadAddRequest, out newBook))
            {
                response.ErrorCode  = (int)BookReadAddResponseCode.InvalidItem;
                response.FailReason = "Invalid book data please try again.";
                return(response);
            }

            // Check if this is duplicate
            GeographyProvider geographyProvider;
            BooksReadProvider booksReadProvider;

            _books = new ObservableCollection <Book>();

            if (GetProviders(out geographyProvider, out booksReadProvider))
            {
                BookRead match = booksReadProvider.BooksRead.FirstOrDefault(
                    x => x.Author == newBook.Author &&
                    x.Title == newBook.Title &&
                    x.DateString == newBook.DateString);

                if (match != null)
                {
                    response.ErrorCode  = (int)BookReadAddResponseCode.Duplicate;
                    response.FailReason = "This book has already been added.";
                    return(response);
                }
            }

            newBook.User = userLogin.Name;
            _booksReadDatabase.AddNewItemToDatabase(newBook);
            response.NewItem = new Book(newBook);

            return(response);
        }
        public IActionResult Post([FromBody] BookReadAddRequest bookReadAddRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            BookReadAddResponse response =
                _booksDataControllerUtilities.AddNewBookRead(bookReadAddRequest);

            return(Ok(response));
        }
Esempio n. 6
0
        public BookReadAddResponse UpdateExistingBook(Book existingBook)
        {
            // set up the successful response
            BookReadAddResponse response = new BookReadAddResponse
            {
                ErrorCode  = (int)UserResponseCode.Success,
                NewItem    = new Book(existingBook),
                FailReason = "",
                UserId     = ""
            };

            // First check that the user exists
            User userLogin =
                _userDatabase.LoadedItems.FirstOrDefault(x => x.Id.ToString() == existingBook.User);

            if (userLogin == null)
            {
                response.ErrorCode  = (int)BookReadAddResponseCode.UnknownUser;
                response.FailReason = "Could not find this user.";
                return(response);
            }

            // Check the book data is valid
            BookRead newBook;

            if (!GetBookRead(existingBook, out newBook))
            {
                response.ErrorCode  = (int)BookReadAddResponseCode.InvalidItem;
                response.FailReason = "Invalid book data please try again.";
                return(response);
            }

            // Find the item
            GeographyProvider geographyProvider;
            BooksReadProvider booksReadProvider;

            _books = new ObservableCollection <Book>();

            if (GetProviders(out geographyProvider, out booksReadProvider))
            {
                BookRead itemToUpdate =
                    _booksReadDatabase.LoadedItems.FirstOrDefault(x => x.Id.ToString() == existingBook.Id);

                if (itemToUpdate == null)
                {
                    response.ErrorCode  = (int)BookReadAddResponseCode.UnknownItem;
                    response.FailReason = "Could not find item";
                }
                else
                {
                    itemToUpdate.DateString       = newBook.DateString;
                    itemToUpdate.Date             = newBook.Date;
                    itemToUpdate.Author           = newBook.Author;
                    itemToUpdate.Title            = newBook.Title;
                    itemToUpdate.Pages            = newBook.Pages;
                    itemToUpdate.Note             = newBook.Note;
                    itemToUpdate.Nationality      = newBook.Nationality;
                    itemToUpdate.OriginalLanguage = newBook.OriginalLanguage;
                    itemToUpdate.ImageUrl         = newBook.ImageUrl;
                    itemToUpdate.Tags             = newBook.Tags.ToList();
                    itemToUpdate.Format           = newBook.Format;

                    _booksReadDatabase.UpdateDatabaseItem(itemToUpdate);
                }
            }

            return(response);
        }