private Leave ExtractMsgFile(string UploadedFile) { string ExtractedFolder = Server.MapPath("~/Temp/" + Guid.NewGuid().ToString() + "/"); if (!Directory.Exists(ExtractedFolder)) { Directory.CreateDirectory(ExtractedFolder); } MsgReader.Reader reader = new MsgReader.Reader(); reader.ExtractToFolder(UploadedFile, ExtractedFolder, false); string[] ExtractedFiles = Directory.GetFiles(ExtractedFolder, "*.htm"); Leave leave = new Leave(); if (System.IO.File.Exists(ExtractedFiles[0])) { string MsgContent = System.IO.File.ReadAllText(ExtractedFiles[0]); string BreakTag = "<br/>"; string FromTag = "From:</td><td>"; string From = MsgContent.Substring(MsgContent.IndexOf(FromTag) + FromTag.Length); From = From.Substring(From.IndexOf(" <") + " <".Length); From = From.Substring(0, From.IndexOf(">")); if (From.ToLower().Contains("cn=recipients")) { var emailList = db.Employees.Select(e => e.Email); foreach (var email in emailList) { if (From.ToLower().Contains(email)) { From = email; break; } } } string SentOnTag = "Sent on:</td><td>"; string SentOn = MsgContent.Substring(MsgContent.IndexOf(SentOnTag) + SentOnTag.Length); SentOn = SentOn.Substring(0, SentOn.IndexOf(BreakTag)); string SubjectTag = "Subject:</td><td>"; string Subject = MsgContent.Substring(MsgContent.IndexOf(SubjectTag) + SubjectTag.Length); Subject = Subject.Substring(0, Subject.IndexOf(BreakTag)); ViewBag.From = From; ViewBag.SentOn = SentOn; ViewBag.Subject = Subject; leave.LeaveDate = Convert.ToDateTime(SentOn); leave.EmployeeID = db.Employees .Where(x => x.Email == From) .Select(y => y.ID).FirstOrDefault(); Directory.Delete(ExtractedFolder, true); System.IO.File.Delete(UploadedFile); } LoadDdlEmployees(leave.EmployeeID); LoadDdlLTypes(); LoadDdlReasons(); return leave; }