private void UpdateWorksheetContent(WorksheetPart workSheetPart, List<ExcelSheet> templateRows, SharedStringTable sharedStrings, List<ProjectFile> projectFiles, Customer customer, User user)
        {
            IEnumerable<SheetData> sheets = workSheetPart.Worksheet.ChildElements.OfType<SheetData>();

            foreach (var sheetData in sheets)
            {
                sheetData.RemoveAllChildren<Row>();

                List<String> strings = sharedStrings.ChildElements.OfType<SharedStringItem>().Where(shItem => shItem.ChildElements.OfType<Text>().Any()).Select(shItem =>
                    {
                        var firstOrDefault = shItem.ChildElements.OfType<Text>().FirstOrDefault();
                        return firstOrDefault != null ? firstOrDefault.Text : String.Empty;
                    }).ToList();

                //from this point is the content
                int linesToAdd = 0;
                var templateSheet = templateRows.FirstOrDefault(row => row.SheetData.Equals(sheetData));
                if (templateSheet != null)
                {
                    foreach (var projectFile in projectFiles)
                    {
                        GenerateWorksheetDataContent(sheetData, templateSheet.Rows, linesToAdd, new List<TokensProvider> {projectFile, customer, user}, strings);
                        linesToAdd += (templateSheet.Rows.Count + 5);
                    }
                }
            }
        }
 // Creates a SpreadsheetDocument.
 public void CreatePackage(string filePath, List<ProjectFile> projectFiles, Customer customer, User user)
 {
     using(SpreadsheetDocument package = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook))
     {
         CreateParts(package, projectFiles);
     }
 }
 public override void GenerateExcelData(List<ProjectFile> files, Customer customer, User user, String fileToSave, String template)
 {
     StandardLinesExcelHelper xmlHelper = new StandardLinesExcelHelper();
     if (String.IsNullOrEmpty(template))
         xmlHelper.CreatePackage(fileToSave, files, customer, user);
     else
         xmlHelper.UpdatePackage(template, fileToSave, files, customer, user);
 }
 // Updates a SpreadsheetDocument.
 public void UpdatePackage(string templateFile, string filePath, List<ProjectFile> projectFiles, Customer customer, User user)
 {
     File.Copy(templateFile, filePath, true);
     Thread.Sleep(100);
     using (WordprocessingDocument package = WordprocessingDocument.Open(filePath, true, new OpenSettings() { AutoSave = true }))
     {
         UpdateParts(package, projectFiles, customer, user);
     }
 }
        private void UpdateParts(SpreadsheetDocument document, Dictionary<WorksheetPart, List<ExcelSheet>> worksheetsWithRows, List<ProjectFile> projectFiles, Customer customer, User user)
        {
            var workSheets = document.WorkbookPart.WorksheetParts;

            foreach (var workSheet in workSheets)
            {
                UpdateWorksheetContent(workSheet, worksheetsWithRows[workSheet], document.WorkbookPart.SharedStringTablePart.SharedStringTable, projectFiles, customer, user);
            }
        }
 // Updates a SpreadsheetDocument.
 public void UpdatePackage(string templateFile, string filePath, List<ProjectFile> projectFiles, Customer customer, User user)
 {
     File.Copy(templateFile, filePath, true);//.Replace("xlsx", "xltx"));
     Thread.Sleep(100);
     using (SpreadsheetDocument package = SpreadsheetDocument.Open(filePath, true, new OpenSettings {AutoSave = true}))
     {
         var worksheetsWithRows = package.WorkbookPart.WorksheetParts.ToDictionary(workSheet => workSheet, GetRowsForWorksheet);
         UpdateParts(package, worksheetsWithRows, projectFiles, customer, user);
     }
 }
        public virtual void GenerateClipboardData(List<ProjectFile> projectFiles, Customer customer, User user)
        {
            Encoding enc = Encoding.UTF8;
            const string begin = "Version:0.9\r\nStartHTML:{0:000000}\r\nEndHTML:{1:000000}\r\nStartFragment:{2:000000}\r\nEndFragment:{3:000000}\r\n";
            String htmlBegin = "<html>\r\n<head>\r\n"
                                + "<meta http-equiv=\"Content-Type\""
                                + " content=\"text/html; charset=" + enc.WebName + "\">\r\n"
                                + "<title>HTML clipboard</title>\r\n</head>\r\n<body>\r\n"
                                + "<!--StartFragment-->";

            var sb = new StringBuilder();
            sb.AppendLine(GenerateCustomerData(customer));
            sb.AppendLine("<br>");
            foreach (var porjectFile in projectFiles)
            {
                sb.AppendLine(porjectFile.FileName.Replace(".sdlxliff", ""));
                sb.AppendLine(GenerateHeader(porjectFile));
                foreach (var porjectProperty in porjectFile.ProjectProperties)
                {
                    if (porjectProperty.StandardType != ExcludedType)
                    {
                        sb.AppendLine(GenerateLine(porjectProperty));
                    }
                }
                sb.AppendLine( GenerateTotal(porjectFile.ProjectProperties));
                sb.AppendLine("</tbody></TABLE>");
                sb.AppendLine("<br>");
            }
            sb.AppendLine(GenerateUserData(user));
            String html = sb.ToString();
            const string htmlEnd = "<!--EndFragment-->\r\n</body>\r\n</html>\r\n";

            string beginSample = String.Format(begin, 0, 0, 0, 0);

            int countBegin = enc.GetByteCount(beginSample);
            int countHtmlBegin = enc.GetByteCount(htmlBegin);
            int countHtml = enc.GetByteCount(html);
            int countHtmlEnd = enc.GetByteCount(htmlEnd);

            string htmlTotal = String.Format(
               begin
               , countBegin
               , countBegin + countHtmlBegin + countHtml + countHtmlEnd
               , countBegin + countHtmlBegin
               , countBegin + countHtmlBegin + countHtml
               ) + htmlBegin + html + htmlEnd;

            DataObject obj = new DataObject();
            obj.SetData(DataFormats.Html, new System.IO.MemoryStream(
               enc.GetBytes(htmlTotal)));
            Clipboard.SetDataObject(obj, true);
        }
        private void UpdateParts(WordprocessingDocument document, List<ProjectFile> projectFiles, Customer customer,
                                 User user)
        {
            try
            {
                OpenXmlElement root = document.MainDocumentPart.Document.Body;
                UpdateElementsForRoot(projectFiles, customer, user, root);
            }
            catch {}

            try
            {
                foreach (FooterPart footerPart in document.MainDocumentPart.FooterParts)
                {
                    OpenXmlElement root = footerPart.Footer;
                    UpdateElementsForRoot(customer, user, root);
                }
            }
            catch { }

            try
            {
                foreach (HeaderPart headerPart in document.MainDocumentPart.HeaderParts)
                {
                    OpenXmlElement root = headerPart.Header;
                    UpdateElementsForRoot(customer, user, root);
                }
            }
            catch { }

            #region comments part
            //try
            //{
            //    if (document.MainDocumentPart.WordprocessingCommentsPart == null) return;
            //    OpenXmlElement root = document.MainDocumentPart.WordprocessingCommentsPart.Comments;
            //    UpdateElementsForRoot(projectFiles, customer, user, root);
            //}
            //catch { }
            #endregion
        }
 private void UpdateElements(OpenXmlElement root, List<OpenXmlElement> elements, Customer customer, User user)
 {
     UpdateSingleFile(root, elements, new List<TokensProvider>() { customer, user }, false);
 }
        private string GenerateUserData(User user)
        {
            if (user == null)
                return String.Empty;
            UIResources resources = new UIResources(Settings.GetSavedCulture());
            var sb = new StringBuilder();
            sb.AppendLine("<br>");
            sb.AppendLine(resources.GeneratedBy);
            if (!String.IsNullOrEmpty(user.Name))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Name, resources.UserName));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.Street))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Street, resources.Street));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.City))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.City, resources.City));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.State))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.State, resources.State));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.Zip))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Zip, resources.Zip));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.Country))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Country, resources.Country));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.Phone))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Phone, resources.Phone));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.Mobile))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Mobile, resources.Mobile));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.Email))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Email, resources.Email));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.Skype))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Skype, resources.Skype));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.WebAddress))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.WebAddress, resources.WebAddress));
                sb.AppendLine("<br>");
            }
            if (!String.IsNullOrEmpty(user.Twitter))
            {
                sb.AppendLine(String.Format("   {1}: {0}", user.Twitter, resources.Twitter));
                sb.AppendLine("<br>");
            }

            return sb.ToString();
        }
 public virtual void GenerateWordData(List<ProjectFile> files, Customer customer, User user, string fileToSave, string template)
 {
     WordHelperBase xmlHelper = new WordHelperBase();
     xmlHelper.UpdatePackage(template, fileToSave, files, customer, user);
 }
 private void UpdateElementsForRoot(IEnumerable<ProjectFile> projectFiles, Customer customer, User user, OpenXmlElement root)
 {
     List<OpenXmlElement> elements = InitializeRoot(root);
     UpdateElements(root, elements, projectFiles, customer, user);
 }
Beispiel #13
0
        private void btnGenerate_Click(object sender, EventArgs e)
        {
            if (!ckWord.Checked && !ckExcel.Checked && !ckClipboard.Checked)
                return;

            Settings.SaveRatesState(_rates.State);

            ITemplateRates currentSelectedTemplate = _rates.CurrentRatesTemplate;
            if (currentSelectedTemplate == null)
            {
                if (_rates == null || _rates.State == null)
                    currentSelectedTemplate = new SimpleWordTemplate();
                else
                {
                    currentSelectedTemplate = _rates.GetSimpleWordTemplateFromState();
                }
            }
            Project project = new Project(cmbLanguagePair.SelectedValue.ToString(),
                currentSelectedTemplate, 
                cmbReportType.SelectedIndex == 0 ? ReportType.Detailed : ReportType.Summary);

            Customer customer = new Customer(
                txtCustomerName.SDLText,
                txtCustomerStreet.SDLText,
                txtCustomerCity.SDLText,
                txtCustomerState.SDLText,
                txtCustomerZip.SDLText,
                txtCustomerCountry.SDLText);

            //Settings.SaveCurrentCustomer(customer);
            bool emptyUser = String.IsNullOrEmpty(txtUserName.SDLText);
            User user = new User()
                {
                    Name = emptyUser ? String.Empty : txtUserName.SDLText,
                    Street = emptyUser ? String.Empty : txtUserStreet.SDLText,
                    City = emptyUser ? String.Empty : txtUserCity.SDLText,
                    State = emptyUser ? String.Empty : txtUserState.SDLText,
                    Zip = emptyUser ? String.Empty : txtUserZip.SDLText,
                    Country = emptyUser ? String.Empty : txtUserCountry.SDLText,
                    Phone = emptyUser ? String.Empty : txtUserPhone.SDLText,
                    Mobile = emptyUser ? String.Empty : txtUserMobile.SDLText,
                    Email = emptyUser ? String.Empty : txtUserEmail.SDLText,
                    Skype = emptyUser ? String.Empty : txtUserSkype.SDLText,
                    WebAddress = emptyUser ? String.Empty : txtUserWebAdress.SDLText,
                    Twitter = emptyUser ? String.Empty : txtUserTwitter.SDLText
                };
            Settings.SaveCurrentUser(user);
            UIResources resources = new UIResources(ddlLanguages.SelectedValue.ToString());
            if (ckClipboard.Checked)
            {
                project.GenerateClipboardData(customer, user);
                MessageBox.Show(resources.QuoteGeneratedClipboard, resources.Information, MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            if (ckExcel.Checked)
            {
                saveFileDialog.FileName = String.Empty;
                saveFileDialog.DefaultExt = "xlsx";
                saveFileDialog.AddExtension = true;
                saveFileDialog.Filter = @"Excel Document|*.xlsx";

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    String fileToSave = saveFileDialog.FileName;
                    String template = ddlExcel.SelectedValue.ToString();

                    project.GenerateExcelData(customer, user, fileToSave, template);
                    MessageBox.Show(resources.QuoteGeneratedExcel, resources.Information, MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
            }
            if (ckWord.Checked)
            {
                saveFileDialog.FileName = String.Empty;
                saveFileDialog.DefaultExt = "docx";
                saveFileDialog.AddExtension = true;
                saveFileDialog.Filter = @"Word Document|*.docx";
                saveFileDialog.SupportMultiDottedExtensions = false;

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    String fileToSave = saveFileDialog.FileName;
                    String template = ddlWord.SelectedValue.ToString();

                    project.GenerateWordData(customer, user, fileToSave, template);
                    MessageBox.Show(resources.QuoteGeneratedWord, resources.Information, MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
            }
        }
Beispiel #14
0
 public void GenerateWordData(Customer customer, User user, string fileToSave, string template)
 {
     _template.GenerateWordData(Files, customer, user, fileToSave, template);
 }
Beispiel #15
0
        public void GenerateExcelData(Customer customer, User user, String fileToSave, String template)
        {
            _template.GenerateExcelData(Files, customer, user, fileToSave, template);

        }
Beispiel #16
0
 public void GenerateClipboardData(Customer customer, User user)
 {
     _template.GenerateClipboardData(Files, customer, user);
 }
 private void UpdateElementsForRoot(Customer customer, User user, OpenXmlElement root)
 {
     List<OpenXmlElement> elements = InitializeRoot(root, false);
     UpdateElements(root, elements, customer, user);
 }
Beispiel #18
0
 private void StudioInQuote_FormClosed(object sender, FormClosedEventArgs e)
 {
     if (_rates != null && _rates.State != null)
         Settings.SaveRatesState(_rates.State);
     bool emptyUser = String.IsNullOrEmpty(txtUserName.SDLText);
     User user = new User()
     {
         Name = emptyUser ? String.Empty : txtUserName.SDLText,
         Street = emptyUser ? String.Empty : txtUserStreet.SDLText,
         City = emptyUser ? String.Empty : txtUserCity.SDLText,
         State = emptyUser ? String.Empty : txtUserState.SDLText,
         Zip = emptyUser ? String.Empty : txtUserZip.SDLText,
         Country = emptyUser ? String.Empty : txtUserCountry.SDLText,
         Phone = emptyUser ? String.Empty : txtUserPhone.SDLText,
         Mobile = emptyUser ? String.Empty : txtUserMobile.SDLText,
         Email = emptyUser ? String.Empty : txtUserEmail.SDLText,
         Skype = emptyUser ? String.Empty : txtUserSkype.SDLText,
         WebAddress = emptyUser ? String.Empty : txtUserWebAdress.SDLText,
         Twitter = emptyUser ? String.Empty : txtUserTwitter.SDLText
     };
     Settings.SaveCurrentUser(user);
 }
        private void UpdateElements(OpenXmlElement root, List<OpenXmlElement> elements, IEnumerable<ProjectFile> projectFiles, Customer customer, User user)
        {
            foreach (var projectFile in projectFiles)
            {
                UpdateSingleFile(root, elements, new List<TokensProvider>() {customer, user, projectFile});

                #region empty lines
                var emptyLineParagraph = new Paragraph() { RsidParagraphAddition = "0077013B", RsidRunAdditionDefault = "00684C81", ParagraphId = "5E06053C", TextId = "77777777" };
                var emptyLineRun = new Run();
                var emptyLineText = new Text() { Text = String.Empty };
                emptyLineRun.Append(emptyLineText);
                emptyLineParagraph.Append(emptyLineRun);
                root.Append(emptyLineParagraph); 
                root.Append((OpenXmlElement)emptyLineParagraph.Clone());
                #endregion
            }
        }
 public virtual void GenerateExcelData(List<ProjectFile> files, Customer customer, User user, String fileToSave, String template)
 {
 }