public void SaveToFile <T>(ProjectionStoreEntity <T> itemToStore, String grainId) { var fileName = $"{FileStoragePath}\\{grainId.Replace(":", "_")}.json"; using (StreamWriter streamWriter = new StreamWriter(fileName)) { JsonSerializer jsonSerializer = new JsonSerializer(); jsonSerializer.Serialize(streamWriter, itemToStore); } }
public async Task <ProjectionStoreEntity <T> > ReadFromFile <T>(String grainId) { var fileName = $"{FileStoragePath}\\{grainId.Replace(":", "_")}.json"; ProjectionStoreEntity <T> storedItem = null; if (File.Exists(FileStoragePath)) { String serializedState = string.Empty; using (StreamReader streamReader = new StreamReader(fileName)) { do { char[] buffer = new char[1000]; int readCount = await streamReader.ReadBlockAsync(buffer); serializedState += new string(buffer.Take(readCount).ToArray()); } while (!streamReader.EndOfStream); storedItem = JsonConvert.DeserializeObject <ProjectionStoreEntity <T> >(serializedState); } } return(storedItem); }