Extractors.MessageDetails.Load C# (CSharp) Method

Load() public method

public Load ( string path ) : string
path string
return string
        public string Load(string path)
        {
            try
            {
                if (System.IO.File.Exists(path) == false)
                {
                    return string.Empty;
                }

                XmlSerializer serializer = new XmlSerializer(typeof(MessageDetails));

                FileInfo info = new FileInfo(path);
                using (FileStream stream = info.OpenRead())
                {
                    MessageDetails messageDetails = (MessageDetails)serializer.Deserialize(stream);
                    this.SrcIp = messageDetails.SrcIp;
                    this.SrcPort = messageDetails.SrcPort;
                    this.DstIp = messageDetails.DstIp;
                    this.DstPort = messageDetails.DstPort;
                    this.From = messageDetails.From;
                    this.To = messageDetails.To;
                    this.MailFrom = messageDetails.MailFrom;
                    this.Sender = messageDetails.Sender;
                    this.Subject = messageDetails.Subject;
                    this.Date = messageDetails.Date;

                    foreach (AttachmentDetails temp in messageDetails.Attachments)
                    {
                        AttachmentDetails attachmentDetails = new AttachmentDetails();
                        attachmentDetails.File = temp.File;
                        attachmentDetails.Md5 = temp.Md5;
                        this.Attachments.Add(attachmentDetails);
                    }

                    return string.Empty;
                }
            }
            catch (FileNotFoundException fileNotFoundEx)
            {
                return fileNotFoundEx.Message;
            }
            catch (UnauthorizedAccessException unauthAccessEx)
            {
                return unauthAccessEx.Message;
            }
            catch (IOException ioEx)
            {
                return ioEx.Message;
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }

Usage Example

Example #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="dataDirectory"></param>
        /// <param name="outputDirectory"></param>
        public void PostProcess(string dataDirectory, 
                                string outputDirectory)
        {
            CsvConfiguration csvConfiguration = new CsvConfiguration();
            csvConfiguration.QuoteAllFields = true;

            using (FileStream fileStream = new FileStream(System.IO.Path.Combine(outputDirectory, "Attachment.Hashes.csv"), FileMode.Append, FileAccess.Write, FileShare.Read))
            using (StreamWriter streamWriter = new StreamWriter(fileStream))
            using (CsvHelper.CsvWriter csvWriter = new CsvHelper.CsvWriter(streamWriter, csvConfiguration))
            {
                // Now MD5 the files
                foreach (string file in System.IO.Directory.EnumerateFiles(outputDirectory,
                                                                           "*.xml",
                                                                           SearchOption.AllDirectories))
                {
                    string fileName = System.IO.Path.GetFileName(file);
                    if (fileName.StartsWith("Message.Details.") == false)
                    {
                        continue;
                    }

                    MessageDetails messageDetails = new MessageDetails();
                    string ret = messageDetails.Load(file);
                    if (ret.Length == 0)
                    {
                        foreach (AttachmentDetails attachment in messageDetails.Attachments)
                        {
                            csvWriter.WriteField(attachment.Md5);
                            csvWriter.WriteField(attachment.File);
                            csvWriter.WriteField(messageDetails.SrcIp);
                            csvWriter.WriteField(messageDetails.SrcPort);
                            csvWriter.WriteField(messageDetails.DstIp);
                            csvWriter.WriteField(messageDetails.DstPort);
                            csvWriter.WriteField(messageDetails.To);
                            csvWriter.WriteField(messageDetails.From);
                            csvWriter.WriteField(messageDetails.MailFrom);
                            csvWriter.WriteField(messageDetails.Sender);
                            csvWriter.WriteField(messageDetails.Subject);
                            csvWriter.WriteField(messageDetails.Date);
                            csvWriter.NextRecord();
                        }
                    }
                }
            }

            ProcessAttachmentHashes(outputDirectory);
        }