public void GetConfigProblems(List <SiebelProblem> allProblems, ConfigSettings settings, StatusUpdateCallback updateStatusBar) { // Check for BC specific configuration issues if (settings.CheckForceActive) { GetObjectConfigProblems("Business Component", "Repository Business Component", "Repository Field", allProblems, settings, updateStatusBar); } }
/// <summary> /// Search for the specified search term /// </summary> /// <param name="results"></param> /// <param name="searchTerm"></param> /// <param name="updateStatusBar"></param> /// <param name="ignoreCase"></param> public void SearchScript(List <SearchResults> results, string searchTerm, StatusUpdateCallback updateStatusBar, Boolean ignoreCase) { SearchObjectScript("Application", "Repository Application", "Repository Application Browser Script", "Script", searchTerm, results, updateStatusBar, "Browser", ignoreCase); SearchObjectScript("Application", "Repository Application", "Repository Application Server Script", "Script", searchTerm, results, updateStatusBar, "Server", ignoreCase); SearchObjectScript("Applet", "Repository Applet", "Repository Applet Browser Script", "Script", searchTerm, results, updateStatusBar, "Browser", ignoreCase); SearchObjectScript("Applet", "Repository Applet", "Repository Applet Server Script", "Script", searchTerm, results, updateStatusBar, "Server", ignoreCase); SearchObjectScript("Business Component", "Repository Business Component", "Repository BusComp Browser Script", "Script", searchTerm, results, updateStatusBar, "Browser", ignoreCase); SearchObjectScript("Business Component", "Repository Business Component", "Repository BusComp Server Script", "Script", searchTerm, results, updateStatusBar, "Server", ignoreCase); SearchObjectScript("Business Service", "Repository Business Service", "Repository Business Service Browser Script", "Script", searchTerm, results, updateStatusBar, "Browser", ignoreCase); SearchObjectScript("Business Service", "Repository Business Service", "Repository Business Service Server Script", "Script", searchTerm, results, updateStatusBar, "Server", ignoreCase); }
/// <summary> /// Select appropriate Business Objects to process and send for processing /// </summary> /// <param name="fromDate"></param> /// <param name="userName"></param> /// <param name="updateStatusBar"></param> public List <SiebelReposChange> GetAllChanges(string fromDate, string userName, StatusUpdateCallback updateStatusBar) { // Parent Object (e.g Applet), child Object (i.e. Applet Browser Script) and Object name (e.g. HLS Case List Applet) List <SiebelReposChange> reposChanges = new List <SiebelReposChange>(); try { // Construct BO context // Top level, allowing recovery of all 'Repository' Business Components which reflect all object types in the repository SiebelBusObject reposBo = _siebApp.GetBusObject("Repository Business Object"); // Parent BC of all Repository objects SiebelBusComp reposBobc = reposBo.GetBusComp("Repository Business Object"); // Query the top level BO, getting all objects with the name 'Repository*' // We have to exclude a couple of items, as Siebel is not happy creating context with these two reposBobc.ClearToQuery(); reposBobc.SetViewMode(SiebelConstants.AllView); reposBobc.SetSearchSpec("Name", "LIKE 'Repository*' And [Name] <> 'Repository Details' And [Name] <> 'Repository Entity Relationship Diagram' And [Name] Not Like 'Repository IFMgr*'"); reposBobc.SetSearchSpec("Repository Name", Name); reposBobc.SetSortSpec("Name(ASCENDING)"); reposBobc.ExecuteQuery(SiebelConstants.ForwardOnly); // Check we have some records bool isRecord = reposBobc.FirstRecord(); // Loop through the top level object types while (isRecord) { string objName = reposBobc.GetFieldValue("Name"); updateStatusBar("Processing: " + objName); ProcessBo(objName, reposChanges, reposBo, fromDate, userName); // Process the next object type isRecord = reposBobc.NextRecord(); } } catch (Exception) { return(null); } return(reposChanges); }
/// <summary> /// Returns a list of code problems across the whole repository /// </summary> /// <param name="allProblems"></param> /// <param name="settings"></param> /// <param name="updateStatusBar"></param> public void GetCodeProblems(List <SiebelProblem> allProblems, ScriptSettings settings, StatusUpdateCallback updateStatusBar) { GetObjectCodeProblems("Application", "Repository Application", "Repository Application Browser Script", "Script", allProblems, settings, updateStatusBar); GetObjectCodeProblems("Application", "Repository Application", "Repository Application Server Script", "Script", allProblems, settings, updateStatusBar); GetObjectCodeProblems("Applet", "Repository Applet", "Repository Applet Browser Script", "Script", allProblems, settings, updateStatusBar); GetObjectCodeProblems("Applet", "Repository Applet", "Repository Applet Server Script", "Script", allProblems, settings, updateStatusBar); GetObjectCodeProblems("Business Component", "Repository Business Component", "Repository BusComp Browser Script", "Script", allProblems, settings, updateStatusBar); GetObjectCodeProblems("Business Component", "Repository Business Component", "Repository BusComp Server Script", "Script", allProblems, settings, updateStatusBar); GetObjectCodeProblems("Business Service", "Repository Business Service", "Repository Business Service Browser Script", "Script", allProblems, settings, updateStatusBar); GetObjectCodeProblems("Business Service", "Repository Business Service", "Repository Business Service Server Script", "Script", allProblems, settings, updateStatusBar); }
public static extern int RunGnollHack( [MarshalAs(UnmanagedType.LPStr)] string gnhdir, [MarshalAs(UnmanagedType.LPStr)] string cmdlineargs, ulong runflags, ulong wincaps1, ulong wincaps2, VoidVoidCallback callback_init_nhwindows, IntVoidCallback callback_player_selection, CharVoidCallback callback_askname, VoidVoidCallback callback_get_nh_event, VoidConstCharCallback callback_exit_nhwindows, VoidConstCharCallback callback_suspend_nhwindows, VoidVoidCallback callback_resume_nhwindows, IntIntCallback callback_create_nhwindow, VoidIntCallback callback_clear_nhwindow, VoidIntBooleanCallback callback_display_nhwindow, VoidIntCallback callback_destroy_nhwindow, VoidIntIntIntCallback callback_curs, PutStrExColorCallback callback_putstr_ex, PutStrExColorCallback callback_putmixed_ex, VoidConstCharBooleanCallback callback_display_file, StartMenuCallback callback_start_menu_ex, AddMenuCallback callback_add_menu, AddExtendedMenuCallback callback_add_extended_menu, EndMenuCallback callback_end_menu_ex, IntIntIntOutIntCallback callback_select_menu, VoidIntCallback callback_message_menu, /* no need for X-specific handling */ VoidVoidCallback callback_update_inventory, VoidVoidCallback callback_mark_synch, VoidVoidCallback callback_wait_synch, /* If clipping is on */ VoidIntIntBooleanCallback callback_cliparound, /* If positionbar is on */ VoidCharCallback callback_update_positionbar, PrintGlyphCallback callback_print_glyph, VoidIntCallback callback_init_print_glyph, VoidConstCharCallback callback_raw_print, VoidConstCharCallback callback_raw_print_bold, IntVoidCallback callback_nhgetch, NhPosKeyCallback callback_nh_poskey, VoidVoidCallback callback_nhbell, IntVoidCallback callback_doprev_message, IntIntIntConstCharPtrConstCharPtrCharPtrCallback callback_yn_function_ex, GetLineCallback callback_getlin_ex, IntVoidCallback callback_get_ext_cmd, VoidIntCallback callback_number_pad, VoidVoidCallback callback_delay_output, VoidIntCallback callback_delay_output_milliseconds, VoidIntCallback callback_delay_output_intervals, VoidVoidCallback callback_change_color, VoidIntCallback callback_change_background, VoidIntCallback callback_set_font_name, CharVoidCallback callback_get_color_string, VoidVoidCallback callback_start_screen, VoidVoidCallback callback_end_screen, VoidIntCallback callback_outrip, VoidConstCharCallback callback_preference_update, CharPtrBooleanCallback callback_getmsghistory, VoidConstCharBooleanCallback callback_putmsghistory, VoidVoidCallback callback_status_init, VoidVoidCallback callback_status_finish, VoidIntConstCharPtrConstCharPtrBooleanCallback callback_status_enablefield, StatusUpdateCallback callback_status_update, BooleanVoidCallback callback_can_suspend_yes, VoidVoidCallback callback_stretch_window, VoidUlongCallback callback_set_animation_timer_interval, VoidIntCallback callback_open_special_view, StopAllSoundsCallback callback_stop_all_sounds, PlayImmediateSoundCallback callback_play_immediate_ghsound, BooleanIntDoubleCallback callback_play_ghsound_occupation_ambient, BooleanIntDoubleCallback callback_play_ghsound_effect_ambient, BooleanDoubleCallback callback_set_effect_ambient_volume, PlayMusicCallback callback_play_ghsound_music, BooleanDoubleCallback callback_play_ghsound_level_ambient, BooleanDoubleCallback callback_play_ghsound_environment_ambient, BooleanDoubleDoubleDoubleDoubleDoubleCallback callback_adjust_ghsound_general_volumes, BooleanIntDoubleVoidPtrCallback callback_add_ambient_ghsound, BooleanVoidPtrCallback callback_delete_ambient_ghsound, BooleanDoubleVoidPtrCallback callback_set_ambient_ghsound_volume, VoidVoidCallback callback_clear_context_menu, AddContextMenuCallback callback_add_context_menu, ToggleAnimationTimerCallback callback_toggle_animation_timer, DisplayFloatingTextCallback callback_display_floating_text, DisplayScreenTextCallback callback_display_screen_text, UpdateCursorCallback callback_update_cursor, VoidIntCallback callback_exit_hack, CharVoidCallback callback_getcwd, IntCharCharUintCallback callback_messagebox, VoidIntCallback callback_outrip_begin, VoidIntCallback callback_outrip_end, FreeMemoryCallback callback_free_memory, SendObjectDataCallback callback_send_object_data );
void sudoku_StatusChanged(string newStatus) { StatusUpdateCallback callback = new StatusUpdateCallback(this.UpdateStatus); Status.Dispatcher.BeginInvoke(callback, new object[] { newStatus }); }
private void GetObjectConfigProblems(string objType, string busObjName, string busCompName, List <SiebelProblem> allProblems, ConfigSettings settings, StatusUpdateCallback updateStatusBar) { // Declare Siebel objects // Initialise BO and BC objects SiebelBusObject busObj = _siebApp.GetBusObject(busObjName); SiebelBusComp busComp = busObj.GetBusComp(busCompName); // Set up query context busComp.ClearToQuery(); busComp.SetViewMode(SiebelConstants.AllView); busComp.ActivateField("Name"); busComp.ActivateField("Updated By"); busComp.ActivateField("Parent Name"); busComp.ActivateField("Inactive"); busComp.ActivateField("Parent Inactive"); busComp.SetSearchSpec("Repository Name", Name); busComp.SetSearchSpec("Force Active", "Y"); busComp.SetSearchSpec("Join", "<> ''"); busComp.SetSortSpec("Parent Name(ASC), Name(ASC)"); string userFilter = settings.UserFilter; string objFilter = settings.NameFilter; // Filter by Update Date and Obj Name, if required if (userFilter != "" && userFilter != "All" && userFilter != null) { busComp.SetSearchSpec("Updated By", "'" + GetUserLoginId(userFilter) + "'"); } if (!string.IsNullOrEmpty(objFilter)) { busComp.SetSearchSpec("Parent Name", "'" + objFilter + "'"); } if (settings.IgnoreInactive) { busComp.SetSearchSpec("Inactive", "N"); busComp.SetSearchSpec("Parent Inactive", "N"); } busComp.ExecuteQuery(SiebelConstants.ForwardOnly); // Check that records are returned bool isRecord = busComp.FirstRecord(); // Update UI status bar updateStatusBar("Processing: " + busObjName); // Process each record while (isRecord) { // Get the parent name string parentName = busComp.GetFieldValue("Parent Name"); // Get the field name string fieldName = busComp.GetFieldValue("Name"); SiebelProblem problem = new SiebelProblem("Config", "Performance", "Review 'Force Active' on Join field", parentName, objType, fieldName, 0); allProblems.Add(problem); // Get the next record isRecord = busComp.NextRecord(); } }
private void SearchObjectScript(string objType, string busObjName, string busCompName, string codeFieldName, string searchTerm, List <SearchResults> results, StatusUpdateCallback updateStatusBar, string scriptType, Boolean ignoreCase) { // Declare Siebel objects // Initialise BO and BC objects SiebelBusObject busObj = _siebApp.GetBusObject(busObjName); SiebelBusComp busComp = busObj.GetBusComp(busCompName); // Set up query context busComp.ClearToQuery(); busComp.SetViewMode(SiebelConstants.AllView); busComp.ActivateField(codeFieldName); busComp.ActivateField("Parent Name"); busComp.ActivateField("Inactive"); busComp.ActivateField("Parent Inactive"); busComp.SetSearchSpec("Repository Name", Name); busComp.SetSortSpec("Parent Name(ASC), Name(ASC)"); if (ignoreCase) { busComp.SetSearchSpec("Inactive", "N"); busComp.SetSearchSpec("Parent Inactive", "N"); } busComp.ExecuteQuery(SiebelConstants.ForwardOnly); // Check that records are returned bool isRecord = busComp.FirstRecord(); // Process each record while (isRecord) { // Get the script field from the BC string script = busComp.GetFieldValue(codeFieldName); string methodName = busComp.GetFieldValue("Name"); string parentName = busComp.GetFieldValue("Parent Name"); SiebelScript scriptObject = new SiebelScript(script, parentName, methodName, objType, scriptType); updateStatusBar("Searching: " + parentName + "." + methodName); // Search the script for problems scriptObject.Search(searchTerm, results, ignoreCase); // Get the next record isRecord = busComp.NextRecord(); } }
/// <summary> /// Returns a list of code problems for a given object /// </summary> /// <param name="objType"></param> /// <param name="busObjName"></param> /// <param name="busCompName"></param> /// <param name="codeFieldName"></param> /// <param name="allProblems"></param> /// <param name="settings"></param> /// <param name="updateStatusBar"></param> private void GetObjectCodeProblems(string objType, string busObjName, string busCompName, string codeFieldName, List <SiebelProblem> allProblems, ScriptSettings settings, StatusUpdateCallback updateStatusBar) { // Declare Siebel objects // Initialise BO and BC objects SiebelBusObject busObj = _siebApp.GetBusObject(busObjName); SiebelBusComp busComp = busObj.GetBusComp(busCompName); // Set up query context busComp.ClearToQuery(); busComp.SetViewMode(SiebelConstants.AllView); busComp.ActivateField(codeFieldName); busComp.ActivateField("Name"); busComp.ActivateField("Updated By"); busComp.ActivateField("Parent Name"); busComp.ActivateField("Inactive"); busComp.ActivateField("Parent Inactive"); busComp.SetSearchSpec("Repository Name", Name); busComp.SetSortSpec("Parent Name(ASC), Name(ASC)"); string userFilter = settings.UserFilter; string objFilter = settings.ObjNameFilter; // Filter by Update Date and Obj Name, if required if (userFilter != "" && userFilter != "All" && userFilter != null) { busComp.SetSearchSpec("Updated By", "'" + GetUserLoginId(userFilter) + "'"); } if (!string.IsNullOrEmpty(objFilter)) { busComp.SetSearchSpec("Parent Name", "'" + objFilter + "'"); } if (settings.IgnoreInactive) { busComp.SetSearchSpec("Inactive", "'N'"); busComp.SetSearchSpec("Parent Inactive", "'N'"); } busComp.ExecuteQuery(SiebelConstants.ForwardOnly); // Check that records are returned bool isRecord = busComp.FirstRecord(); // Determine if Server or Browser script string scriptType = busCompName.IndexOf("Browser Script", StringComparison.Ordinal) > 0 ? "Browser" : "Server"; // Process each record while (isRecord) { // Get the script field from the BC string script = busComp.GetFieldValue(codeFieldName); string methodName = busComp.GetFieldValue("Name"); string parentName = busComp.GetFieldValue("Parent Name"); // Update UI status bar updateStatusBar("Processing: " + busCompName + " (" + parentName + "." + methodName + ")"); SiebelScript scriptObject = new SiebelScript(script, parentName, methodName, objType, scriptType); // Search the script for problems scriptObject.GetScriptProblems(allProblems, settings); // Get the next record isRecord = busComp.NextRecord(); } }
// Handles calling back to the Form Class to update the UI public void UpdateStatus(string status, StatusUpdateCallback callBack) { callBack(status); }
/// <summary> /// Gets the number of code lines for a specific object type /// </summary> /// <param name="busObjName"></param> /// <param name="busCompName"></param> /// <param name="codeFieldName"></param> /// <param name="settings"></param> /// <param name="updateStatusBar"></param> /// <returns></returns> private int GetObjCodeLines(string busObjName, string busCompName, string codeFieldName, ScriptSettings settings, StatusUpdateCallback updateStatusBar) { // Reset counts int numLines = 0; // Declare Siebel objects // Initialise BO and BC objects SiebelBusObject busObj = _siebApp.GetBusObject(busObjName); SiebelBusComp busComp = busObj.GetBusComp(busCompName); // Set up query context busComp.SetViewMode(SiebelConstants.AllView); busComp.ActivateField(codeFieldName); busComp.ActivateField("Inactive"); busComp.ActivateField("Parent Inactive"); busComp.ClearToQuery(); busComp.SetSearchSpec("Repository Name", Name); string userFilter = settings.CountUserNameFIlter; string objFilter = settings.CountObjNameFilter; // Filter by Update Date and Obj Name, if required if (!string.IsNullOrEmpty(userFilter) && userFilter != "All") { busComp.SetSearchSpec("Updated By", "'" + GetUserLoginId(userFilter) + "'"); } if (!string.IsNullOrEmpty(objFilter)) { busComp.SetSearchSpec("Parent Name", "'" + objFilter + "'"); } if (settings.IgnoreInactive) { busComp.SetSearchSpec("Inactive", "'N'"); busComp.SetSearchSpec("Parent Inactive", "'N'"); } busComp.ExecuteQuery(SiebelConstants.ForwardOnly); // Check that records are returned bool isRecord = busComp.FirstRecord(); // Process each record while (isRecord) { // Get the script field from the BC string script = busComp.GetFieldValue(codeFieldName); SiebelScript scriptObject = new SiebelScript(script); updateStatusBar("Processing: " + busCompName); // Count the lines in the single script object and add to the total numLines += scriptObject.NumberOfLines(); // Get the next record isRecord = busComp.NextRecord(); } return(numLines); }
/// <summary> /// Return the number of lines of code across the whole repository /// </summary> /// <param name="scriptLine"></param> /// <param name="settings"></param> /// <param name="updateStatusBar"></param> /// <returns></returns> public SiebelScriptLines GetCodeLineCount(SiebelScriptLines scriptLine, ScriptSettings settings, StatusUpdateCallback updateStatusBar) { scriptLine.ApplicationBsLine = GetObjCodeLines("Repository Application", "Repository Application Browser Script", "Script", settings, updateStatusBar); scriptLine.ApplicationSsLine = GetObjCodeLines("Repository Application", "Repository Application Server Script", "Script", settings, updateStatusBar); scriptLine.AppletBsLine = GetObjCodeLines("Repository Applet", "Repository Applet Browser Script", "Script", settings, updateStatusBar); scriptLine.AppletSsLine = GetObjCodeLines("Repository Applet", "Repository Applet Server Script", "Script", settings, updateStatusBar); scriptLine.BcbsLine = GetObjCodeLines("Repository Business Component", "Repository BusComp Browser Script", "Script", settings, updateStatusBar); scriptLine.BcssLine = GetObjCodeLines("Repository Business Component", "Repository BusComp Server Script", "Script", settings, updateStatusBar); scriptLine.BsbsLine = GetObjCodeLines("Repository Business Service", "Repository Business Service Browser Script", "Script", settings, updateStatusBar); scriptLine.BsssLine = GetObjCodeLines("Repository Business Service", "Repository Business Service Server Script", "Script", settings, updateStatusBar); scriptLine.TotalLine = scriptLine.ApplicationBsLine + scriptLine.ApplicationSsLine + scriptLine.AppletBsLine + scriptLine.AppletSsLine + scriptLine.BcbsLine + scriptLine.BcssLine + scriptLine.BsbsLine + scriptLine.BsssLine; return(scriptLine); }