/// <summary> /// Zrzut feature /// </summary> /// <param name="pakiet">Pakiet wkładu systemowego</param> /// <param name="nrRozdz">numer rozdziału</param> /// <param name="lp">LP</param> /// <param name="stereotypy">Lista stereotypów do filtrowania</param> /// <param name="kolejnosc">Numer podrozdziału</param> /// <param name="opis">Opis podrozdziału</param> /// <returns></returns> private String dajWymaganiaXXX_nowyModel(Package pakiet, ref int nrRozdz, int lp, String [] stereotypy, String kolejnosc, String opis) { String w = ""; Package wymPckg = EAUtils.utworzPakietGdyBrak(ref pakiet, "Wymagania Systemowe", ""); w += "<h3>" + numer + "." + lp + ".3." + kolejnosc + opis + " </h3>\n"; // if (jezykPolski) // { word.wstawParagraf(numer + "." + lp + ".3." + kolejnosc + opis, 4); /* } * else * { * word.wstawParagraf(numer + "." + lp + ".3." + kolejnosc + " Requirements " + jakie, 4); * }*/ int licznik = 0; foreach (Element e in wymPckg.Elements) { // if (e.Stereotype == warunekIF || e.Stereotype == warunekIF2) licznik++; if (CmodelKonfigurator.czyZawiera(e.Stereotype, stereotypy)) { licznik++; } } if (licznik == 0) { w += "Brak"; if (jezykPolski) { word.wstawParagraf("Brak", word.stylNorm); } else { word.wstawParagraf("None", word.stylNorm); } return(w); } // w+=dajWymaganiaXXXStaraPrezentacja(wymPckg,warunekIF,warunekIF2); //w += dajWymaganiaXXXNowaPrezentacja(wymPckg, warunekIF, warunekIF2); w += dajWymaganiaXXXNowaPrezentacja3(wymPckg, stereotypy); return(w + "</table>\n"); }
/* private String __dajWymaganiaXXXNowaPrezentacja2(Package wymPckg, String warunekIF, String warunekIF2) * { * String w = ""; * * w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n"; * * foreach (Element elem in wymPckg.Elements) * { * // String typ = "konfiguracja/development"; * String nadrzedne = ""; * String stat = ""; * bool analiza = false; * Element e2 = null; * if (elem.Stereotype != warunekIF && elem.Stereotype != warunekIF2) continue; * foreach (Connector con in elem.Connectors) * { * * if (con.Type == "Realisation") * { * e2 = Repo.GetElementByID(con.SupplierID); * if (e2.Type == "Requirement") * { * nadrzedne += e2.Name + "\n"; * stat += e2.Status + "\n"; * if (e2.Status != "Uzgodnione" && e2.Status != "Anulowane przez IT" && e2.Status != "Anulowane przez BO") * { * analiza = true; * } * } * } * } * Wordy.Paragraph paragr= word.wstawParagraf(elem.Name,0); * paragr = paragr.Previous(); * paragr.Range.Bold = 1; * paragr.Range.Underline = Wordy.WdUnderline.wdUnderlineThick; * paragr = word.wstawParagraf("Status: " + elem.Status,0); * paragr = paragr.Previous(); * Wordy.Range r = paragr.Range; * r.End = r.Start + 7; * r.Bold = 1; * * * * if (elem.Status != "Uzgodnione" && elem.Status != "Anulowane przez IT" && elem.Status != "Anulowane przez BO") * { * paragr.Range.Comments.Add(paragr.Range, "Wymaganie w trakcie analizy"); * } * if (jezykPolski) * { * paragr = word.wstawParagraf("Nadrzędne wymaganie biznesowe:", 0); * } * else * { paragr = word.wstawParagraf("Parent business requirement:", 0); } * paragr = paragr.Previous(); * paragr.Range.Bold = 1; * * * if (e2 == null) * { * if (jezykPolski) * { * paragr = word.wstawParagraf("Brak", 0); * } * else * { paragr = word.wstawParagraf("None", 0); } * } * else * { * word.wstawParagraf( nadrzedne,0); * if (jezykPolski) * { * paragr = word.wstawParagraf("Status nadrzędnego wymagania: " + stat, 0); * } * else * { * paragr = word.wstawParagraf("Status of parent business requirement: " + stat, 0); * } * paragr = paragr.Previous(); * paragr = paragr.Previous(); * r = paragr.Range; * r.End = r.Start + 29; * r.Select(); * r.Bold = 1; * if (analiza) * { * paragr.Range.Comments.Add(paragr.Range, "Wymaganie w trakcie analizy"); * } * } * if (jezykPolski) * { * paragr = word.wstawParagraf("Sposób realizacji:", 0); * } * else * { * paragr = word.wstawParagraf("Realization description:", 0); * } * paragr = paragr.Previous(); * paragr.Range.Bold = 1; * * word.wstawParagraf(elem.Notes, 0); * // word.wstawWierszDoTabeli("", tab, i, new string[] { elem.Notes}); * //tab.Cell(i, 1).Merge(tab.Cell(i, 2)); * word.wstawZalacznikRTF(elem); * if (elem.Notes == "" && elem.GetLinkedDocument() == "") * { * word.wstawParagraf("Wymaganie w trakcie analizy...", 0, "Brak opisu realizacji wymagania"); * } * word.wstawParagraf("", 0); * * * } * return w; * } * */ /* private String dajWymaganiaXXXNowaPrezentacja(Package wymPckg, String warunekIF, String warunekIF2) * { * String w = ""; * // Wordy.Table tab = word.wstawTabele("Rozdzial1b", new string[] { "Nazwa", "Opis realizacji", "Nadrzędne wygmaganie biznesowe" }); * // tab.Columns[1].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone); * // tab.Columns[2].SetWidth(200f, Wordy.WdRulerStyle.wdAdjustNone); * // tab.Columns[3].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone); * w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n"; * * foreach (Element elem in wymPckg.Elements) * { * // String typ = "konfiguracja/development"; * String nadrzedne = ""; * String stat = ""; * bool analiza = false; * Element e2 = null; * if (elem.Stereotype != warunekIF && elem.Stereotype != warunekIF2) continue; * foreach (Connector con in elem.Connectors) * { * * if (con.Type == "Realisation") * { * e2 = Repo.GetElementByID(con.SupplierID); * if (e2.Type == "Requirement") * { * nadrzedne += e2.Name + "\n"; * stat += e2.Status + "\n"; * if (e2.Status != "Uzgodnione" && e2.Status != "Anulowane przez IT" && e2.Status != "Anulowane przez BO") * { * analiza = true; * } * } * } * } * Wordy.WdColor kolor1 = Wordy.WdColor.wdColorBlack; * Wordy.WdColor kolor2 = Wordy.WdColor.wdColorGray25; * int i = 1; * // w += "<tr><td>" + elem.Name + "</td><td>" + elem.Notes + "</td><td>" + nadrzedne + "</td></tr>\n"; * Wordy.Table tab = word.wstawTabele("", new string[] {elem.Name, elem.Status }); * tab.Columns[1].SetWidth(350f, Wordy.WdRulerStyle.wdAdjustNone); * tab.Rows[i].Cells[1].Shading.BackgroundPatternColor = kolor1; * tab.Rows[i].Cells[2].Shading.BackgroundPatternColor = kolor1; * tab.Columns[2].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone); * * * * if (elem.Status != "Uzgodnione" && elem.Status != "Anulowane przez IT" && elem.Status != "Anulowane przez BO") * { * tab.Cell(i, 2).Range.Comments.Add(tab.Cell(i, 2).Range, "Wymaganie w trakcie analizy"); * } * i++; * word.wstawWierszDoTabeli("", tab, i, new string[] { "Nadrzędne wymaganie biznesowe", "Status nadrzędnego wymagania" }); * tab.Rows[i].Cells[1].Shading.BackgroundPatternColor = kolor2; * tab.Rows[i].Cells[2].Shading.BackgroundPatternColor = kolor2; * i++; * if (e2 == null) * { * word.wstawWierszDoTabeli("", tab, i, new string[] { "Brak", "Brak" }); * } * else * { * word.wstawWierszDoTabeli("", tab, i, new string[] { nadrzedne, stat }); * if (analiza) * { * tab.Cell(i, 2).Range.Comments.Add(tab.Cell(i, 2).Range, "Wymaganie w trakcie analizy"); * } * } * tab.Rows[i].Cells[1].Shading.BackgroundPatternColor = Wordy.WdColor.wdColorWhite; * tab.Rows[i].Cells[2].Shading.BackgroundPatternColor = Wordy.WdColor.wdColorWhite; * i++; * word.wstawWierszDoTabeli("", tab, i, new string[] { "Sposób realizacji","" },false); * tab.Cell(i, 1).Merge(tab.Cell(i, 2)); * tab.Rows[i].Cells[1].Shading.BackgroundPatternColor = kolor2; * i++; * word.wstawParagraf(elem.Notes, 0); * // word.wstawWierszDoTabeli("", tab, i, new string[] { elem.Notes}); * //tab.Cell(i, 1).Merge(tab.Cell(i, 2)); * word.wstawZalacznikRTF(elem); * if (elem.Notes == "" && elem.GetLinkedDocument() == "") * { * word.wstawParagraf("Wymaganie w trakcie analizy...", 0,"Brak opisu realizacji wymagania"); * } * word.wstawParagraf("", 0); * i++; * * } * return w; * }*/ /// <summary> /// Zrzut feature systemowych, ktore nie maja statusów obsługiwanych w innych przypadkach /// </summary> /// <param name="pakiet">Pakiet wkładu systemowego</param> /// <param name="nrRozdz">numer rozdziału</param> /// <param name="lp">LP</param> /// <param name="stereotypy">Lista stereotypów do filtrowania</param> /// <param name="kolejnosc">Numer podrozdziału</param> /// <param name="opis">Opis podrozdziału</param> /// <returns></returns> private String dajWymaganiaSyst_nowyModel(Package pakiet, ref int nrRozdz, int lp, String kolejnosc, String opis) { String w = ""; Package wymPckg = EAUtils.utworzPakietGdyBrak(ref pakiet, "Wymagania Systemowe", ""); w += "<h3>" + numer + "." + lp + ".3." + kolejnosc + opis + " </h3>\n"; word.wstawParagraf(numer + "." + lp + ".3." + kolejnosc + opis, 4); String[] stereotypy = CmodelKonfigurator.stereotypyFeatureSystemowychBezpieczeństwa; stereotypy = stereotypy.Concat(CmodelKonfigurator.stereotypyFeatureSystemowychDostepnosc).ToArray(); stereotypy = stereotypy.Concat(CmodelKonfigurator.stereotypyFeatureSystemowychInfrastrukturalne).ToArray(); stereotypy = stereotypy.Concat(CmodelKonfigurator.stereotypyFeatureSystemowychPojemnosc).ToArray(); int licznik = 0; foreach (Element e in wymPckg.Elements) { if (!CmodelKonfigurator.czyZawiera(e.Stereotype, stereotypy)) { licznik++; } } if (licznik == 0) { w += "Brak"; if (jezykPolski) { word.wstawParagraf("Brak", word.stylNorm); } else { word.wstawParagraf("None", word.stylNorm); } return(w); } w += dajWymaganiaXXXNowaPrezentacja3(wymPckg, stereotypy, true); return(w + "</table>\n"); }
/// <summary> /// Dodaje wymaganie do odpowiedniej listy wymagań /// </summary> /// <param name="rq"></param> public bool dodajWymaganieDoListy(ref Element rq) { if (CmodelKonfigurator.czyZawiera(rq.Stereotype, CmodelKonfigurator.stereotypyWymaganArchitektonicznych)) { WymaganiaArchitektoniczneLista.Add(rq); return(true); } if (CmodelKonfigurator.czyZawiera(rq.Stereotype, CmodelKonfigurator.stereotypyWymaganInfrastruktura)) { WymaganiaInfrastrukturaLista.Add(rq); return(true); } ////uznajemy, że każde wymaganie które nie jest architektoniczne ani na infrastrukture jest biznesowe // bo każdy oznacza to requriementy jak chce i robi sie burdel if (!CmodelKonfigurator.czyZawiera(rq.Status, CmodelKonfigurator.statusyBRqAnulowane)) { WymaganiaBiznesoweLista.Add(rq); return(true); } return(false); }
private string dajOgraniczeniaRozwiazania(ref int nrRozdz) { okno.Log(Statystyki.LogMsgType.Info, "Eksport ograniczeń rozwiązania"); String w = ""; w += "<div class=\"img\">"; w += dajTytulRozdz("2", ref nrRozdz); if (modelProjektu.OgraniczeniaPckg.Elements.Count > 0 || modelProjektu.ListaIssue.Count > 0) { Wordy.Table tab; if (jezykPolski) { tab = word.wstawTabele("", new string[] { "Lp", "Ograniczenie rozwiązania", "Opis" }); } else { tab = word.wstawTabele("", new string[] { "No", "Constraint", "Descritpion" }); } tab.Columns[1].SetWidth(50f, Wordy.WdRulerStyle.wdAdjustNone); tab.Columns[2].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone); tab.Columns[3].SetWidth(300f, Wordy.WdRulerStyle.wdAdjustNone); w += "<table><tr><th>Lp</th><th>Ograniczenie rozwiązania</th><th>Opis</th></tr>"; int i = 1; foreach (Element e in modelProjektu.OgraniczeniaPckg.Elements) { if (e.Type == "Issue") { continue; //omin issue bo potem osobno wszystkie issue ida do tabelki } if (CmodelKonfigurator.czyZawiera(e.Status, CmodelKonfigurator.statusyIssuePomin)) { continue; } w += "<tr"; w += "><td>" + i + "</td><td>" + e.Name + "</td><td>"; string opis = ""; opis = e.Notes; ////<---- zmiana względem mojego modelu zamiast tagi notatka ////koniec zmiany w += opis + "</td></tr>"; word.wstawWierszDoTabeli("", tab, i + 1, new string[] { i.ToString(), e.Name, opis }); i++; } foreach (Element e in modelProjektu.ListaIssue) { if (CmodelKonfigurator.czyZawiera(e.Status, CmodelKonfigurator.statusyIssuePomin)) { continue; } string opis = e.Notes; word.wstawWierszDoTabeli("", tab, i + 1, new string[] { i.ToString(), e.Name, opis }); i++; } } else { word.wstawParagraf("Brak", 0); } w += "</div>"; okno.Log(Statystyki.LogMsgType.WynikOK, " elementów: " + modelProjektu.OgraniczeniaPckg.Elements.Count + " [ok]\n"); return(w); }
/* private String dajWymaganiaXXXStaraPrezentacja(Package wymPckg,String warunekIF,String warunekIF2) * { * String w = ""; * Wordy.Table tab = word.wstawTabele("Rozdzial1b", new string[] { "Nazwa", "Opis realizacji", "Nadrzędne wygmaganie biznesowe" }); * tab.Columns[1].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone); * tab.Columns[2].SetWidth(200f, Wordy.WdRulerStyle.wdAdjustNone); * tab.Columns[3].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone); * w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n"; * int i = 1; * foreach (Element elem in wymPckg.Elements) * { * String typ = "konfiguracja/development"; * String nadrzedne = ""; * if (elem.Stereotype != warunekIF && elem.Stereotype != warunekIF2) continue; * foreach (Connector con in elem.Connectors) * { * * if (con.Type == "Realisation") * { * Element e2 = Repo.GetElementByID(con.SupplierID); * if (e2.Type == "Requirement") * { * nadrzedne += e2.Name + "<br>\n"; * } * } * } * w += "<tr><td>" + elem.Name + "</td><td>" + elem.Notes + "</td><td>" + nadrzedne + "</td></tr>\n"; * word.wstawWierszDoTabeli("", tab, i + 1, new string[] { elem.Name, elem.Notes, nadrzedne }); * i++; * } * return w; * }*/ private String dajWymaganiaXXXNowaPrezentacja3(Package wymPckg, String [] stereotypy, bool systemowe = false) { String w = ""; w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n"; Stopwatch st = new Stopwatch(); st.Start(); foreach (Element elem in wymPckg.Elements) { st.Restart(); // String typ = "konfiguracja/development"; String nadrzedne = ""; String stat = ""; bool analiza = false; // Element e2 = null; /// bo ficzery systemowe to pozostałe if (systemowe) { if (CmodelKonfigurator.czyZawiera(elem.Stereotype, stereotypy)) { continue; } } else { if (!CmodelKonfigurator.czyZawiera(elem.Stereotype, stereotypy)) { continue; } } okno.Log(Statystyki.LogMsgType.Info, "--Wymaganie: " + elem.Name + "\n "); okno.Log(Statystyki.LogMsgType.cd, "----- czy=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff")); String sql = "select ore.object_id from t_object ore,t_object ofi, t_connector c where ofi.object_id=" + elem.ElementID + " and " + "((c.start_object_id=ofi.object_id and c.end_object_id=ore.object_id) or " + "(c.start_object_id=ore.object_id and c.end_object_id=ofi.object_id)) and " + " ore.object_type='Requirement' and c.connector_type='Realisation'"; int ile_req = 0; foreach (Element e2 in modelProjektu.Repozytorium.GetElementSet(sql, 2)) { ile_req++; nadrzedne += e2.Name + "\n"; stat += e2.Status + "\n"; if (!CmodelKonfigurator.czyZawiera(e2.Status, CmodelKonfigurator.statusyBRqGotowe)) { analiza = true; } } okno.Log(Statystyki.LogMsgType.cd, ", req=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff")); /* przejscie na sql * foreach (Connector con in elem.Connectors) * { * * if (con.Type == "Realisation") * { * e2 = modelProjektu.Repozytorium.GetElementByID(con.SupplierID); * * if (e2.Type == "Requirement") * { * nadrzedne += e2.Name + "\n"; * stat += e2.Status + "\n"; * * if (!CmodelKonfigurator.czyZawiera(e2.Status, CmodelKonfigurator.statusyBRqGotowe)) * { * analiza = true; * } * } * } * } * */ Wordy.Paragraph paragr = word.wstawParagraf(elem.Name, 0); okno.Log(Statystyki.LogMsgType.cd, ", name=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff")); paragr = paragr.Previous(); paragr.Range.Bold = 1; paragr.Range.Underline = Wordy.WdUnderline.wdUnderlineThick; paragr = word.wstawParagraf("Status: " + elem.Status, 0); paragr = paragr.Previous(); Wordy.Range r = paragr.Range; r.End = r.Start + 7; r.Bold = 1; okno.Log(Statystyki.LogMsgType.cd, ", status=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff")); //if (elem.Status != "Uzgodnione" && elem.Status != "Anulowane przez IT" && elem.Status != "Anulowane przez BO") if (!CmodelKonfigurator.czyZawiera(elem.Status, CmodelKonfigurator.statusyFeatureGotowe)) { paragr.Range.Comments.Add(paragr.Range, CmodelKonfigurator.worning["SRQanalysis"]); } if (jezykPolski) { paragr = word.wstawParagraf("Nadrzędne wymaganie biznesowe:", 0); } else { paragr = word.wstawParagraf("Parent business requirement:", 0); } paragr = paragr.Previous(); paragr.Range.Bold = 1; okno.Log(Statystyki.LogMsgType.cd, ", nadrzedne=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff")); if (ile_req == 0) { if (jezykPolski) { paragr = word.wstawParagraf("Brak", 0); } else { paragr = word.wstawParagraf("None", 0); } } else { word.wstawParagraf(nadrzedne, 0); paragr = paragr.Previous(); paragr = paragr.Previous(); r = paragr.Range; r.End = r.Start + 29; r.Select(); r.Bold = 1; if (analiza) { paragr.Range.Comments.Add(paragr.Range, CmodelKonfigurator.worning["BRQ_SRQanalysis"]); } } okno.Log(Statystyki.LogMsgType.cd, " nadrzTresc=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff")); if (jezykPolski) { paragr = word.wstawParagraf("Szczegóły:", 0); } else { paragr = word.wstawParagraf("Details:", 0); } paragr = paragr.Previous(); paragr.Range.Bold = 1; // word.wstawParagraf(elem.Notes, 0); word.wstawNotatkeEAtoRTF(modelProjektu.Repozytorium, elem); // word.wstawWierszDoTabeli("", tab, i, new string[] { elem.Notes}); //tab.Cell(i, 1).Merge(tab.Cell(i, 2)); word.wstawZalacznikRTF(elem); okno.Log(Statystyki.LogMsgType.cd, " opis=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff")); if (elem.Notes == "" && elem.GetLinkedDocument() == "") { word.wstawParagraf("Wymaganie w trakcie analizy...", 0, "Brak opisu realizacji wymagania"); } word.wstawParagraf("", 0); okno.Log(Statystyki.LogMsgType.cd, " koniec=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff") + "\n"); } return(w); }