コード例 #1
0
 private void Item_FolderAdded(object sender, EventArgs e)
 {
     using (DataBaseController controller = new DataBaseController(DataBaseFilePath))
     {
         controller.AddFolder(sender as IFolder);
     }
 }
コード例 #2
0
        public AlbumManager(string dbFilePath)
        {
            DataBaseFilePath = dbFilePath;

            using (DataBaseController controller = new DataBaseController(DataBaseFilePath))
            {
                LoadedAlbums = controller.LoadAlbums();
                Albums       = new List <IAlbum>();

                if (LoadedAlbums == null)
                {
                    LoadedAlbums = new List <IAlbum>();
                }
                else
                {
                    // Тут альбомы - это AlbumMapper-ы
                    // Их нужно привести на основе Guid-а к нужному типу
                    foreach (var item in LoadedAlbums)
                    {
                        // В списке альбомов нашли подходящий по GUID-типа (В этом списке в идеале должны храниться все доступные типы альбомов)
                        var ty = AvailableAlbums.First(x => x.AlbumTypeGuid == item.AlbumTypeGuid).GetType();
                        // Создали инстанс этого альбома (ВАЖНО - у альбомов не должно быть конструктора, роль конструктора у FromMapper метода интерфейса IAlbum)
                        var inst = (IAlbum)Activator.CreateInstance(ty);
                        // И теперь взяли пустой инстанс и вызвали "констуктор" на основе маппера
                        Albums.Add(inst.FromMapper(item));
                    }

                    foreach (var item in Albums)
                    {
                        item.FolderAdded     += Item_FolderAdded;
                        item.PriorityChanged += Item_PriorityChanged;
                    }
                }
            }
        }
コード例 #3
0
        public void AddAlbum(IAlbum album)
        {
            Albums.Add(album);
            album.FolderAdded     += Item_FolderAdded;
            album.PriorityChanged += Item_PriorityChanged;

            using (DataBaseController controller = new DataBaseController(DataBaseFilePath))
            {
                controller.AddAlbum(album);
            }
        }