コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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();
            }
        }