Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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();
            }
        }
Пример #4
0
        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));
            }
        }
Пример #5
0
        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();
            }
        }
Пример #6
0
 protected string GetFileName(ASSET_TYPES assetType, Guid?objectGUID = null)
 {
     return(objectGUID.HasValue ? $"{assetType}_{objectGUID.Value}" : assetType.ToString());
 }
Пример #7
0
 public abstract Task <CTO <T> > GetFile <T>(ASSET_TYPES assetType, bool encrypted = true, Guid?objectGUID = null);
Пример #8
0
 public abstract Task <CTO <bool> > WriteFile <T>(ASSET_TYPES assetType, T obj, bool encryptFile = true, Guid?objectGUID = null);
Пример #9
0
 public abstract Task <CTO <bool> > DeleteFile <T>(ASSET_TYPES assetType, Guid?objectGUID = null);