ho una dll externall in cui seguito è definitagestione non trovato oggetto nel repository
namespace MoviesLibrary
{
public class MovieDataSource
{
public MovieDataSource();
public int Create(MovieData movie);
public List<MovieData> GetAllData();
public MovieData GetDataById(int id);
public void Update(MovieData movie);
}
}
io chiamo questa dll da repository per eseguire CRUD nella mia richiesta WebAPI, ora nella mia repostory sto scrivendo metodo GetMovieById in cui sono confuso su cosa restituire se un film non viene trovato nel repository e qual è il modo più appropriato per gestirlo in webapi?
MovieRepository
public Movie GetMovieById(int movieId)
{
MovieData movieData = new MovieDataSource().GetDataById(movieId);
if (movieData != null)
{
return MovieDataToMovieModel(movieData);
}
else
{
??
}
}
MoviesController
/// <summary>
/// Returns a movie
/// </summary>
/// <param name="movie">movieId</param>
/// <returns>Movie</returns>
public Movie Get(int movieId)
{
//try
//{
var movie = repository.GetMovieById(movieId);
if (movie == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return movie;
//}
//catch (Exception e)
//{
// if (e is HttpResponseException)
// throw new HttpResponseException(HttpStatusCode.NotFound);
//}
}
thnx dennis, ma cosa scrivere nella sezione else di quel metodo? Un'ultima cosa che il metodo web api get, non dovrei controllare questo (film == null)? – F11
Dipende dall'implementazione di 'GetDataById'. Non ho idea, come recupera i dati dal negozio. Inoltre, la gerarchia dei livelli sembra superflua, poiché 'MovieDataSource' e' MovieRepository' sembrano avere la stessa funzionalità. – Dennis