public static void SaveCustomer(String name, Customer customer) { if (String.IsNullOrEmpty(name)) return; var xmlDoc = new XmlDocument(); xmlDoc.Load(Settings.SettingsFile); var xmlNodeSettings = xmlDoc.SelectSingleNode("//Settings"); if (xmlNodeSettings != null) { XmlNode xmlNodeCustomers = xmlNodeSettings.SelectSingleNode("//Customers"); if (xmlNodeCustomers != null) { XmlNodeList customerNodes = ((XmlElement) xmlNodeCustomers).GetElementsByTagName("Customer"); XmlElement xmlNodeCustomer = customerNodes.Cast<XmlElement>().FirstOrDefault(node => node.HasAttribute("Name") && node.Attributes["Name"].Value == name); if (xmlNodeCustomer != null) xmlNodeCustomers.RemoveChild(xmlNodeCustomer); } if (xmlNodeCustomers != null) xmlNodeCustomers.AppendChild(CreateCustomerElement(xmlDoc, customer)); else { xmlNodeCustomers = xmlDoc.CreateElement("Customers"); xmlNodeSettings.AppendChild(xmlNodeCustomers); xmlNodeCustomers.AppendChild(CreateCustomerElement(xmlDoc, customer)); } } xmlDoc.Save(Settings.SettingsFile); }
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); } } } }
private void btnSelect_Click(object sender, EventArgs e) { if (gridCustomers.SelectedRows.Count == 0) return; SelectedCustomer = Customers.GetCustomer(gridCustomers.SelectedRows[0].Cells[0].Value.ToString()); DialogResult = DialogResult.OK; }
public AddOrEditCustomer(String culture, Customer customer) { _customer = customer; InitializeComponent(); InitializeCustomControls(); EnsureUiBasedOnCultureInfo(culture, customer); }
// 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); } }
private static XmlNode CreateCustomerElement(XmlDocument xmlDoc, Customer customer) { var xmlNodeCustomer = xmlDoc.CreateElement("Customer"); SetInnerTextCustomerElement(customer, xmlNodeCustomer); return xmlNodeCustomer; }
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); } }
private static void SetInnerTextCustomerElement(Customer customer, XmlElement xmlNodeCustomer) { var serializedCustomer = Settings.SerializeObject(customer); var bytes = new byte[serializedCustomer.Length * sizeof(char)]; Buffer.BlockCopy(serializedCustomer.ToCharArray(), 0, bytes, 0, bytes.Length); xmlNodeCustomer.SetAttribute("Name", customer.Name); xmlNodeCustomer.InnerText = Convert.ToBase64String(bytes); }
// 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); }
public static void DeleteCustomer(Customer customer) { var xmlDoc = new XmlDocument(); xmlDoc.Load(Settings.SettingsFile); var xmlNodeSettings = xmlDoc.SelectSingleNode("//Settings"); if (xmlNodeSettings != null) { XmlNode xmlNodeCustomers = xmlNodeSettings.SelectSingleNode("//Customers"); if (xmlNodeCustomers != null) { XmlNodeList customerNodes = ((XmlElement)xmlNodeCustomers).GetElementsByTagName("Customer"); XmlElement xmlNodeCustomer = customerNodes.Cast<XmlElement>().FirstOrDefault(node => node.HasAttribute("Name") && node.Attributes["Name"].Value == customer.Name); if (xmlNodeCustomer != null) xmlNodeCustomers.RemoveChild(xmlNodeCustomer); } } xmlDoc.Save(Settings.SettingsFile); }
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 GenerateCustomerData(Customer customer) { if (customer == null) return String.Empty; UIResources resources = new UIResources(Settings.GetSavedCulture()); var sb = new StringBuilder(); sb.AppendLine(resources.GeneratedFor); sb.AppendLine("<br>"); if (!String.IsNullOrEmpty(customer.Name)) { sb.AppendLine(String.Format(" {1}: {0}", customer.Name, resources.CustomerName)); sb.AppendLine("<br>"); } if (!String.IsNullOrEmpty(customer.Street)) { sb.AppendLine(String.Format(" {1}: {0}", customer.Street, resources.Street)); sb.AppendLine("<br>"); } if (!String.IsNullOrEmpty(customer.City)) { sb.AppendLine(String.Format(" {1}: {0}", customer.City, resources.City)); sb.AppendLine("<br>"); } if (!String.IsNullOrEmpty(customer.State)) { sb.AppendLine(String.Format(" {1}: {0}", customer.State, resources.State)); sb.AppendLine("<br>"); } if (!String.IsNullOrEmpty(customer.Zip)) { sb.AppendLine(String.Format(" {1}: {0}", customer.Zip, resources.Zip)); sb.AppendLine("<br>"); } if (!String.IsNullOrEmpty(customer.Country)) { sb.AppendLine(String.Format(" {1}: {0}", customer.Country, resources.Country)); 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); }
public virtual void GenerateExcelData(List<ProjectFile> files, Customer customer, User user, String fileToSave, String template) { }
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); } } }
private void UpdateElementsForRoot(IEnumerable<ProjectFile> projectFiles, Customer customer, User user, OpenXmlElement root) { List<OpenXmlElement> elements = InitializeRoot(root); UpdateElements(root, elements, projectFiles, customer, user); }
public void GenerateWordData(Customer customer, User user, string fileToSave, string template) { _template.GenerateWordData(Files, customer, user, fileToSave, template); }
public void GenerateExcelData(Customer customer, User user, String fileToSave, String template) { _template.GenerateExcelData(Files, customer, user, fileToSave, template); }
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); }
private void EnsureUiBasedOnCultureInfo(String culture, Customer customer) { var resources = new UIResources(culture); groupCustomer.Text = resources.Customer; _txtCustomerName.LabelText = resources.CustomerName; _txtCustomerStreet.LabelText = resources.Street; _txtCustomerCountry.LabelText = resources.Country; _txtCustomerZip.LabelText = resources.Zip; _txtCustomerState.LabelText = resources.State; _txtCustomerCity.LabelText = resources.City; _txtCustomerName.SDLText = customer != null ? customer.Name : String.Empty; _txtCustomerStreet.SDLText = customer != null ? customer.Street : String.Empty; _txtCustomerCountry.SDLText = customer != null ? customer.Country : String.Empty; _txtCustomerZip.SDLText = customer != null ? customer.Zip : String.Empty; _txtCustomerState.SDLText = customer != null ? customer.State : String.Empty; _txtCustomerCity.SDLText = customer != null ? customer.City : String.Empty; groupStudioAnalysisBands.Text = resources.StudioAnalysisBands; groupTemplateTemplates.Text = resources.Templates; rbTemplateGroupedAnalysis.Text = resources.GroupedAnalysis; rbTemplateSimpleWordAnalysis.Text = resources.SimpleWordAnalysis; rbTemplateStandardLines.Text = resources.StandardLines; }
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 } }
private void btnSave_Click(object sender, EventArgs e) { var customer = new Customer { Name = _txtCustomerName.SDLText, Street = _txtCustomerStreet.SDLText, City = _txtCustomerCity.SDLText, Zip = _txtCustomerZip.SDLText, State = _txtCustomerState.SDLText, Country = _txtCustomerCountry.SDLText }; customer.Rates = _rates.State; Customers.SaveCustomer(customer.Name, customer); DialogResult = DialogResult.OK; }