/// <summary> /// If object exists returns the object else saves a plain object and returns it /// </summary> /// <param name="obj">empty placeholder object</param> /// <returns>Filesystem object</returns> public async Task <T> GetPersistantObject(T obj, string fileName) { List <string> files = new List <string>(_mvxFileStore.GetFilesIn(_mvxFileStore.NativePath(""))); fileName = _mvxFileStore.NativePath(fileName); if (!files.Contains(fileName)) { var objJson = Newtonsoft.Json.JsonConvert.SerializeObject(obj); objJson = bcEngine.Encrypt(objJson, currentkey_temp_dev); await _mvxFileStoreAsync.WriteFileAsync(fileName, objJson); } else { try { var temp = await _mvxFileStoreAsync.TryReadTextFileAsync(fileName); var str = bcEngine.Decrypt(temp.Result, currentkey_temp_dev); obj = Newtonsoft.Json.JsonConvert.DeserializeObject <T>(str); } catch (Exception e) { var objJson = Newtonsoft.Json.JsonConvert.SerializeObject(obj); objJson = bcEngine.Encrypt(objJson, currentkey_temp_dev); await _mvxFileStoreAsync.WriteFileAsync(fileName, objJson); } } return(obj); }
/// <summary> /// Return the list of name of all attachements of a given entity /// </summary> /// <param name="idDocument"></param> /// <returns></returns> public override IList <string> GetAttachmentNames(string idDocument) { var result = new List <string>(); var entityAttachmentDir = fileStore.PathCombine(AttachmentsDirectoryPath, idDocument); if (fileStore.FolderExists(entityAttachmentDir)) { var fullFilePath = fileStore.GetFilesIn(entityAttachmentDir); result = fullFilePath.Select(file => file.Substring(file.LastIndexOf("\\", StringComparison.Ordinal) + 1)).ToList(); } return(result); }
private void checkForUnindexedFiles() { var files = storage.GetFilesIn(""); List <string> filepaths = new List <string>(); string npath = storage.NativePath(""); npath += "/"; //Standarization ---------GETFILESIN not reliable foreach (var f in files) { //Removing native path int index = f.IndexOf(npath); string cleanPath = (index < 0) ? f : f.Remove(index, npath.Length); filepaths.Add(cleanPath); } var cachedFiles = new Dictionary <string, Entry>(); foreach (var entry in _indexByHttp) { cachedFiles[entry.Value.DownloadedPath] = entry.Value; } foreach (var file in filepaths) { bool endsWith = false; foreach (var pfilename in _persistentFiles) { if (file.EndsWith(pfilename)) { endsWith = true; } } if (!cachedFiles.ContainsKey(file) && !endsWith) { deleteFile(file); } } }