/// <summary> /// Importa un archivo de entradas /// </summary> private void ImportEntries() { string fileName = DevConferencesViewModel.Instance.DialogsController.OpenDialogLoad(null, "Archivos XML (*.xml)|*.xml|Todos los archivos (*.*)|*.*"); // Importa las entradas if (!string.IsNullOrWhiteSpace(fileName) && System.IO.File.Exists(fileName)) { CategoryModel category = (SelectedNode?.Tag as CategoryModel); if (category == null) { DevConferencesViewModel.Instance.ControllerWindow.ShowMessage("Seleccione una categoría"); } else { EntryModelCollection entries = DevConferencesViewModel.Instance.TrackManager.LoadExchangeFileEntries(fileName); // Actualiza el autor con el nombre de la categoría foreach (EntryModel entry in entries) { if (string.IsNullOrWhiteSpace(entry.Authors)) { entry.Authors = category.Title; } } // Elimina las entradas que ya estén en la categoría for (int index = entries.Count - 1; index >= 0; index--) { if (category.Entries.SearchByUrlVideo(entries[index].UrlVideo) != null) { entries.RemoveAt(index); } } // Añade las entradas y graba el proyecto if (entries.Count > 0) { category.Entries.AddRange(entries); UpdateTracks(); } } } }
/// <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); }