/// <summary>
        ///		Carga las entradas de un nodo
        /// </summary>
        private EntryModelCollection LoadEntries(MLNode rootML)
        {
            EntryModelCollection entries = new EntryModelCollection();

            // Carga las entradas
            foreach (MLNode nodeML in rootML.Nodes)
            {
                if (nodeML.Name == TagConference)
                {
                    EntryModel entry = new EntryModel();

                    // Asigna las propiedades
                    entry.Id          = nodeML.Attributes[TagId].Value;
                    entry.Title       = nodeML.Nodes[TagName].Value;
                    entry.Summary     = nodeML.Nodes[TagDescription].Value;
                    entry.Authors     = nodeML.Nodes[TagAuthors].Value;
                    entry.UrlImage    = nodeML.Nodes[TagThumb].Value;
                    entry.UrlVideo    = nodeML.Nodes[TagVideo].Value;
                    entry.UrlWebSite  = nodeML.Nodes[TagWebSite].Value;
                    entry.UrlSlides   = nodeML.Nodes[TagSlides].Value;
                    entry.PublishedAt = nodeML.Nodes[TagPublishedAt].Value.GetDateTime(DateTime.Now);
                    entry.CreatedAt   = nodeML.Nodes[TagCreatedAt].Value.GetDateTime(DateTime.Now);
                    // Añade la entrada
                    entries.Add(entry);
                }
            }
            // Devuelve la colección
            return(entries);
        }
        /// <summary>
        ///		Carga las entradas de una categoría
        /// </summary>
        internal EntryModelCollection LoadCategoryEntries(string xml)
        {
            EntryModelCollection entries = new EntryModelCollection();
            MLFile fileML = new LibMarkupLanguage.Services.XML.XMLParser().ParseText(xml);

            // Carga el archivo
            if (fileML != null)
            {
                foreach (MLNode rootML in fileML.Nodes)
                {
                    if (rootML.Name == TagRoot)
                    {
                        foreach (MLNode nodeML in rootML.Nodes)
                        {
                            if (nodeML.Name == TagConference)
                            {
                                EntryModel entry = LoadEntry(nodeML);

                                // Añade el artículo a la colección
                                if (!entry.Title.IsEmpty())
                                {
                                    entries.Add(entry);
                                }
                            }
                        }
                    }
                }
            }
            // Devuelve la colección de artículos
            return(entries);
        }
        /// <summary>
        ///		Obtiene las últimas entradas de la web
        /// </summary>
        private EntryModelCollection GetLastEntries(TrackModel track)
        {
            EntryModelCollection entries = new EntryModelCollection();

            // Busca las entradas de todas las categorías
            foreach (CategoryModel category in track.Categories)
            {
                foreach (EntryModel entry in category.Entries)
                {
                    entries.Add(entry);
                }
            }
            // Ordena por fecha de creación descendente
            entries.Sort((first, second) => - 1 * first.CreatedAt.CompareTo(second.CreatedAt));
            // Obtiene sólo las primeras n entradas
            while (entries.Count > EntriesRssNumber)
            {
                entries.RemoveAt(entries.Count - 1);
            }
            // Devuelve la colección de entradas
            return(entries);
        }
Example #4
0
        /// <summary>
        ///		Carga las entradas de un archivo
        /// </summary>
        internal EntryModelCollection Load(string fileName)
        {
            EntryModelCollection entries = new EntryModelCollection();
            MLFile fileML = new LibMarkupLanguage.Services.XML.XMLParser().Load(fileName);

            // Carga las entradas
            if (fileML != null)
            {
                foreach (MLNode rootML in fileML.Nodes)
                {
                    if (rootML.Name == TagRoot)
                    {
                        foreach (MLNode nodeML in rootML.Nodes)
                        {
                            if (nodeML.Name == TagEntry)
                            {
                                EntryModel entry = new EntryModel();

                                // Carga los datos
                                entry.PublishedAt = nodeML.Attributes[TagPublish].Value.GetDateTime(DateTime.Now);
                                entry.Title       = nodeML.Nodes[TagTitle].Value;
                                entry.UrlVideo    = nodeML.Nodes[TagUrl].Value;
                                entry.Summary     = nodeML.Nodes[TagSummary].Value;
                                entry.Authors     = nodeML.Nodes[TagAuthor].Value;
                                // Añade la entrada a la colección
                                if (!string.IsNullOrWhiteSpace(entry.UrlVideo))
                                {
                                    entries.Add(entry);
                                }
                            }
                        }
                    }
                }
            }
            // Devuelve los objetos
            return(entries);
        }