public void Add(Activity activity) { CreateNewJarFileWriterIfRequired(); var headers = new Dictionary <string, string>(); var screenShotBytes = activity.ScreenShot.ToByteArray(); JarFileItem item; using (var inputStream = new MemoryStream(screenShotBytes)) { using (var outputStream = _imageCommentEmbedder.AddComment(new MemoryStream(screenShotBytes), activity.KeyPressedData)) { item = new JarFileItem(headers, outputStream.ToArray(), -1); } } try { _jarFileWriter.AddFile(item); } catch (JarFileReachedMaxLimitException) { //TO DO: move this event to appropiate class or remove EventContainer.PublishEvent( Events.LogFileReachedMaxLimit.ToString(), new EventArg(Guid.NewGuid(), _jarFileWriter.JarFilePath)); CreateNewJarFileWriter(); _jarFileWriter.AddFile(item); } }
void AppendFile(JarFileItem jarFileItem, string dataFile, Dictionary <string, List <string> > appendedFilesStore) { if (!appendedFilesStore.ContainsKey(dataFile)) { appendedFilesStore[dataFile] = new List <string>(); } var list = appendedFilesStore[dataFile]; if (list.Count >= 100) { throw new JarFileReachedMaxLimitException(); } list.Add(jarFileItem.Headers.ToString()); }