private void BtnLoad_Click(object sender, EventArgs e) { string filePath; try { using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.Filter = "XML (*.XML)|*.XML"; openFileDialog.FilterIndex = 1; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { filePath = openFileDialog.FileName; config = PrincipalTO.LoadConfig(filePath); UpdatePartnersCombo(); UpdateContractsCombo(); txbAuthor.Text = config.AuthorName; txbTeamName.Text = config.TeamName; PrintUserLog("Arquivo de configuração carregado."); } } } catch (Exception ex) { txbResult.Text = $"ERRO\n\n{ex.Message}\n\n{ex.InnerException.Message}"; } }
private void LoadConfig() { try { config = PrincipalTO.LoadConfig(rootFolder); txbAuthorName.Text = config.AuthorName; txbAreaName.Text = config.AreaName; txbTeamName.Text = config.TeamName; foreach (var partner in config.Partners) { lsbPartners.Items.Add(partner.Name); } btnNextForm.Enabled = true; ShowLog("Parece que você tem um arquivo preconfigurado. Legal! Vamos editá-lo\n=]"); } catch (FileNotFoundException) { txbResult.Text = $"Não encontrei um arquivo de configuração na pasta {rootFolder}. Espero que este seja o início de uma nova amizade\n;)"; } catch (Exception ex) { txbResult.Text = ex.Message; } }
private void LoadXmlConfig(string path) { try { configXml = PrincipalTO.LoadConfig(path); if (fluxo == UtilDTO.NAVIGATION.SM) { bool hasSharedSm = false; foreach (var partner in configXml.Partners) { if (partner.Contracts.Any(contract => contract.Name == UtilDTO.CONTRACTS.SM_MEDIA.ToString())) { hasSharedSm = true; } } if (!hasSharedSm) { txbResult.Text = "Psiu, olha aqui!\n\nVocê não possui nenhum contrato de SM que receba pela média de times.\n\nSerá que este é o menu que queria entrar mesmo ou falta algo em sua configuração?"; BlockFields(true); } } } catch (FileNotFoundException ex) { txbResult.Text = ex.Message; BlockFields(true); } catch (Exception ex) { txbResult.Text = ex.Message; } }
public static void SetLastPageSignature(Paragraph paragraph, ConfigXmlDTO config) { AddPAragraph(paragraph, "Atenciosamente,", 100, 30, 0, 14, WdParagraphAlignment.wdAlignParagraphJustify); AddPAragraph(paragraph, "_______________________________________________________", 0, 0, 0, 14, WdParagraphAlignment.wdAlignParagraphCenter); AddPAragraph(paragraph, config.AuthorName, 0, 0, 0, 14, WdParagraphAlignment.wdAlignParagraphCenter); AddPAragraph(paragraph, "Gerente de suporte - " + config.AreaName + " - " + config.TeamName, 0, 0, 0, 14, WdParagraphAlignment.wdAlignParagraphCenter); }
public static void GenerateDoc(ConfigXmlDTO config, FornecedorDTO partner, string outputDocPath, List <SprintDevDTO> sprints) { try { List <IntervaloDTO> ranges = new List <IntervaloDTO>(); List <SprintBaseDTO> baseSprints = new List <SprintBaseDTO>(); List <ColaboradorDTO> devTeam = new List <ColaboradorDTO>(); foreach (var sprint in sprints) { ranges.Add(sprint.Range); baseSprints.Add(sprint.GetBaseSprint()); } if (config.BaneseDes.Count > 0) { foreach (var dev in config.BaneseDes) { devTeam.Add(dev); } } foreach (var configPartner in config.Partners) { foreach (var contract in configPartner.Contracts) { if (contract.Name != UtilDTO.CONTRACTS.SM_MEDIA.ToString() && contract.Name != UtilDTO.CONTRACTS.SM_FIXO.ToString()) { foreach (var dev in contract.Collaborators) { devTeam.Add(dev); } } } } string outputDocName = SetDocumentName(baseSprints, config, partner.Name, UtilDTO.REPORT_TYPE.DEV); Application winword = CreateWinWord(); //Create a missing variable for missing value object missing = System.Reflection.Missing.Value; Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing); Paragraph para1 = document.Content.Paragraphs.Add(ref missing); CreateFirstPage(para1, ranges, config); CreateFollowPages(document, partner, baseSprints, para1, devTeam); CreateLastPage(document, para1, sprints, missing, config, partner); SetDocumentHeader(document, partner, config); SetDocumentFooter(document); SaveAndClose(ref document, ref winword, outputDocName, outputDocPath, missing); } catch (Exception ex) { throw ex; } }
public SprintPontosObsForm(ContainerForm containerForm, ConfigXmlDTO configXml, UtilDTO.NAVIGATION fluxo, List <SprintDevDTO> sprintsDevList = null, List <SprintSmDTO> sprintsSmList = null) { InitializeComponent(); this.sprintsDevList = sprintsDevList; this.sprintsSmList = sprintsSmList; SetCerimonialPointCombo(); this.containerForm = containerForm; this.configXml = configXml; this.fluxo = fluxo; SetScreenLayout(fluxo); SetSprints(); }
public static string SetDocumentName(List <SprintBaseDTO> sprints, ConfigXmlDTO config, string partnerName, UtilDTO.REPORT_TYPE reportType) { string outputDocName = $"Relatório Ágil -"; foreach (var sprint in sprints) { outputDocName += $" {sprint.Range.Name}"; } outputDocName += $" - {config.AreaName}-{config.TeamName} - {partnerName} - {reportType}.docx"; return(outputDocName); }
public ConfigContratoForm(ContainerForm containerForm, ConfigXmlDTO config) { InitializeComponent(); this.config = config; this.containerForm = containerForm; foreach (var partner in config.Partners) { lsbPartners.Items.Add(partner.Name); } LoadContractType(); }
public SprintSmCompartilhadoPontos(ContainerForm containerForm, ConfigXmlDTO configXml, UtilDTO.NAVIGATION fluxo, List <SprintSmDTO> sprintSmList) { InitializeComponent(); ResizeParent(containerForm); this.sprintsSmList = sprintSmList; this.containerForm = containerForm; this.fluxo = fluxo; this.configXml = configXml; txbResult.Text = $"O relatório será gerado em {outputDocPath}"; SelectPartnerAndContract(); LoadAddedSprints(); txbAcceptedPointsTeam1.Select(); }
public SprintAbsenceHourForm(ContainerForm containerForm, ConfigXmlDTO configXml, UtilDTO.NAVIGATION fluxo, List <SprintDevDTO> sprintsDevList, List <SprintSmDTO> sprintsSmList = null) { InitializeComponent(); this.sprintsDevList = sprintsDevList; this.sprintsSmList = sprintsSmList; this.configXml = configXml; this.fluxo = fluxo; this.containerForm = containerForm; lblMessage.Text = "Este colaborador fez hora extra?\nConsiderado hora extra serviços entre as 22h e 6h de um dia útil, finais de semana ou feriado. Será contabilizado 0,5pts por turno adicional, ajustando para seu proporcional quando necessário."; lblScreen.Text = "Tela 3/3"; SetSprintListBox(); SetDevSprintWithContractsAndDevs(); SetSmSprintWithContracts(); SetCbbPartners(); ShowLog(); }
public ConfigBaseForm(ContainerForm containerForm, ConfigXmlDTO config) { InitializeComponent(); this.config = config; foreach (var partner in config.Partners) { lsbPartners.Items.Add(partner.Name); } txbAuthorName.Text = config.AuthorName; txbAreaName.Text = config.AreaName; txbTeamName.Text = config.TeamName; btnNextForm.Enabled = true; this.containerForm = containerForm; ResizeParent(containerForm); ShowLog("Seja bem vindo de volta.\n=)"); }
private void LoadConfig() { try { //load config configXml = PrincipalTO.LoadConfig(outputDocPath); //set partners foreach (var partner in configXml.Partners) { cbbPartners.Items.Add(partner.Name); } cbbPartners.SelectedIndex = 0; lsbSprints.SelectedIndex = 0; ShowLog("Por favor forneça os dados de desempenho do(s) plantonista(s)."); } catch (Exception ex) { txbResult.Text = ex.Message; } }
public static void CreateOpsDoc(ConfigXmlDTO config, FornecedorDTO partner, string outputDocPath, List <SprintDevOpsDTO> sprintDevOpsList) { try { List <IntervaloDTO> ranges = new List <IntervaloDTO>(); foreach (var sprint in sprintDevOpsList) { ranges.Add(sprint.Range); } List <SprintBaseDTO> baseSprints = new List <SprintBaseDTO>(); foreach (var sprintOps in sprintDevOpsList) { baseSprints.Add(sprintOps.GetBaseSprint()); } string outputDocName = SetDocumentName(baseSprints, config, partner.Name, UtilDTO.REPORT_TYPE.DEVOPS); Application winword = CreateWinWord(); //Create a missing variable for missing value object missing = System.Reflection.Missing.Value; Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing); Paragraph paragraph = document.Content.Paragraphs.Add(ref missing); CreateFirstPage(paragraph, ranges, config); CreateFollowPages(document, partner, baseSprints, paragraph); CreateLastPage(document, paragraph, sprintDevOpsList, missing, config, partner); SetDocumentHeader(document, partner, config); SetDocumentFooter(document); SaveAndClose(ref document, ref winword, outputDocName, outputDocPath, missing); } catch (Exception ex) { throw ex; } }
public static void CreateOpsDoc(ConfigXmlDTO config, FornecedorDTO partner, string outputDocPath, List <SprintDevOpsDTO> sprints) { ControleDocDevOps.CreateOpsDoc(config, partner, outputDocPath, sprints); }
public static void GenerateConfigXmlFile(string outputPath, string outputName, ConfigXmlDTO config) { ControleXml.GenerateConfigXmlFile(outputPath, outputName, config); }
private static void CreateLastPage(Document document, Paragraph paragraph, List <SprintDevOpsDTO> sprintsDevOps, object missing, ConfigXmlDTO config, FornecedorDTO partner) { SetLastPageText(document, paragraph, partner); CreateSummaryTableUstDevOps(document, sprintsDevOps, missing, partner); SetLastPageSignature(paragraph, config); }
public static void SetDocumentHeader(Document document, FornecedorDTO partner, ConfigXmlDTO config) { foreach (Section section in document.Sections) { //Get the header range and add the header details. Range headerRange = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; headerRange.Fields.Add(headerRange, WdFieldType.wdFieldPage); headerRange.Text = ""; if (partner.CaminhoLogomarca != string.Empty) { headerRange.InlineShapes.AddPicture(partner.CaminhoLogomarca); } else { headerRange.Font.Size = 10; headerRange.Text = $"{partner.Name} - {config.AreaName} - {config.TeamName}".ToUpper(); } headerRange.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; //headerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue; } }
public static void CreateLastPage(Document document, Paragraph para1, List <SprintDevDTO> sprints, object missing, ConfigXmlDTO config, FornecedorDTO partner) { SetLastPageText(document, para1, partner); switch (partner.BillingType) { case (UtilDTO.BILLING_TYPE.UST): CreateSummaryTableUst(document, sprints, missing, partner); break; case (UtilDTO.BILLING_TYPE.UST_HORA): CreateSummaryTableUstHour(document, sprints, missing, partner.UstValue); break; default: break; } SetLastPageSignature(para1, config); }
public static void CreateFirstPage(Paragraph paragraph, List <IntervaloDTO> ranges, ConfigXmlDTO config) { string strAux; List <string> paragraphTexts = new List <string>(); AddPAragraph(paragraph, "RELATÓRIO DE ATIVIDADES", 20, 150, 1, 20, WdParagraphAlignment.wdAlignParagraphCenter); #region Identificação das sprints strAux = "ATIVIDADES DESENVOLVIDAS NAS SPRINTS: "; int sprintsCount = 1; foreach (var range in ranges) { strAux += range.Name; if (sprintsCount < ranges.Count()) { strAux += ", "; } sprintsCount++; } paragraphTexts.Add(strAux); strAux = "TIME: " + config.AreaName + " - " + config.TeamName; paragraphTexts.Add(strAux); strAux = $"PERÍODO: {ranges[0].IniDate:dd/MM/yyyy} a {ranges[ranges.Count - 1].EndDate:dd/MM/yyyy}"; paragraphTexts.Add(strAux); foreach (var paragraphText in paragraphTexts) { AddPAragraph(paragraph, paragraphText, 0, 0, 0, 14, WdParagraphAlignment.wdAlignParagraphRight); } #endregion AddPAragraph(paragraph, "Banese – Banco do Estado de Sergipe", 150, 150, 1, 20, WdParagraphAlignment.wdAlignParagraphCenter); strAux = "Aracaju, " + DateTime.Now.ToString("dddd, dd 'de' MMMM 'de' yyyy", System.Globalization.CultureInfo.GetCultureInfo("pt-BR")); AddPAragraph(paragraph, strAux, 150, 150, 0, 14, WdParagraphAlignment.wdAlignParagraphRight); }
public static void GenerateConfigXmlFile(string outputPath, string outputName, ConfigXmlDTO config) { object filename = Path.Combine(outputPath, outputName); using (XmlWriter writer = XmlWriter.Create(filename.ToString())) { writer.WriteStartElement("Config"); writer.WriteElementString("NomeArea", config.AreaName); writer.WriteElementString("NomeTime", config.TeamName); writer.WriteElementString("Autor", config.AuthorName); if (config.BaneseDes.Count > 0) { foreach (var dev in config.BaneseDes) { writer.WriteStartElement("DesenvBanese"); writer.WriteElementString("Nome", dev.Name); writer.WriteElementString("UmTurno", dev.WorksHalfDay ? "true" : "false"); writer.WriteEndElement();//DesenvBanese } } foreach (var partner in config.Partners) { if (partner.Name != UtilDTO.CONTRACTS.HOUSE.ToString()) { writer.WriteStartElement("Fornecedor"); writer.WriteElementString("Nome", partner.Name); writer.WriteElementString("CaminhoLogomarca", partner.CaminhoLogomarca); writer.WriteElementString("ValorUst", UtilDTO.ConvertDoubleToStringWithDotAtDecimal(partner.UstValue)); foreach (var contract in partner.Contracts) { writer.WriteStartElement("Contrato"); writer.WriteElementString("Tipo", contract.Name); writer.WriteElementString("NumeroSAP", contract.NumeroSAP); writer.WriteElementString("FatorAjuste", UtilDTO.ConvertDoubleToStringWithDotAtDecimal(contract.Factor)); foreach (var dev in contract.Collaborators) { writer.WriteStartElement("Colaborador"); writer.WriteElementString("Nome", dev.Name); writer.WriteElementString("UmTurno", dev.WorksHalfDay ? "true" : "false"); writer.WriteEndElement(); //Colaborador } writer.WriteEndElement(); //Contrato } writer.WriteEndElement(); //Fornecedor } } writer.WriteEndElement();//Config writer.Flush(); } }
private static void CreateLastPage(Document document, Paragraph paragraph, List <SprintSmDTO> sprints, object missing, ConfigXmlDTO config, FornecedorDTO partner) { SetLastPageText(document, paragraph, partner); if (sprints[0].Contracts.Any(contract => contract.Name == UtilDTO.CONTRACTS.SM_FIXO.ToString())) //(TODO) Cada time tem 1 SM, Melhorar o DTO para representar { CreateSummaryTableUstSmSettled(document, sprints, ref missing, partner.UstValue); } else { if (sprints[0].Contracts.Any(contract => contract.Name == UtilDTO.CONTRACTS.SM_MEDIA.ToString())) { CreateSummaryTableUstSmShared(document, sprints, ref missing, partner.UstValue); } } SetLastPageSignature(paragraph, config); }