private static DataSet GetDataSet(string command, object[] parms, drGeneric_String_String gi, int?timeout = null) { var criteria = GetDataCriteria(criteriaType.OperationsDataCriteria); if (timeout.HasValue) { criteria.TemporaryTimeout = timeout; } criteria.InputParameters = ThreadSafeDetermineParms(command, parms, gi); criteria.ReadCommand = command; DataSet result; if (AppSettings.IsLoggingEnabled) { Log(command, parms, true); result = FetchDataSet(criteria); Log(command, parms, false); } else { result = FetchDataSet(criteria); } return(result); }
private static DataSet RunThread2(string command, object[] parms, drGeneric_String_String gi, int?timeout = null) { // Create the delegate. AsynchDataSet2 caller = new AsynchDataSet2(GetDataSet); // Initiate the asychronous call. IAsyncResult result = caller.BeginInvoke(command, parms, gi, timeout, null, null); // Wait for the WaitHandle to become signaled. result.AsyncWaitHandle.WaitOne(); // Call EndInvoke to retrieve the results. DataSet dResult = caller.EndInvoke(result); // Close the wait handle. result.AsyncWaitHandle.Close(); caller = null; result = null; return(dResult); }
private static bool ExecuteProcedure2(string command, object[] parms, drGeneric_String_String gi, int?timeout = null) { var criteria = GetDataCriteria(criteriaType.OperationsDataCriteria); if (timeout.HasValue) { criteria.TemporaryTimeout = timeout; } criteria.UpdateCommand = command; criteria.InputParameters = ThreadSafeDetermineParms(command, parms, gi); if (AppSettings.IsLoggingEnabled) { Log(command, parms, true); UpdateRecord(criteria); Log(command, parms, false); } else { UpdateRecord(criteria); } return(true); }
/// <summary> /// Builds the QuestionSearchCriteria. Used both from Search Button and from Service /// </summary> public static AddendumSearchCriteriaV2 BuildSearchCriteriaObject(ThinkgateUser user, CriteriaController criteriaController, string requestedSortField = null) { /* Sort */ string sortField = null; NameValue nvSortField = SortFields().Find(x => x.Name == requestedSortField); // ensure that the user given value for sort is in the defined list of options if (nvSortField != null) sortField = nvSortField.Value; /* Item Banks - Remove from master list based on filter if given */ var itemBanks = ItemBankMasterList.GetItemBanksForUser(user); if (TestCategory != null && TestCategory == AssessmentCategories.District.ToString()) { for (var rowIndex = itemBanks.Rows.Count - 1; rowIndex >= 0; rowIndex--) { if (itemBanks.Rows[rowIndex]["Label"].ToString() == "Personal") { itemBanks.Rows[rowIndex].Delete(); } } } var selectedItemBanks = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("ItemBank").Select(x => x.Text); if (selectedItemBanks.Any()) itemBanks.DeleteByLabel(selectedItemBanks); /* Text Search */ string searchText = string.Empty; string searchOption = string.Empty; var txtSearchList = criteriaController.ParseCriteria<TextWithDropdown.ValueObject>("TextSearch"); if (txtSearchList.Count > 0) { // we ensure that the value the user gave us for text search type is a valid option var confirmedOption = TextSearchDropdownValues().Find(x => x.Name == txtSearchList[0].Option) ?? TextSearchDropdownValues().First(); if (!String.IsNullOrEmpty(txtSearchList[0].Text)) { searchText = txtSearchList[0].Text; searchOption = confirmedOption.Value; } } /* Courses */ var selectedGrades = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("Grade").Select(x => x.Text).ToList(); var selectedSubjects = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("Subject").Select(x => x.Text).ToList(); var selectedCourses = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("Course").Select(x => x.Text).ToList(); var selectedStandardSets = new drGeneric_String(criteriaController.ParseCriteria<CheckBoxList.ValueObject>("StandardSet").Select(x => x.Text)); // take straight to drGeneric_String because it's going to SQL var filteredCourses = CourseMasterList.GetStandardCoursesForUser(user).FilterByGradesSubjectsStandardSetsAndCourse(selectedGrades, selectedSubjects, selectedStandardSets, selectedCourses); /* Type/Genre */ var selectedAddendumGenres = new drGeneric_String(); var selectedAddendumTypes = new drGeneric_String(); var selectedTypesGenres = criteriaController.ParseCriteria<AddendumType.ValueObject>("AddendumType"); foreach (var selectedTypesGenre in selectedTypesGenres) { if (selectedTypesGenre.Genre != null) { selectedAddendumGenres.Add(selectedTypesGenre.Genre); } else { selectedAddendumTypes.Add(selectedTypesGenre.Text); } } if (selectedAddendumGenres.Count > 0) selectedAddendumTypes.Add("Passage"); var selectedExpirationStatus = criteriaController.ParseCriteria<DropDownList.ValueObject>("ExpirationStatus").FirstOrDefault() != null ? criteriaController.ParseCriteria<DropDownList.ValueObject>("ExpirationStatus").FirstOrDefault().Value : "I"; if (!ShowExpiredItems) { selectedExpirationStatus = "E"; } drGeneric_String_String selectedExpirationDateRange = new drGeneric_String_String(); foreach (var val in criteriaController.ParseCriteria<DateRange.ValueObject>("ExpirationDateRange")) { selectedExpirationDateRange.Add(val.Type == "Start" ? "CreatedDateStart" : "CreatedDateEnd", val.Date); } /* Build Criteria Object */ var asc = new AddendumSearchCriteriaV2() { ItemBanks = itemBanks, CourseList = filteredCourses, AddendumType = selectedAddendumTypes, AddendumGenre = selectedAddendumGenres, UserAccessItemReservations = "", Text = searchText, TextOpt = searchOption, SortKeyword = sortField, courseSelected = selectedCourses.Count > 0 ? true : false, ExpirationStatus = selectedExpirationStatus, ExpirationDateRange = selectedExpirationDateRange }; return asc; }
protected void Page_Load(object sender, EventArgs e) { //TODO: determine correct Permission //_Perm_Resource_Link_Ok = UserHasPermission(Permission.Hyperlink_Resource_Name); UserRole = Encryption.DecryptString(Request.QueryString["xID"].ToString()); AssessmentCategory = Encryption.DecryptString(Request.QueryString["yID"].ToString()); AssessmentID = (Request.QueryString["zID"] == null) ? "": Encryption.DecryptString(Request.QueryString["zID"].ToString()); /************************************************************************************************ * Security - Verify querystring parameters and user's roles are sufficient. ************************************************************************************************/ Validate_Request(); /************************************************************************************************ ************************************************************************************************ * Initial Page Load. ************************************************************************************************ ************************************************************************************************/ var serializer = new JavaScriptSerializer(); /************************************************************************************************ * Populate Class Properties and viewstate. ************************************************************************************************/ ImageWebFolder = (Request.ApplicationPath.Equals("/") ? string.Empty : Request.ApplicationPath) + "/Images/"; districtParms = DistrictParms.LoadDistrictParms(); //In this version of the app, are admins allowed to manage scheduling at the class level? AllowClassLevelSchedules = (districtParms.AssessmentSchedulerScheduleLevel == AssessmentScheduleLevels.Class.ToString()); //In this version of the app, are admins allowed to set up scheduling for classroom assessments? AllowClassroomAssessmentScheduling = (districtParms.AssessmentSchedulerClassroomAssessments); //In this version of the app, are admins allowed to set up scheduling for proofed assessments, unproofed or both? IncludeUnproofedAssessments = (UserRole == "State") ? districtParms.AssessmentSchedulerProofedOptionState : districtParms.AssessmentSchedulerProofedOption; //Originally for Gwinnett //Load objects from viewstate if they are present, otherwise, pull from database. if (ViewState["ScheduleTypesList"] != null) { ScheduleTypesList = (List<Scheduling.ScheduleType>)ViewState["ScheduleTypesList"]; ScheduleLevelsList = (List<Scheduling.ScheduleLevel>)ViewState["ScheduleLevelsList"]; ; } else { drGeneric_String_String AssessScheduleKeys = new drGeneric_String_String(); var schedInstances = new List<Scheduling.Schedule>(); var schedTypes = new List<Scheduling.ScheduleType>(); var schedLevels = new List<Scheduling.ScheduleLevel>(); Scheduling.GetScheduling(SessionObject.GlobalInputs, ScheduleDocTypes.Assessment, AssessmentScheduleLevels.District, AssessScheduleKeys, ref schedInstances, ref schedTypes, ref schedLevels); ScheduleTypesList = schedTypes; //Stash data from ScheduleTypesList in viewstate because we don't want to query for them again. ViewState["ScheduleTypesList"] = ScheduleTypesList; ScheduleLevelsList = schedLevels; //Stash key data from ScheduleLevelsList in viewstate because we don't want to query for them again. ViewState["ScheduleLevelsList"] = ScheduleLevelsList; } if (ViewState["SchedLevelForSave"] != null) SchedLevelForSave = (AssessmentScheduleLevels)ViewState["SchedLevelForSave"]; if (!IsPostBack) { /************************************************************************************************ * Set up certain criteria controls with their selection values using Json arrays as datasources. ************************************************************************************************/ LoadCriteriaControls(); /************************************************************************************************ * Reach up to the master page's RadAjaxPanel, and attach to it a javascript script to be * executed whenever the RadAjaxPanel's ajax call is executed. ************************************************************************************************/ RadAjaxPanel radAjaxPanel = (RadAjaxPanel)this.Master.FindControl("AjaxPanelResults"); radAjaxPanel.ResponseScripts.Add("updateSelectedRowCount(0);"); /************************************************************************************************ * If a AssessmentCategory was passed in, then set the Category combo box in the ScheduleCriteria control * to this value and make it read only. ************************************************************************************************/ if (!string.IsNullOrEmpty(AssessmentCategory)) { ctrlScheduleCriteria.DefaultCategory = AssessmentCategory; ctrlScheduleCriteria.CategoryReadOnly = true; } } if (radGridResults.DataSource == null) { radGridResults.Visible = false; } if (IsPostBack) { radGridResults.Visible = true; } }
protected new void Page_Init(object sender, EventArgs e) { base.Page_Init(sender, e); Master.Search += new SearchMaster.SearchHandler(SearchHandler); if (!IsPostBack) { LoadSearchScripts(); DistrictParms parms = DistrictParms.LoadDistrictParms(); ShowExpiredItems = (Request.QueryString["ShowExpiredItems"] != "No" && parms.AllowSearchForCopyRightExpiredContent); if (!ShowExpiredItems) ExpirationStatusDateRange.DDLExpirationStatus.Visible = false; ImageWebFolder = (Request.ApplicationPath.Equals("/") ? string.Empty : Request.ApplicationPath) + "/Images/"; if (!UserHasPermission(Permission.Icon_Expand_Item)) { ExpandPerm_IconWidth = "0px"; ExpandPerm_onclick = ""; } else { ExpandPerm_IconWidth = "17px"; ExpandPerm_onclick = "onclick=\"window.open('" + clientFolder + "/Record/RubricPage.aspx?xID={{:ID_Encrypted}}');\""; } var serializer = new JavaScriptSerializer(); var itemBankEditTbl = ItemBankMasterList.GetItemBanksForUser(SessionObject.LoggedInUser, ThinkgatePermission.PermissionLevelValues.ItemBankEdit, "Search"); var itemBankCopyTbl = ItemBankMasterList.GetItemBanksForUser(SessionObject.LoggedInUser, ThinkgatePermission.PermissionLevelValues.ItemBankCopy, "Search"); serializer.RegisterConverters(new JavaScriptConverter[] { new ToStringSerializer() }); string renderIBEditArray = "var IBEditArray = [" + serializer.Serialize(itemBankEditTbl) + "]; "; renderIBEditArray += "var IBCopyArray = [" + serializer.Serialize(itemBankCopyTbl) + "]; "; ScriptManager.RegisterStartupScript(this, typeof(string), "IBEditArray", renderIBEditArray, true); #if DEBUG clientFolder = ""; #else clientFolder = AppSettings.AppVirtualPath == "/" ? "" : AppSettings.AppVirtualPath; #endif if (UserHasPermission(Permission.Icon_Expand_Addendum)) { ExpandPerm_IconWidth = "17px"; ExpandPerm_onclick = "onclick=\"window.open('" + clientFolder + "/Record/AddendumPage.aspx?xID={{:ID_Encrypted}}');\""; } else { ExpandPerm_IconWidth = "0px"; ExpandPerm_onclick = ""; } var courses = CourseMasterList.GetStandardCoursesForUser(SessionObject.LoggedInUser); ctrlGradeSubjectCourseStandardSet.JsonDataSource = serializer.Serialize(courses.BuildJsonArray()); ctrlGradeSubjectCourseStandardSet.ChkGrade.DefaultTexts = PossibleDefaultTexts(Request.QueryString["grade"]); ctrlGradeSubjectCourseStandardSet.ChkSubject.DefaultTexts = PossibleDefaultTexts(Request.QueryString["subject"]); ctrlGradeSubjectCourseStandardSet.CmbCourse.DefaultTexts = PossibleDefaultTexts(Request.QueryString["coursename"]); //ctrlRubricType.DataSource = new List<String> {"Holistic", "Advanced"}; drGeneric_String_String lstRubrics = new drGeneric_String_String(); lstRubrics.Add("Holistic", "B"); lstRubrics.Add("Analytical", "A"); System.Data.DataTable dtRubricTypes = lstRubrics.ToDataTable(); ctrlRubricType.DataTextField = "Name"; ctrlRubricType.DataValueField = "Value"; ctrlRubricType.DataSource = dtRubricTypes; dtItemBank dtItemBank = ItemBankMasterList.GetItemBanksForUser(SessionObject.LoggedInUser).DistinctByLabel(); TestCategory = Request.QueryString["TestCategory"]; if (TestCategory != null && TestCategory == AssessmentCategories.District.ToString()) { for (var rowIndex = dtItemBank.Rows.Count - 1; rowIndex >= 0; rowIndex--) { if (dtItemBank.Rows[rowIndex]["Label"].ToString() == "Personal") { dtItemBank.Rows[rowIndex].Delete(); } } } cblItemBank.DataSource = dtItemBank; string rubricType = Request.QueryString["rubrictype"]; if (!String.IsNullOrEmpty(rubricType)) { ctrlRubricType.DefaultTexts = new List<string> { rubricType }; ctrlRubricType.ReadOnly = true; } txtSearch.DataSource = TextSearchDropdownValues(); SortBar.DataSource = SortFields(); } }
public static DataRow FetchDataRow(string ConnectionString, string CommandText, CommandType commType, SqlParameterCollection Parameters, drGeneric_String_String gi) { DataTable dResult = RunThread(ConnectionString, CommandText, commType, Parameters, gi); return(dResult != null ? dResult.Rows.Count > 0 ? dResult.Rows[0] : null : null); }
private static void ExecuteProcedure2(string ConnectionString, string CommandText, CommandType commType, SqlParameterCollection Parameters, drGeneric_String_String gi) { using (SqlConnection conn = new SqlConnection(AppSettings.ConnectionString)) { conn.Open(); using (SqlCommand comm = new SqlCommand(CommandText, conn)) { Parameters = ThreadSafeDetermineParms(comm.CommandText, Parameters, gi); comm.CommandTimeout = 60; comm.CommandType = commType; foreach (SqlParameter parm in Parameters) { comm.Parameters.AddWithValue(parm.ParameterName, parm.Value); comm.Parameters[parm.ParameterName].TypeName = parm.TypeName; comm.Parameters[parm.ParameterName].SqlDbType = parm.SqlDbType; } if (AppSettings.IsLoggingEnabled) { Log(comm.CommandText, Parameters, true); comm.ExecuteNonQuery(); Log(comm.CommandText, Parameters, false); } else { comm.ExecuteNonQuery(); } } } }
private static object[] ThreadSafeDetermineParms(string command, object[] parms, drGeneric_String_String globalInputs) { if (NonUpdatedProcedures.Instance.IsProcedureUpdated(command)) { if (globalInputs == null) { throw new ApplicationException("The procedure " + command + " has been flagged as being updated to accept GlobalInputs but the call to FetchDataTable did not include GlobalInputs. Please modify your call. Contact Wesley or Michael for further info."); } var new_parms = new object[parms.Length + 1]; parms.CopyTo(new_parms, 1); new_parms[0] = globalInputs.ToSql(); return(new_parms); } return(parms); }
private static SqlParameterCollection ThreadSafeDetermineParms(string command, SqlParameterCollection parms, drGeneric_String_String globalInputs) { if (NonUpdatedProcedures.Instance.IsProcedureUpdated(command)) { //******* 20121029 DHB Start code changes. //if (AppSettings.GlobalInputs == null) //{ // throw new ApplicationException("The procedure " + command + " has been flagged as being updated to accept GlobalInputs but the call to FetchDataTable did not include GlobalInputs. Please modify your call. Contact Wesley or Michael for further info."); //} //******* 20121029 DHB Stop code changes. if (!parms.Contains("GlobalInputs")) { SqlParameter param = new SqlParameter("GlobalInputs", SqlDbType.Structured); param.Value = globalInputs.ToDataTable(); parms.Add(param); } return parms; } return parms; }
private static DataSet RunThread2(string command, object[] parms, drGeneric_String_String gi, int? timeout = null) { // Create the delegate. AsynchDataSet2 caller = new AsynchDataSet2(GetDataSet); // Initiate the asychronous call. IAsyncResult result = caller.BeginInvoke(command, parms, gi, timeout, null, null); // Wait for the WaitHandle to become signaled. result.AsyncWaitHandle.WaitOne(); // Call EndInvoke to retrieve the results. DataSet dResult = caller.EndInvoke(result); // Close the wait handle. result.AsyncWaitHandle.Close(); caller = null; result = null; return dResult; }
private static DataTable GetDataTable(string ConnectionString, string CommandText, CommandType commType, SqlParameterCollection Parameters, drGeneric_String_String gi) { DataTable dt = new DataTable(); using (SqlConnection conn = new SqlConnection(string.IsNullOrEmpty(ConnectionString) ?AppSettings.ConnectionString:ConnectionString)) { using (SqlCommand comm = new SqlCommand(CommandText, conn)) { Parameters = ThreadSafeDetermineParms(comm.CommandText, Parameters, gi); comm.CommandTimeout = 60; comm.CommandType = commType; foreach (SqlParameter parm in Parameters) { comm.Parameters.AddWithValue(parm.ParameterName, parm.Value); comm.Parameters[parm.ParameterName].TypeName = parm.TypeName; comm.Parameters[parm.ParameterName].SqlDbType = parm.SqlDbType; } using (SqlDataAdapter da = new SqlDataAdapter(comm)) { if (AppSettings.IsLoggingEnabled) { Log(comm.CommandText, Parameters, true); da.Fill(dt); Log(comm.CommandText, Parameters, false); } else { da.Fill(dt); } } } } return dt; }
private static DataSet GetDataSet(string command, object[] parms, drGeneric_String_String gi, int? timeout = null) { var criteria = GetDataCriteria(criteriaType.OperationsDataCriteria); if (timeout.HasValue) criteria.TemporaryTimeout = timeout; criteria.InputParameters = ThreadSafeDetermineParms(command, parms, gi); criteria.ReadCommand = command; DataSet result; if (AppSettings.IsLoggingEnabled) { Log(command, parms, true); result = FetchDataSet(criteria); Log(command, parms, false); } else { result = FetchDataSet(criteria); } return result; }
private static bool ExecuteProcedure2(string command, object[] parms, drGeneric_String_String gi, int? timeout = null) { var criteria = GetDataCriteria(criteriaType.OperationsDataCriteria); if (timeout.HasValue) criteria.TemporaryTimeout = timeout; criteria.UpdateCommand = command; criteria.InputParameters = ThreadSafeDetermineParms(command, parms, gi); if (AppSettings.IsLoggingEnabled) { Log(command, parms, true); UpdateRecord(criteria); Log(command, parms, false); } else { UpdateRecord(criteria); } return true; }
protected void BtnImpersonateClick(object sender, EventArgs e) { lblError.Text = ""; lblError.Visible = false; SessObj = (SessionObject)Session["SessionObject"]; if (SessObj == null || SessObj.LoggedInUser == null) { Session.Abandon(); return; } string message = ""; if (String.IsNullOrEmpty(UserToImpersonate.Text) || String.IsNullOrEmpty(ImpersonatePW.Text)) { lblError.Text = "Please enter a valid username and password"; lblError.Visible = true; }else{ var distParms = DistrictParms.LoadDistrictParms(); string uid = UserToImpersonate.Text; lblError.Text = ""; lblError.Visible = false; if (SessObj.LoggedInUser.HasPermission(Permission.Access_ImpersonateUserAccess) && distParms.ImpersonateUserAccess && Encryption.EncryptString(ImpersonatePW.Text).Equals(distParms.ImpersonateUserAccessPW)) { message = "User:"******" is now impersonating user:"******"GlobalInputs"] is no longer referenced in the code. Please use AppSettings.GlobalInputs instead. SessObj.GlobalInputs = gi; Session["GlobalInputs"] = gi; //******* 20121029 DHB Stop code changes. MembershipUser user = Membership.GetUser(uid); if (user == null) { lblError.Text = "Username " + uid + " not found"; lblError.Visible = true; return; } SessObj.LoggedInUser = new ThinkgateUser(user); gi.Add("UserID", SessObj.LoggedInUser.UserId.ToString()); gi.Add("UserPage", SessObj.LoggedInUser.Page.ToString()); gi.Add("UserName", SessObj.LoggedInUser.UserName); Session["SessionObject"] = SessObj; ThinkgateEventSource.Log.ApplicationEvent(MethodBase.GetCurrentMethod().DeclaringType.ToString() + "->" + MethodBase.GetCurrentMethod().Name, message, "IMPERSONATION"); Standpoint.Core.Security.UserImpersonation.ImpersonateUser(uid, "~/PortalSelection.aspx"); Response.Redirect("~/PortalSelection.aspx", true); } else { lblError.Text = "Error, you do not have access to impersonate."; lblError.Visible = true; message = "User:"******" just attempted to impersonate user:"******"->" + MethodBase.GetCurrentMethod().Name, message); } } }
private static SqlParameterCollection ThreadSafeDetermineParms(string command, SqlParameterCollection parms, drGeneric_String_String globalInputs) { if (NonUpdatedProcedures.Instance.IsProcedureUpdated(command)) { //******* 20121029 DHB Start code changes. //if (AppSettings.GlobalInputs == null) //{ // throw new ApplicationException("The procedure " + command + " has been flagged as being updated to accept GlobalInputs but the call to FetchDataTable did not include GlobalInputs. Please modify your call. Contact Wesley or Michael for further info."); //} //******* 20121029 DHB Stop code changes. if (!parms.Contains("GlobalInputs")) { SqlParameter param = new SqlParameter("GlobalInputs", SqlDbType.Structured); param.Value = globalInputs.ToDataTable(); parms.Add(param); } return(parms); } return(parms); }
private static object[] ThreadSafeDetermineParms(string command, object[] parms, drGeneric_String_String globalInputs) { if (NonUpdatedProcedures.Instance.IsProcedureUpdated(command)) { if (globalInputs == null) { throw new ApplicationException("The procedure " + command + " has been flagged as being updated to accept GlobalInputs but the call to FetchDataTable did not include GlobalInputs. Please modify your call. Contact Wesley or Michael for further info."); } var new_parms = new object[parms.Length + 1]; parms.CopyTo(new_parms, 1); new_parms[0] = globalInputs.ToSql(); return new_parms; } return parms; }
public static DataTable FetchDataTable(string ConnectionString, string CommandText, CommandType commType, SqlParameterCollection Parameters, drGeneric_String_String gi) { DataTable dResult = RunThread(ConnectionString, CommandText, commType, Parameters, gi); return dResult != null ? dResult : null; }
public static DataTable FetchDataTable(string command, object[] parms, drGeneric_String_String globalInputs, int? timeout = null) { DataResult dResult = RunThread(command, parms, globalInputs, timeout); return dResult != null ? dResult.DataTable : null; }
private static DataSet GetDataSet(string ConnectionString, string CommandText, CommandType commType, SqlParameterCollection Parameters, drGeneric_String_String gi) { DataSet ds = new DataSet(); using (SqlConnection conn = new SqlConnection(string.IsNullOrEmpty(ConnectionString) ? AppSettings.ConnectionString : ConnectionString)) { using (SqlCommand comm = new SqlCommand(CommandText, conn)) { Parameters = ThreadSafeDetermineParms(comm.CommandText, Parameters, gi); comm.CommandTimeout = 60; comm.CommandType = commType; foreach (SqlParameter parm in Parameters) { comm.Parameters.AddWithValue(parm.ParameterName, parm.Value); comm.Parameters[parm.ParameterName].TypeName = parm.TypeName; comm.Parameters[parm.ParameterName].SqlDbType = parm.SqlDbType; } using (SqlDataAdapter da = new SqlDataAdapter(comm)) { if (AppSettings.IsLoggingEnabled) { Log(comm.CommandText, Parameters, true); da.Fill(ds); Log(comm.CommandText, Parameters, false); } else { da.Fill(ds); } } } } return(ds); }
/// <summary> /// Builds the QuestionSearchCriteria. Used both from Search Button and from Service /// </summary> public static ItemImageSearchCriteriaV2 BuildSearchCriteriaObject(ThinkgateUser user, CriteriaController criteriaController, string requestedSortField = null) { /* Sort */ string sortField = null; NameValue nvSortField = SortFields().Find(x => x.Name == requestedSortField); // ensure that the user given value for sort is in the defined list of options if (nvSortField != null) sortField = nvSortField.Value; /* Item Banks - Remove from master list based on filter if given */ var itemBanks = ItemBankMasterList.GetItemBanksForUser(user); var selectedItemBanks = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("ItemBank").Select(x => x.Text); if (selectedItemBanks.Any()) itemBanks.DeleteByLabel(selectedItemBanks); /* Text Search */ string searchText = string.Empty; string searchOption = string.Empty; var txtSearchList = criteriaController.ParseCriteria<TextWithDropdown.ValueObject>("TextSearch"); if (txtSearchList.Count > 0) { // we ensure that the value the user gave us for text search type is a valid option var confirmedOption = TextSearchDropdownValues().Find(x => x.Name == txtSearchList[0].Option) ?? TextSearchDropdownValues().First(); if (!String.IsNullOrEmpty(txtSearchList[0].Text)) { searchText = txtSearchList[0].Text; searchOption = confirmedOption.Value; } } /* Courses */ var selectedGrades = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("Grade").Select(x => x.Text).ToList(); var selectedSubjects = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("Subject").Select(x => x.Text).ToList(); var selectedCourses = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("Course").Select(x => x.Text).ToList(); var selectedStandardSets = new drGeneric_String(criteriaController.ParseCriteria<CheckBoxList.ValueObject>("StandardSet").Select(x => x.Text)); // take straight to drGeneric_String because it's going to SQL var filteredCourses = CourseMasterList.GetStandardCoursesForUser(user).FilterByGradesSubjectsStandardSetsAndCourse(selectedGrades, selectedSubjects, selectedStandardSets, selectedCourses); var selectedExpirationStatus = criteriaController.ParseCriteria<DropDownList.ValueObject>("ExpirationStatus").FirstOrDefault() != null ? criteriaController.ParseCriteria<DropDownList.ValueObject>("ExpirationStatus").FirstOrDefault().Value : "I"; if (!ShowExpiredItems) { selectedExpirationStatus = "E"; } drGeneric_String_String selectedExpirationDateRange = new drGeneric_String_String(); foreach (var val in criteriaController.ParseCriteria<DateRange.ValueObject>("ExpirationDateRange")) { selectedExpirationDateRange.Add(val.Type == "Start" ? "CreatedDateStart" : "CreatedDateEnd", val.Date); } /* Build Criteria Object */ var asc = new ItemImageSearchCriteriaV2() { ItemBanks = itemBanks, StandardCourses = filteredCourses, TextWords = searchText, TextWordsOpt = searchOption, GradeLimited = selectedGrades.Count > 0, SubjectLimited = selectedSubjects.Count > 0, CourseLimited = selectedCourses.Count > 0, SortBy = sortField == "ItemBank" || sortField == "Standard" ? null : sortField, ExpirationStatus = selectedExpirationStatus, ExpirationDateRange = selectedExpirationDateRange }; return asc; }
public static DataTable FetchDataTable(string command, object[] parms, drGeneric_String_String globalInputs, int?timeout = null) { DataResult dResult = RunThread(command, parms, globalInputs, timeout); return(dResult != null ? dResult.DataTable : null); }
protected void Page_Load(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); Stopwatch stopwatch = new Stopwatch(); // Begin timing drGeneric_String_String dr1 = new drGeneric_String_String(); stopwatch.Start(); for (var x = 0; x < 100; x++) { //CourseList classCourses = CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser); //DataTable temp = ThinkgateDataAccess.FetchDataTable("E3_WesTempTest", new object[] { classCourses.ToSql() }); //dr1 = ThinkgateDataAccess.wesTest(); } /*foreach (Course c in classCourses) { Console.WriteLine(c.Subject); }*/ stopwatch.Stop(); sb.Append("X: " + dr1[1].Value + "<br/>"); sb.Append("A: " + stopwatch.Elapsed + "<br/>"); drGeneric_String_String dr2 = new drGeneric_String_String(); stopwatch.Reset(); stopwatch.Start(); for (var y = 0; y < 100; y++) { /*DataTable classCoursesX = CourseMasterList2.GetClassCoursesForUser(SessionObject.LoggedInUser); dtGeneric_Int x1 = new dtGeneric_Int(); foreach (DataRow row in classCoursesX.Rows) { x1.Add(DataIntegrity.ConvertToInt(row["ID"])); } DataTable temp4 = ThinkgateDataAccess.FetchDataTable("E3_WesTempTest", new object[] { x1.ToSql() }); */ //dr2 = ThinkgateDataAccess.wesTest2(); } stopwatch.Stop(); sb.Append("X: " + dr2[1].Value + "<br/>"); sb.Append("G: " + stopwatch.Elapsed + "<br/>"); dtGeneric_String_String dt1 = new dtGeneric_String_String(); stopwatch.Reset(); stopwatch.Start(); for (var y = 0; y < 100; y++) { /*DataTable classCoursesX = CourseMasterList2.GetClassCoursesForUser(SessionObject.LoggedInUser); dtGeneric_Int x1 = new dtGeneric_Int(); foreach (DataRow row in classCoursesX.Rows) { x1.Add(DataIntegrity.ConvertToInt(row["ID"])); } DataTable temp4 = ThinkgateDataAccess.FetchDataTable("E3_WesTempTest", new object[] { x1.ToSql() }); */ //dt1 = ThinkgateDataAccess.wesTest3(); } stopwatch.Stop(); sb.Append("X: " + dt1.Rows[1]["Value"].ToString() + "<br/>"); sb.Append("H: " + stopwatch.Elapsed + "<br/>"); resultDiv.InnerHtml = sb.ToString(); }