public Result <ItemTag> Update(ItemTag itemTag) { try { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { var existing = model.ItemTags.FirstOrDefault(it => it.Id == itemTag.Id); if (existing == null) { return(Result.Fail <ItemTag>("Item tag " + itemTag.Name + " was not found")); } existing.Name = itemTag.Name; existing.Description = itemTag.Description; model.SaveChanges(); return(Result.Ok(itemTag)); } } catch (Exception ex) { return(Result.Fail <ItemTag>(ex.InnerException?.Message ?? ex.Message)); } }
public Result <MediaContainer> Update(MediaContainer item) { try { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { var existing = model.MediaContainers.SingleOrDefault(i => i.Id == item.Id); if (existing == null) { return(Result.Fail <MediaContainer>("No media container with id " + item.Id.ToString() + " was found.")); } existing.Name = item.Name; existing.GenreId = item.GenreId; existing.IsEnabled = item.IsEnabled; existing.Path = item.Path; existing.UseSubFolders = item.UseSubFolders; existing.SourceId = item.SourceId; existing.MediaTypeId = item.MediaTypeId; model.SaveChanges(); return(Result.Ok(item)); } } catch (Exception ex) { return(Result.Fail <MediaContainer>(ex.InnerException?.Message ?? ex.Message)); } }
public Result SetTagsForImage(int imageId, IEnumerable <int> tags) { try { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { var tagMaps = model.ImageTagMaps.Where(itm => itm.ImageId == imageId); model.ImageTagMaps.RemoveRange(tagMaps); var newTagMaps = tags.Select(tid => new ImageTagMap { ImageId = imageId, ItemTagId = (ItemTagId)tid, }); model.ImageTagMaps.AddRange(newTagMaps); model.SaveChanges(); } return(Result.Ok()); } catch (Exception ex) { return(Result.Fail(ex.InnerException?.Message ?? ex.Message)); } }
public List <ItemTag> Get() { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { return(model.ItemTags.ToList()); } }
public List <ImageTagMap> GetTagMapsForImage(int imageId) { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { return(model.ImageTagMaps.Where(itm => itm.ImageId == imageId).ToList()); } }
public Result <Genre> Get(int id) { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { return(Result.Ok(model.Genres.SingleOrDefault(i => i.Id == id)) .Ensure(i => i != null, "No genre with id " + id.ToString() + " was found.")); } }
public List <string> Get() { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { var localMediaContainers = model.MediaContainers.Where(mc => mc.SourceId == ImageSource.Local && mc.IsEnabled).Select(mc => mc.Id).ToList(); var imageFiles = model.ImageMetaDatas.Where(imd => localMediaContainers.Contains(imd.MediaContainerId)).Select(imd => imd.FullFileName).ToList(); return(imageFiles.Select(i => System.IO.Path.GetDirectoryName(i)).ToList()); } }
public List <ImageMetaData> Get(ImageSource?source, ImageGenre?genre) { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { var allImages = model.ImageMetaDatas.ToList(); return(model.ImageMetaDatas .Where(imd => (!source.HasValue || imd.SourceId == source.Value) && (!genre.HasValue || imd.GenreId == genre.Value)) .ToList()); } }
public List <ImageMetaData> GetImagesWithTag(ItemTagId itemTagId) { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { return((from imd in model.ImageMetaDatas join itm in model.ImageTagMaps on imd.Id equals itm.ImageId where itm.ItemTagId == itemTagId select imd).ToList()); } }
public Result <ItemTag> Get(int tagId) { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { var data = model.ItemTags.Where(it => it.Id == tagId).ToList(); if (data.Any()) { return(Result.Ok(data.First())); } return(Result.Fail <ItemTag>("No tag found with Id of " + tagId.ToString())); } }
public List <ItemTag> GetTagsForImage(int imageId) { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { var tags = model.ImageTagMaps .Where(itm => itm.ImageId == imageId) .Select(itm => itm.ItemTagId) .ToList(); return(model.ItemTags .Where(it => tags.Contains((ItemTagId)it.Id)) .ToList()); } }
public Result <ItemTag> Create(ItemTag itemTag) { try { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { model.ItemTags.Add(itemTag); model.SaveChanges(); return(Result.Ok(itemTag)); } } catch (Exception ex) { return(Result.Fail <ItemTag>(ex.InnerException?.Message ?? ex.Message)); } }
public Result Create(IEnumerable <ImageMetaData> images) { try { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { model.ImageMetaDatas.AddRange(images); model.SaveChanges(); } return(Result.Ok()); } catch (Exception ex) { return(Result.Fail(ex.InnerException?.Message ?? ex.Message)); } }
public Result Delete(ImageTagMap item) { try { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { model.ImageTagMaps.Attach(item); model.ImageTagMaps.Remove(item); model.SaveChanges(); return(Result.Ok()); } } catch (Exception ex) { return(Result.Fail(ex.InnerException?.Message ?? ex.Message)); } }
public Result <Genre> Update(Genre item) { try { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { var existing = model.Genres.SingleOrDefault(i => i.Id == item.Id); if (existing == null) { return(Result.Fail <Genre>("No genre with id " + item.Id.ToString() + " was found.")); } existing.Name = item.Name; model.SaveChanges(); return(Result.Ok(item)); } } catch (Exception ex) { return(Result.Fail <Genre>(ex.InnerException?.Message ?? ex.Message)); } }
public Result Update(IEnumerable <ImageMetaData> images) { try { var sqliteConnection = new SQLiteConnection(_configurationAccessor.GetDatabaseConnectionString()); using (var model = new EntityFramework.Model(sqliteConnection)) { foreach (var img in images) { var existing = model.ImageMetaDatas.Single(imd => imd.Id == img.Id); existing.FullFileName = img.FullFileName; existing.GenreId = img.GenreId; existing.SourceId = img.SourceId; existing.ItemName = img.ItemName; } model.SaveChanges(); } return(Result.Ok()); } catch (Exception ex) { return(Result.Fail(ex.InnerException?.Message ?? ex.Message)); } }