using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Bit.App.Abstractions; using Bit.App.Models.Data; namespace Bit.App.Repositories { public class FolderRepository : Repository, IFolderRepository { public FolderRepository(ISqlService sqlService) : base(sqlService) { } public Task> GetAllByUserIdAsync(string userId) { var folders = Connection.Table().Where(f => f.UserId == userId).Cast(); return Task.FromResult(folders); } public override Task DeleteAsync(string id) { var now = DateTime.UtcNow; DeleteWithSiteUpdateAsync(id, now); return Task.FromResult(0); } public Task DeleteWithSiteUpdateAsync(string id, DateTime revisionDate) { Connection.RunInTransaction(() => { Connection.Execute("UPDATE Site SET FolderId = ?, RevisionDateTime = ? WHERE FolderId = ?", null, revisionDate, id); Connection.Delete(id); }); return Task.FromResult(0); } } }