public virtual async Task <Folder> Create(Folder folder) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { if (folder.Title == "root") { throw new Exception("Fig tebe, a ne root folder"); } Folder parentFolder = await context.Folders .FirstOrDefaultAsync(x => x.Id == folder.ParentFolder.Id); if (parentFolder != null) { folder.ParentFolder = parentFolder; } EntityEntry <Folder> createdResult = await context.Folders.AddAsync(folder); await context.SaveChangesAsync(); return(createdResult.Entity); } catch (Exception ex) { logger.Error(ex, "Ошибка добавления"); return(null); } } }
public virtual async Task <MemeTagNode> Update(Guid guid, MemeTagNode entity) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { var original = await context.MemeTags.FirstOrDefaultAsync(e => e.Id == guid); foreach (PropertyInfo propertyInfo in original.GetType().GetProperties()) { if (propertyInfo.GetValue(entity, null) == null) { propertyInfo.SetValue(entity, propertyInfo.GetValue(original, null), null); } } context.Entry(original).CurrentValues.SetValues(entity); await context.SaveChangesAsync(); return(entity); } catch (Exception ex) { logger.Error(ex, "Ошибка обновления"); return(null); } } }
private void RemoveAllData(Folder folder, MemeFolderDbContext context) { foreach (var item in folder.Folders) { RemoveAllData(item, context); } foreach (var meme in folder.Memes) { var memeEntity = context.Memes.FirstOrDefault(x => x.Id == meme.Id); if (memeEntity != null) { context.Memes.Remove(memeEntity); } } folder.Memes.Clear(); context.SaveChanges(); foreach (var folder1 in folder.Folders) { var folderEntity = context.Folders.FirstOrDefault(x => x.Id == folder1.Id); if (folderEntity != null) { context.Folders.Remove(folderEntity); } } folder.Folders.Clear(); context.SaveChanges(); }
public virtual async Task <T> Update(Guid guid, T entity) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { var original = await context.Set <T>().FirstOrDefaultAsync(e => e.Id == guid); foreach (PropertyInfo propertyInfo in original.GetType().GetProperties()) { if (propertyInfo.GetValue(entity, null) == null) { propertyInfo.SetValue(entity, propertyInfo.GetValue(original, null), null); } } context.Entry(original).CurrentValues.SetValues(entity); await context.SaveChangesAsync(); //entity.Id = guid; //T ent = context.Entry(entity); //ent.State = EntityState.Modified; //context.Entry(entity).State = EntityState.Modified; //context.Set<T>().Update(entity); //await context.SaveChangesAsync(); return(entity); } catch (Exception ex) { return(null); } } }
public virtual async Task <bool> Delete(Guid guid) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { var entities = await GetAll(); var entity = entities.ToList().FirstOrDefault(x => x.Id == guid); if (entity != null) { RemoveAllData(entity, context); context.Folders.Remove(entity); await context.SaveChangesAsync(); return(true); } else { return(false); } } catch (Exception ex) { logger.Error(ex, "Ошибка удаления"); return(false); } } }
public virtual async Task <MemeTag> Get(Guid guid) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { MemeTag entity = await context.MemeTags.FirstOrDefaultAsync(e => e.Id == guid); return(entity); } }
public virtual async Task <IEnumerable <Meme> > GetAll() { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { IEnumerable <Meme> entities = await context.Memes.ToListAsync(); return(entities); } }
public virtual async Task <T> Create(T entity) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { EntityEntry <T> createdResult = await context.Set <T>().AddAsync(entity); await context.SaveChangesAsync(); return(createdResult.Entity); } }
public virtual async Task <MemeTagNode> Get(Guid guid) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { MemeTagNode entity = await context.MemeTagNodes .Include(mtn => mtn.Meme) .Include(mtn => mtn.MemeTag) .FirstOrDefaultAsync(e => e.Id == guid); return(entity); } }
public virtual async Task <bool> Delete(Guid guid) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { MemeTagNode entity = await context.MemeTagNodes.FirstOrDefaultAsync(e => e.Id == guid); context.MemeTagNodes.Remove(entity); await context.SaveChangesAsync(); return(true); } }
public virtual async Task <Folder> Get(Guid guid) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { Folder entity = await Task.FromResult(context.Folders .Include(f => f.Memes) .Include(f => f.Folders) .ThenInclude(f => f.Folders) .FirstOrDefault(e => e.Id == guid)); return(entity); } }
public virtual async Task <IEnumerable <MemeTag> > GetAll() { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { IEnumerable <MemeTag> entities = await Task.FromResult(context.MemeTags .ToList()); return(entities); } catch (Exception ex) { logger.Error(ex, "Ошибка получения"); return(null); } } }
public virtual async Task <MemeTag> Create(MemeTag meme) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { EntityEntry <MemeTag> createdResult = await context.MemeTags.AddAsync(meme); await context.SaveChangesAsync(); return(createdResult.Entity); } catch (Exception ex) { logger.Error(ex, "Ошибка создания"); return(null); } } }
public async Task <Folder> CreateRootFolder(Folder folder) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { EntityEntry <Folder> createdResult = await context.Folders.AddAsync(folder); context.SaveChanges(); return(createdResult.Entity); } catch (Exception ex) { logger.Error(ex, "Ошибка созданиея"); return(null); } } }
public virtual async Task <MemeTagNode> Create(MemeTagNode memeTagNode) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { Meme meme = await context.Memes.FirstOrDefaultAsync(m => m.Id == memeTagNode.Meme.Id); if (meme != null) { memeTagNode.Meme = meme; } else { throw new ArgumentNullException("Meme can not be null"); } MemeTag memeTag = await context.MemeTags.FirstOrDefaultAsync(mt => mt.Id == memeTagNode.MemeTag.Id); if (memeTag != null) { memeTagNode.MemeTag = memeTag; } else { throw new ArgumentNullException("MemeTag can not be null"); } EntityEntry <MemeTagNode> createdResult = await context.MemeTagNodes.AddAsync(memeTagNode); await context.SaveChangesAsync(); return(createdResult.Entity); } catch (Exception ex) { logger.Error(ex, "Ошибка создания"); return(null); } } }
public async Task <ObservableCollection <Folder> > GetFoldersByTitle(string Title) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { IEnumerable <Folder> entities = await Task.FromResult(context.Folders .Include(x => x.Memes) .ThenInclude(m => m.Tags) .ThenInclude(m => m.MemeTag) .ToList() .Where(x => x.Title == Title)); return(new ObservableCollection <Folder>(entities)); } catch (Exception ex) { logger.Error(ex, "Ошибка получения"); return(null); } } }
public virtual async Task <Meme> Create(Meme meme) { using (MemeFolderDbContext context = _contextFactory.CreateDbContext(null)) { try { if (string.IsNullOrEmpty(meme.ImagePath)) { throw new Exception("No image path"); } if (string.IsNullOrEmpty(meme.Title)) { meme.Title = Path.GetFileNameWithoutExtension(meme.ImagePath); } //if (meme.ImageData == null) // meme.ImageData = MemeExtentions.ConvertImageToByteArray(meme.ImagePath); Folder parentFolderEntity = await context.Folders.FirstOrDefaultAsync(x => x.Id == meme.Folder.Id); if (parentFolderEntity != null) { meme.Folder = parentFolderEntity; } EntityEntry <Meme> createdResult = await context.Memes.AddAsync(meme); await context.SaveChangesAsync(); return(createdResult.Entity); } catch (Exception ex) { logger.Error(ex, "Ошибка создания"); return(null); } } }