// GET: api/StringSearch
        public IQueryable <VCardDTO> GetVCards(string text)
        {
            //Instincia de iyector con la dependencia para imagenes generales
            var images = new URLsImages(new GeneralImages());

            //Obtiene todos los elementos de la tabla VCards que contengan en el titulo el string de busqueda, cada item genera una copia de datos a un nuevo modelo de tipo VCardDTO
            var vcard = (from b in db.VCards
                         where b.Title.Contains(text)
                         select new VCardDTO()
            {
                Id = b.Id,
                Title = b.Title,
                UrlImages = new UrlImages()
                {
                    Horizontal = b.URLImageH, Vertical = b.URLImageV
                }
            }).ToList();

            //Itera los elementos para obtener las url de las imagenes generales
            foreach (VCardDTO item in vcard)
            {
                item.UrlImages = images.GetImages(item.UrlImages.Vertical, item.UrlImages.Horizontal);
            }

            return(vcard.AsQueryable());
        }
        public async Task <IHttpActionResult> GetVCard(int id)
        {
            //Instincia de iyector con la dependencia para imagenes del detalle
            var images = new URLsImages(new DetailImages());

            //Obtiene el elementos de la tabla VCards con el id de busqueda, se genera un copia de datos al modelo VCardDetailDTO
            //Se incluyen la relacion con las tablas Category y RatingCode
            var vCard = await db.VCards.Include(b => b.Category).Include(b => b.RatingCode).Select(b =>
                                                                                                   new VCardDetailDTO()
            {
                Id               = b.Id,
                Title            = b.Title,
                Description      = b.Description,
                DescriptionLarge = b.DescriptionLarge,
                Duration         = b.Duration,
                TitleOriginal    = b.TitleOriginal,
                VotesAverage     = b.VotesAverage,
                Year             = b.Year,
                RatingCode       = b.RatingCode.Name,
                UrlImages        = new UrlImages()
                {
                    Horizontal = b.URLImageH, Vertical = b.URLImageV
                },
                Category  = b.Category.Name,
                Actors    = b.Actors,
                Directors = b.Directors
            }).SingleOrDefaultAsync(b => b.Id == id);

            //Obtiene las urls de la imagenes para detalle
            vCard.UrlImages = images.GetImages(vCard.UrlImages.Vertical, vCard.UrlImages.Horizontal);

            //Formatea la propiedad Duration {0}:{1}:{2} to {0}h {1} min {2}s
            var duration = vCard.Duration.Split(':');

            vCard.Duration = String.Format("{0}h {1} min {2}s", duration[0], duration[1], duration[2]);

            if (vCard == null)
            {
                return(NotFound());
            }

            return(Ok(vCard));
        }