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);
            }
        }
Esempio n. 2
0
        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());
        }