public static void LoadPlugins(string path) { var files = Directory.GetFiles(path); //todo: Settings aus den wirklich vorhandenen Bildern erstellen PictureSetupList = ServiceRegistration.Get<ISettingsManager>().Load<PictureSettings>().PictureSetupList ?? new List<PictureInfos>(); foreach (var a in from file in files let fileInfo = new FileInfo(file) where fileInfo.Extension.Equals(".dll") select GetModul(file, typeof(IPlugin.IPlugin)) into dictionary from a in dictionary select a) { var plugin = a.Value as IPlugin.IPlugin; if (plugin == null) continue; var pictureInfos = new PictureInfos { PluginTitel = plugin.Name, Date = DateTime.Today.ToShortDateString(), Titel = plugin.Titel, Category = plugin.Category, Description = plugin.Description, ImageOnline = plugin.Image, ImageOffline = GetOfflinePath(plugin.Name, DateTime.Today.ToShortDateString(), plugin.Image), Photographer = plugin.Photographer }; // is it realy a new Picture if (!IsNewImage(pictureInfos)) continue; if (!IsNewTitel(pictureInfos)) continue; if (!IsNewDescription(pictureInfos)) continue; PictureSetupList.Add(pictureInfos); SaveImage(plugin.Image, pictureInfos.ImageOffline); } ServiceRegistration.Get<ISettingsManager>().Save(new PictureSettings(PictureSetupList)); }
private static void FillDailyImages(PictureInfos pi) { var item = new ListItem(); item.AdditionalProperties[IMAGE_PATH] = pi.ImageOffline; item.SetLabel("Path", pi.ImageOffline); item.SetLabel("Titel", pi.Titel); item.SetLabel("Photographer", pi.Photographer); item.SetLabel("Category", pi.Category); item.SetLabel("Date", pi.Date); item.SetLabel("Description", pi.Description); item.Selected = true; DailyImages.Add(item); }
private static bool IsNewTitel(PictureInfos pi) { return PictureSetupList.All(piOld => piOld.Titel != pi.Titel); }
private static bool IsNewImage(PictureInfos pi) { return PictureSetupList.All(piOld => piOld.ImageOffline != pi.ImageOffline); }
private static bool IsNewDescription(PictureInfos pi) { return PictureSetupList.All(piOld => piOld.Description != pi.Description); }