Esempio n. 1
0
        public static Film Handle(int id, ListFilmByIdDelegate listFilmById, GetDirectorByIdDelegate getDirectorByIdDelegate, GetCastByFilmIdDelegate getCastByFilmIdDelegateQuery)
        {
            var film = listFilmById(id);

            if (film == null)
            {
                return(null);
            }

            var director = getDirectorByIdDelegate(film.DirectorId);

            film.Director = director;

            var cast = getCastByFilmIdDelegateQuery(id);

            film.Cast = cast;

            return(film);
        }
Esempio n. 2
0
        static RouteHandlers()
        {
            CreateFilmHandler = film => CreateFilmRoute.Handle(film, () => ValidUserQuery.Execute());

            DeleteFilmHandler = id => DeleteFilmRoute.Handle(id, () => ValidUserQuery.Execute());

            ListFilmByIdHandler = id => ListFilmByIdRoute.Handle(
                id,
                filmId => ListFilmsByIdQuery.ListFilmsByIdQuery.Execute(id),
                dirId => GetDirectorByIdQuery.Execute(dirId),
                filmId => GetCastByFilmIdQuery.Execute(id)
                );

            ListFilmsHandler = () => ListFilmsRoute.Handle();

            UpdateFilmHandler = (id, film) => UpdateFilmRoute.Handle(
                id,
                film,
                () => ValidUserQuery.Execute(),
                filmId => ListFilmsByIdQuery.ListFilmsByIdQuery.Execute(filmId));
        }
Esempio n. 3
0
        public static void Handle(int id, Film film, ValidUserDelegate validUserQuery, ListFilmByIdDelegate listFilmById)
        {
            if (!validUserQuery())
            {
                throw new InvalidOperationException();
            }

            //Do some special MEGA CORP business validation

            var existingFilm = listFilmById(id);

            existingFilm.Name     = film.Name;
            existingFilm.Budget   = film.Budget;
            existingFilm.Language = film.Language;

            //Write some SQL to store in db
        }