public override async Task <CTO <T> > GetFile <T>(ASSET_TYPES assetType, bool encrypted = true, Guid?objectGUID = null) { try { var filesinFolder = await _currentFolder.GetFilesAsync(); var fileName = GetFileName(assetType, objectGUID); var file = filesinFolder.FirstOrDefault(a => a.Name == fileName); if (file == null) { return(new CTO <T>(default(T), $"{assetType} was not found")); } var buffer = await FileIO.ReadBufferAsync(file); if (encrypted) { var decrypted = await decryptData(buffer.ToArray()); return(new CTO <T>(GetObjectFromJSONString <T>(decrypted))); } return(new CTO <T>(GetObjectFromBytes <T>(buffer.ToArray()))); } catch (Exception ex) { return(new CTO <T>(default(T), ex)); } }
public override async Task <CTO <bool> > WriteFile <T>(ASSET_TYPES assetType, T obj, bool encryptFile = true, Guid?objectGUID = null) { try { var str = GetJSONStringFromT(obj); byte[] data; if (encryptFile) { data = await encryptData(str); } else { data = GetBytesFromT(obj); } using ( var stream = await _currentFolder.OpenStreamForWriteAsync(GetFileName(assetType, objectGUID), CreationCollisionOption.ReplaceExisting)) { stream.Write(data, 0, data.Length); } return(new CTO <bool>(true)); } catch (Exception ex) { return(new CTO <bool>(false, ex)); } }
public void AddFile(string content, ASSET_TYPES assetType) { using (var fileContext = new FileContext()) { var file = new Files { AssetTypeID = (int)assetType, Content = content }; fileContext.FilesDS.Add(file); fileContext.SaveChanges(); } }
public override async Task <CTO <bool> > DeleteFile <T>(ASSET_TYPES assetType, Guid?objectGUID = null) { try { var file = await _currentFolder.GetFileAsync(GetFileName(assetType, objectGUID)); await file.DeleteAsync(); return(new CTO <bool>(true)); } catch (Exception ex) { return(new CTO <bool>(false, ex)); } }
protected string GetFileName(ASSET_TYPES assetType, Guid?objectGUID = null) { return(objectGUID.HasValue ? $"{assetType}_{objectGUID.Value}" : assetType.ToString()); }
public abstract Task <CTO <T> > GetFile <T>(ASSET_TYPES assetType, bool encrypted = true, Guid?objectGUID = null);
public abstract Task <CTO <bool> > WriteFile <T>(ASSET_TYPES assetType, T obj, bool encryptFile = true, Guid?objectGUID = null);
public abstract Task <CTO <bool> > DeleteFile <T>(ASSET_TYPES assetType, Guid?objectGUID = null);