Esempio n. 1
0
        /// <summary>
        /// Gets the string path to save the documents of a certificate 
        /// </summary>
        /// <param name="certificate">Current certificate</param>
        /// <returns></returns>
        private string GetDocumentFilePath(Certificate certificate)
        {
            List<WorkflowStatusEnum> status = new List<WorkflowStatusEnum>()
            {
                WorkflowStatusEnum.Approved,
                WorkflowStatusEnum.Ongoing,
                WorkflowStatusEnum.Closed
            };

            string path = string.Empty;
            if (status.Contains(certificate.WorkflowStatusId) && certificate.CertificateStatusId == CertificateStatusEnum.Conform)
            {
                string entryPointName = StaticReferences.GetEntryPoints().FirstOrDefault(x => x.EntryPointId == certificate.EntryPointId).Name;
                path = string.Concat(App.CurrentUser.FilePath, entryPointName, "\\", certificate.Sequential, "\\");
            }
            else if (status.Contains(certificate.WorkflowStatusId) && certificate.CertificateStatusId == CertificateStatusEnum.NonConform)
            {
                path = string.Concat(App.CurrentUser.FilePath, certificate.Sequential, "\\");
            }
            else
            {
                string certificateIdentifier = string.IsNullOrEmpty(certificate.Sequential) ? certificate.CertificateId.ToString() : certificate.Sequential;
                path = string.Concat(App.CurrentUser.FilePath, certificateIdentifier, "\\");
            }
            return path;
        }
Esempio n. 2
0
        public void GenerateWordTemplate()
        {
            Certificate cert=new Certificate();
            cert.CertificateStatusId = CertificateStatusEnum.Conform;
            cert.IssuanceDate=DateTime.Now;
            cert.Sequential="CHGVA125631";

            cert.EntryPoint=new EntryPoint{ Name="TestEntryPoint"};
            string templatePath=string.Concat(Directory.GetCurrentDirectory(),"\\","Coc.docx");
            string errorValidation = string.Empty;
            var res = WordManagement.GenerateWordReport(cert, templatePath,out errorValidation);
            Assert.AreEqual(errorValidation, string.Empty);
        }
Esempio n. 3
0
 private string FixComdivNumberInformation(Certificate certificate)
 {
     string fixedComdivNumber = certificate.ComdivNumber;
     fixedComdivNumber = fixedComdivNumber.Replace("/", "");
     fixedComdivNumber = fixedComdivNumber.Replace("_", "");
     fixedComdivNumber = fixedComdivNumber.Replace("-", "");
     fixedComdivNumber = fixedComdivNumber.Replace("(", "");
     fixedComdivNumber = fixedComdivNumber.Replace(")", "");
     fixedComdivNumber = fixedComdivNumber.Replace("[", "");
     fixedComdivNumber = fixedComdivNumber.Replace("]", "");
     fixedComdivNumber = fixedComdivNumber.Replace("*", "");
     fixedComdivNumber = fixedComdivNumber.Replace("+", "");
     fixedComdivNumber = fixedComdivNumber.Replace(".", "");
     fixedComdivNumber = fixedComdivNumber.Replace("%", "");
     fixedComdivNumber = fixedComdivNumber.Replace("&", "");
     fixedComdivNumber = fixedComdivNumber.Replace("=", "");
     fixedComdivNumber = fixedComdivNumber.Replace(@"\", "");
     fixedComdivNumber = fixedComdivNumber.Replace("#", "");
     fixedComdivNumber = fixedComdivNumber.Replace(",", "");
     fixedComdivNumber = fixedComdivNumber.Replace(";", "");
     fixedComdivNumber = fixedComdivNumber.Replace(":", "");
     return fixedComdivNumber;
 }
Esempio n. 4
0
        /// <summary>
        /// Validates the report.
        /// </summary>
        /// <param name="model">Certificate model.</param>
        /// <param name="sdtElements">Elements of Word documents.</param>
        /// <returns>Validation list</returns>
        public static List<string> ValidateReport(Certificate model, MainDocumentPart mainPart)
        {
            List<string> logs = new List<string>();

            var headerSection = mainPart.HeaderParts.FirstOrDefault();
            if(headerSection==null)
            {
                logs.Add("Header section does not exist.");
                return logs;
            }

            var sdtHeaderElements =headerSection.Header.Descendants<SdtElement>();
            var sdtBodyElements = mainPart.Document.Body.Descendants<SdtElement>();

            ValidateInBlock(sdtHeaderElements, "IssuanceDate", logs);
            if (model.CertificateStatusId == CertificateStatusEnum.Conform)
            {
                ValidateInBlock(sdtHeaderElements, "COCNo", logs);
                ValidateInBlock(sdtBodyElements, "EntryPoint", logs);
                ValidateInBlock(sdtBodyElements, "PrePaid", logs);
            }
            else
                ValidateInBlock(sdtHeaderElements, "NCRNo", logs);
            ValidateInBlock(sdtBodyElements, "FOBValue", logs);
            ValidateInBlock(sdtBodyElements, "IssuerName", logs);
            ValidateInBlock(sdtBodyElements, "Signature", logs);
            return logs;
        }
Esempio n. 5
0
        /// <summary>
        /// Generate word report
        /// </summary>
        /// <param name="model"></param>
        /// <param name="templatePath"></param>
        /// <param name="signatureArray"></param>
        /// <param name="errorTagValidation"></param>
        /// <returns></returns>
        public static MemoryStream GenerateWordReport(Certificate model, string templatePath, out string errorValidation, byte[] signatureArray = null, string issuerName = null, byte[] signetArray = null, string officeName = null)
        {
            //Put in memory the template file
            byte[] byteArray = File.ReadAllBytes(templatePath);
            errorValidation = string.Empty;

            MemoryStream ms = new MemoryStream();
            ms.Write(byteArray, 0, (int)byteArray.Length);

            using (WordprocessingDocument theDoc = WordprocessingDocument.Open(ms, true))
            {
                MainDocumentPart mainPart = theDoc.MainDocumentPart;

                List<string> logs = ValidateReport(model, mainPart);
                if (logs.Count > 0)
                {
                    errorValidation = "The certificate document has an incorrect format: \r\n\t";
                    errorValidation += string.Join("\r\n\t", logs);
                    return null;
                }

                var sdtElements = mainPart.Document.Body.Descendants<SdtElement>(); //includes runs, blocks, cells
                var sdtHeaderElements = mainPart.HeaderParts.FirstOrDefault().Header.Descendants<SdtElement>();

                InsertInBlock(sdtHeaderElements, "IssuanceDate", model.IssuanceDate.HasValue ? model.IssuanceDate.Value.ToString("dd/MM/yyyy") : string.Empty);
                //For Coc
                if (model.CertificateStatusId == CertificateStatusEnum.Conform)
                {
                    InsertInBlock(sdtHeaderElements, "COCNo", model.Sequential);
                    InsertInBlock(sdtElements, "EntryPoint", model.EntryPoint != null ? model.EntryPoint.Name : string.Empty);
                    InsertInBlock(sdtElements, "PrePaid", model.IsInvoiced.GetValueOrDefault() ? ServiceResource.Yes : ServiceResource.No);
                }
                    //For Ncr
                else
                    InsertInBlock(sdtHeaderElements, "NCRNo", model.Sequential);

                InsertInBlock(sdtElements, "FOBValue", model.FOBValue.Value.ToString("F2"));

                //Only when it has signature, it is issuer and set issuerName. Else, blank the issuer name
                if (signatureArray != null)
                {
                    InsertImage(theDoc, new MemoryStream(signatureArray),"Signature");
                    InsertInBlock(sdtElements, "IssuerName", issuerName);
                }
                else
                    InsertInBlock(sdtElements, "IssuerName", ServiceResource.AutomaticText);

                //Only when office has signet
                if (signetArray != null)
                    InsertImage(theDoc, new MemoryStream(signetArray), "Stamp");

                if(!string.IsNullOrEmpty(officeName))
                    InsertInBlock(sdtElements, "OfficeName", officeName);
                else
                    InsertInBlock(sdtElements, "OfficeName", ServiceResource.AutomaticText);

                // Save the changes to the table back into the document.
                mainPart.Document.Save();

            }

            return ms;
        }
 /// <summary>
 /// View certificate file
 /// </summary>
 /// <param name="certificate">Certificate information</param>
 private void ViewFile(Certificate certificate)
 {
     _context.GetCertificateDocumentByCertificateId(certificate.CertificateId, GetDocumentDone,certificate);
 }
 /// <summary>
 /// Show history pop up
 /// </summary>
 /// <param name="certificate">Certificate</param>
 private void ExecuteViewHistoryCommand(Certificate certificate)
 {
     CertificateTrackingChildWindow trackWindow = new CertificateTrackingChildWindow();
     CertificateTrackingViewModel trackModel = new CertificateTrackingViewModel(certificate.CertificateId);
     trackModel.CloseWindow += (s, e) => trackWindow.Close();
     trackWindow.DataContext = trackModel;
     trackWindow.Show();
 }
        /// <summary>
        /// Edit the selected certificate
        /// </summary>
        /// <param name="item">certificate item</param>
        private void EditCertificate(Certificate item)
        {
            if (CertificateEditionRequested != null)
            {
                CertificateViewModel certificateViewModel = new CertificateViewModel();
                certificateViewModel.OnSaveCompleted += Model_OnSaveCompleted;

                if (item.EntityState == EntityState.Detached)
                    certificateViewModel.InitializeNew(item);
                else
                    certificateViewModel.Initialize(item.CertificateId, string.IsNullOrEmpty(item.Sequential) ? item.ComdivNumber : item.Sequential);
                CertificateEditionRequested(this, new ContextEditionEventArgs<CertificateViewModel>(certificateViewModel));
            }
        }
Esempio n. 9
0
 public void InitializeNew(Certificate certificate)
 {
     _label = "New Certificate";
     Certificate = certificate;
     EntryPoints = StaticReferences.GetEntryPoints();
     DocumentList = new ObservableCollection<Document>();
     IsNew = true;
     SetHeaderButtonsVisibility();
     IsTypeCertifRadioButtomVisible = true;
 }