private EngineerProfile LoadEngineerProfile(Assessment assessment) { return(DetectProfile(ProfilesDictionary, assessment)); }
private EngineerProfile DetectProfile(Dictionary <string, EngineerProfile> profilesDictionary, Assessment oldAssessment) { var allTechnologies = oldAssessment.GetAllTechnologies(); foreach (var profile in profilesDictionary.Values) { if (profile != null) { var keywords = profile.GetProfileKeyWords(); if (keywords.Count() > 0 && keywords.All(r => allTechnologies.Contains(r))) { return(profile); } } } return(null); }
public void ConvertAssessment(AssessmentConverter converter) { //verify if sheet exists try { var value = ActiveSheet.Range["A1"].Value2; } catch (Exception) { System.Windows.Forms.MessageBox.Show("Select assessment first before you start using plugin.", "Format error"); return; } LoadAllProfiles(); var techologyGroups = GetTechologyGroups(ProfilesDictionary); Assessment assessment = Assessment.Build(ActiveSheet, techologyGroups); if (assessment == null) { System.Windows.Forms.MessageBox.Show("Unable to convert assessment, unknown format.", "Format error"); return; } EngineerProfile profile = LoadEngineerProfile(assessment); if (profile == null) { System.Windows.Forms.MessageBox.Show("Unable to detect a profile of assessment, ensure please: 1) profile configuration has keywords selected, 2) assessment has keywords.", "Format error"); return; } string workbookName = ActiveWorkbook.Name; var excelRows = converter.Convert(assessment, profile); if (Workbooks == null) { System.Windows.Forms.MessageBox.Show("Plugin requires restart Excel.", "Internal error"); return; } var newWorkBook = Workbooks.Add(); var activeSheet = newWorkBook.ActiveSheet as Excel.Worksheet; //write header var worker = new ExcelWorker(activeSheet); //header section int row = 2; row = WriteHeader(profile, worker, row); //2 rows separation row += 2; // worker.SetAValue(row, profile.TechnicalAreaText).SetBold(true).SetColor(Assessment.OleHeaderColor).SetWidth(60).SetHeight(15); worker.SetValue(row, defaultScaleColumn, profile.ScaleText).SetBold(true).SetColor(Assessment.OleHeaderColor); row++; foreach (var item in excelRows) { worker.SetAValue(row, item.Technology).SetColor(item.Color).SetBold(item.isBold); worker.SetValue(row, defaultScaleColumn, item.Scale).SetColor(item.Color).SetBold(item.isBold); row++; } MsoFileDialogType dlgType = MsoFileDialogType.msoFileDialogSaveAs; Application.FileDialog[dlgType].InitialFileName = string.Format("{0}_{1}", converter.ConverterName, workbookName); Application.FileDialog[dlgType].Show(); if (Application.FileDialog[dlgType].SelectedItems.Count > 0) { ActiveWorkbook.SaveAs(Application.FileDialog[dlgType].SelectedItems.Item(1), Excel.XlFileFormat.xlOpenXMLWorkbook); } }