Пример #1
0
        public IResult <Movie> Update(Movie movie)
        {
            ValidateMovie(movie);

            IResult <Movie> movieToUpdateResult = moviesRepository.GetById(movie.MovieId);

            switch (movieToUpdateResult)
            {
            case Error <Movie> error:
                Exception exception = new IdNotFoundException("Update-method id not found exception.", error.Exception);
                return(new Error <Movie>(exception));

            case OK <Movie> ok:
                try
                {
                    moviesRepository.Update(ok.Result);
                    return(ok);
                }
                catch
                {
                    Exception updateRepoException = new RepositoryUnknownException("Update-method repository exception.");
                    return(new Error <Movie>(updateRepoException));
                }

            default:
                Exception getByIdRepoException = new RepositoryUnknownException("GetById-method repository exception.");
                return(new Error <Movie>(getByIdRepoException));
            }
        }
Пример #2
0
        public IResult <Movie> Delete(string id)
        {
            IResult <Movie> movieToDeleteResult = moviesRepository.GetById(id);

            switch (movieToDeleteResult)
            {
            case Error <Movie> error:
                Exception exception = new IdNotFoundException("Delete-method id not found exception.", error.Exception);
                return(new Error <Movie>(exception));

            case OK <Movie> ok:
                try
                {
                    moviesRepository.Delete(ok.Result);
                    return(ok);
                }
                catch
                {
                    Exception deleteRepoException = new RepositoryUnknownException("Delete-method repository exception.");
                    return(new Error <Movie>(deleteRepoException));
                }

            default:
                Exception getByIdRepoException = new RepositoryUnknownException("GetById-method repository exception.");
                return(new Error <Movie>(getByIdRepoException));
            }
        }
Пример #3
0
        public IResult <Movie> GetById(string id)
        {
            IResult <Movie> result = moviesRepository.GetById(id);

            switch (result)
            {
            // Daca reusesc, returnez ok.
            case OK <Movie> ok:
                return(ok);

            // Daca nu reusesc din cauza bazei de date.
            case Error <Movie> error:
                Exception databaseContextException = new DatabaseContextException("GetById-method repository exception.", error.Exception);
                return(new Error <Movie>(databaseContextException));

            default:
                Exception getByIdRepoException = new RepositoryUnknownException("GetById-method repository exception.");
                return(new Error <Movie>(getByIdRepoException));
            }
        }
Пример #4
0
        public IResult <Movie> Insert(Movie movie)
        {
            // Validez filmul.
            ValidateMovie(movie);

            // Verific daca mai sunt filme cu acelasi id in baza de date.
            IResult <Movie> duplicateMovie = moviesRepository.GetById(movie.MovieId);

            switch (duplicateMovie)
            {
            // Daca am deja filmul in baza de date.
            case OK <Movie> ok:
                Exception duplicateMovieIdException = new DuplicateMovieIdException();
                return(new Error <Movie>(duplicateMovieIdException));

            // Daca nu am filmul in baza de date, incerc sa-l inserez.
            // Daca reusesc sa-l inserez, returnez ok.
            // Daca nu reuseste comanda Insert, returnez o eroare specifica.
            case Error <Movie> error:
                try
                {
                    moviesRepository.Insert(movie);
                    return(new OK <Movie>(movie));
                }
                catch
                {
                    Exception insertRepoException = new RepositoryUnknownException("Insert-method repository exception", error.Exception);
                    return(new Error <Movie>(insertRepoException));
                }

            // Daca nu reuseste comanda de GetById, returnez o eroare specifica.
            default:
                Exception getByIdRepoException = new RepositoryUnknownException("GetById-method repository exception.");
                return(new Error <Movie>(getByIdRepoException));
            }
        }