예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
            }
        }
예제 #7
0
        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);
        }
예제 #8
0
        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();
                    }
                }
            }
        }
예제 #9
0
        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);
        }
예제 #10
0
        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;
        }
예제 #11
0
        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;
        }
예제 #12
0
        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;
        }
예제 #13
0
        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;
        }
예제 #14
0
        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();
                    }
                }
            }
        }
예제 #15
0
        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);
                }
            }
        }
예제 #17
0
        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);
        }
예제 #18
0
        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;
        }
예제 #19
0
 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;
 }
예제 #20
0
 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;
 }
예제 #21
0
        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;
        }
예제 #23
0
        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();

        }