/// <summary> /// Generates the Visitor Pass /// </summary> /// <param name="id">Visitor ID</param> /// <returns>Returns the File ID as <see cref="Guid"/></returns> public Guid GenerateVisitorPass(int id) { Visitor visitor = this.GetVisitor(id); Guid fileID = Guid.NewGuid(); var application = new Microsoft.Office.Interop.Word.Application(); var document = application.Documents.Add(Template: Properties.Settings.Default.TemplateFile); application.Visible = false; foreach (Microsoft.Office.Interop.Word.MailMergeField field in document.MailMerge.Fields) { if (field.Code.Text.Contains("FirstName")) { field.Select(); application.Selection.TypeText(visitor.First_Name); } else if (field.Code.Text.Contains("LastName")) { field.Select(); application.Selection.TypeText(visitor.Last_Name); } else if (field.Code.Text.Contains("Email")) { field.Select(); application.Selection.TypeText(visitor.Email); } else if (field.Code.Text.Contains("DateOfVisit")) { field.Select(); application.Selection.TypeText(visitor.DateOfVisit.ToString()); } else if (field.Code.Text.Contains("HostEmail")) { field.Select(); application.Selection.TypeText(visitor.HostEmail); } } document.Fields.Update(); document.SaveAs2(FileName: Path.Combine(Properties.Settings.Default.FileDropLocation, fileID.ToString() + ".docx")); document.Close(); application.Quit(); var file = new File() { ID = fileID.ToString(), FileUrl = Path.Combine(Properties.Settings.Default.FileDropLocation, fileID.ToString() + ".docx").ToString(), VisitorID = id }; using (var db = new VisitorRegistrationEntities()) { db.Files.Add(file); db.SaveChanges(); } return(fileID); }
/// <summary> /// Starts the Download of the Visitor Pass /// </summary> /// <param name="fileID">File ID</param> /// <returns>Returns the file as <see cref="byte"/> Array</returns> public byte[] DownloadVisitorPass(Guid fileID) { var fileEntry = new Wcf.File(); byte[] fileBinary = null; using (var db = new VisitorRegistrationEntities()) { var f = from v in db.Files where v.ID == fileID.ToString() select v; fileEntry = f.FirstOrDefault(); fileBinary = System.IO.File.ReadAllBytes(Path.Combine(Properties.Settings.Default.FileDropLocation, fileEntry.FileUrl)); } using (var db = new VisitorRegistrationEntities()) { int visitorID; int.TryParse(fileEntry.VisitorID.ToString(), out visitorID); var visitor = (from v in db.Visitors where v.ID == visitorID select v).FirstOrDefault(); visitor.Printed = true; db.SaveChanges(); } return(fileBinary); }
/// <summary> /// Register a new Visitor /// </summary> /// <param name="firstName">First Name of the Visitor</param> /// <param name="lastName">Last Name of the Visitor</param> /// <param name="email">eMail of the Visitor</param> /// <param name="hostEmail">eMail of the responsible Host</param> /// <param name="idNumber">ID Number</param> /// <param name="signature">Signature Bash64 String</param> public void RegisterVisitor(string firstName, string lastName, string email, string hostEmail, string idNumber, string signature) { var visitor = new Visitor() { DateOfVisit = DateTime.Now, Email = email, Last_Name = lastName, First_Name = firstName, IDNumber = idNumber, Printed = false, HostEmail = hostEmail, Signature = signature }; using (var db = new VisitorRegistrationEntities()) { db.Visitors.Add(visitor); db.SaveChanges(); } }