protected void Page_Load(object sender, EventArgs e)
        {
            dvMessage.Visible = false;
            lblErrorMsg.Text  = "";

            hfProjectId.Value = "0";

            ProjectNotesSetUp();
            GenerateTabs();

            if (!IsPostBack)
            {
                PopulateProjectDetails();

                dvImport.Visible = false;
                BindControls();

                dvNewSource.Visible = false;
                dvConsevationSourcesGrid.Visible = false;

                dvNewUse.Visible = false;
                dvConsevationUsesGrid.Visible = false;

                ddlBudgetPeriod.SelectedValue = ConservationSourcesUsesData.GetLatestBudgetPeriod(DataUtils.GetInt(hfProjectId.Value)).ToString();
                BudgetPeriodSelectionChanged();
            }
        }
        private void BudgetPeriodSelectionChanged()
        {
            if (ddlBudgetPeriod.SelectedIndex != 0)
            {
                //Sources
                ClearAddSourceForm();
                dvNewSource.Visible = true;
                BindSourcegrid();
                cbAddSource.Checked = false;

                //Uses
                dvNewUse.Visible = true;
                BindUsesgrid();
                cbAddUse.Checked = false;

                dvImport.Visible = false;

                DataTable dtImportBudgetPeriods = ConservationSourcesUsesData.PopulateImportBudgetPeriodDropDown(DataUtils.GetInt(hfProjectId.Value),
                                                                                                                 DataUtils.GetInt(ddlBudgetPeriod.SelectedValue.ToString()));

                if (dtImportBudgetPeriods.Rows.Count > 0)
                {
                    dvImport.Visible = true;
                    ddlImportFrom.Items.Clear();
                    ddlImportFrom.DataSource     = dtImportBudgetPeriods;
                    ddlImportFrom.DataValueField = "typeid";
                    ddlImportFrom.DataTextField  = "description";
                    ddlImportFrom.DataBind();
                    ddlImportFrom.Items.Insert(0, new ListItem("Select", "NA"));
                }

                //if (ddlBudgetPeriod.SelectedIndex == 1
                //    || (gvConsevationSources.Rows.Count > 0 || gvConservationUsesGrid.Rows.Count > 0))
                //    dvImport.Visible = false;
                //else if (ddlBudgetPeriod.SelectedIndex == 2)
                //{
                //    dvImport.Visible = true;
                //    ddlImportFrom.Items.Clear();
                //    ddlImportFrom.Items.Insert(0, new ListItem("Select", "NA"));
                //    ddlImportFrom.Items.Insert(1, new ListItem("Budget Period 1", "26083"));
                //}
                //else if (ddlBudgetPeriod.SelectedIndex == 3)
                //{
                //    dvImport.Visible = true;
                //    ddlImportFrom.Items.Clear();
                //    ddlImportFrom.Items.Insert(0, new ListItem("Select", "NA"));
                //    ddlImportFrom.Items.Insert(1, new ListItem("Budget Period 1", "26083"));
                //    ddlImportFrom.Items.Insert(2, new ListItem("Budget Period 2", "26084"));
                //}
            }
            else
            {
                //Sources
                dvNewSource.Visible = false;
                dvConsevationSourcesGrid.Visible = false;

                //Uses
                dvNewUse.Visible = false;
                dvConsevationUsesGrid.Visible = false;

                //Import From
                dvImport.Visible = false;
            }
        }
        private DataTable GetWaits()
        {
            using (SqlConnection conn = new SqlConnection())
            {
                conn.ConnectionString = ConnectionInfo.ConnectionString;
                conn.Open();
                // Calculate waits since instance restart
                string sql = @"
                    WITH [Waits] 
                    AS (
	                    SELECT wait_type, wait_time_ms/ 1000.0 AS [WaitS],
                              (wait_time_ms - signal_wait_time_ms) / 1000.0 AS [ResourceS],
                               signal_wait_time_ms / 1000.0 AS [SignalS],
                               waiting_tasks_count AS [WaitCount]
                        FROM sys.dm_os_wait_stats WITH (NOLOCK)
                        WHERE [wait_type] NOT IN (
                            N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR', N'BROKER_TASK_STOP',
		                    N'BROKER_TO_FLUSH', N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE',
                            N'CHKPT', N'CLR_AUTO_EVENT', N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE',
                            N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE', N'DBMIRROR_WORKER_QUEUE',
		                    N'DBMIRRORING_CMD', N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE',
                            N'EXECSYNC', N'FSAGENT', N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',
                            N'HADR_CLUSAPI_CALL', N'HADR_FILESTREAM_IOMGR_IOCOMPLETION', N'HADR_LOGCAPTURE_WAIT', 
		                    N'HADR_NOTIFICATION_DEQUEUE', N'HADR_TIMER_TASK', N'HADR_WORK_QUEUE',
                            N'KSOURCE_WAKEUP', N'LAZYWRITER_SLEEP', N'LOGMGR_QUEUE', 
		                    N'MEMORY_ALLOCATION_EXT', N'ONDEMAND_TASK_QUEUE',
		                    N'PARALLEL_REDO_DRAIN_WORKER', N'PARALLEL_REDO_LOG_CACHE', N'PARALLEL_REDO_TRAN_LIST',
		                    N'PARALLEL_REDO_WORKER_SYNC', N'PARALLEL_REDO_WORKER_WAIT_WORK',
		                    N'PREEMPTIVE_HADR_LEASE_MECHANISM', N'PREEMPTIVE_SP_SERVER_DIAGNOSTICS',
		                    N'PREEMPTIVE_OS_LIBRARYOPS', N'PREEMPTIVE_OS_COMOPS', N'PREEMPTIVE_OS_CRYPTOPS',
		                    N'PREEMPTIVE_OS_PIPEOPS', N'PREEMPTIVE_OS_AUTHENTICATIONOPS',
		                    N'PREEMPTIVE_OS_GENERICOPS', N'PREEMPTIVE_OS_VERIFYTRUST',
		                    N'PREEMPTIVE_OS_FILEOPS', N'PREEMPTIVE_OS_DEVICEOPS', N'PREEMPTIVE_OS_QUERYREGISTRY',
		                    N'PREEMPTIVE_OS_WRITEFILE',
		                    N'PREEMPTIVE_XE_CALLBACKEXECUTE', N'PREEMPTIVE_XE_DISPATCHER',
		                    N'PREEMPTIVE_XE_GETTARGETSTATE', N'PREEMPTIVE_XE_SESSIONCOMMIT',
		                    N'PREEMPTIVE_XE_TARGETINIT', N'PREEMPTIVE_XE_TARGETFINALIZE',
                            N'PWAIT_ALL_COMPONENTS_INITIALIZED', N'PWAIT_DIRECTLOGCONSUMER_GETNEXT',
		                    N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP',
		                    N'QDS_ASYNC_QUEUE',
                            N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP', N'REQUEST_FOR_DEADLOCK_SEARCH',
		                    N'RESOURCE_QUEUE', N'SERVER_IDLE_CHECK', N'SLEEP_BPOOL_FLUSH', N'SLEEP_DBSTARTUP',
		                    N'SLEEP_DCOMSTARTUP', N'SLEEP_MASTERDBREADY', N'SLEEP_MASTERMDREADY',
                            N'SLEEP_MASTERUPGRADED', N'SLEEP_MSDBSTARTUP', N'SLEEP_SYSTEMTASK', N'SLEEP_TASK',
                            N'SLEEP_TEMPDBSTARTUP', N'SNI_HTTP_ACCEPT', N'SP_SERVER_DIAGNOSTICS_SLEEP',
		                    N'SQLTRACE_BUFFER_FLUSH', N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP', N'SQLTRACE_WAIT_ENTRIES',
		                    N'WAIT_FOR_RESULTS', N'WAITFOR', N'WAITFOR_TASKSHUTDOWN', N'WAIT_XTP_HOST_WAIT',
		                    N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG', N'WAIT_XTP_CKPT_CLOSE', N'WAIT_XTP_RECOVERY',
		                    N'XE_BUFFERMGR_ALLPROCESSED_EVENT', N'XE_DISPATCHER_JOIN',
                            N'XE_DISPATCHER_WAIT', N'XE_LIVE_TARGET_TVF', N'XE_TIMER_EVENT')
                        AND waiting_tasks_count > 0
                    )
                    SELECT
	                    W1.wait_type,
                        CAST (MAX (W1.WaitS) AS DECIMAL (16,2)) AS [wait_sec],
                        CAST (MAX (W1.ResourceS) AS DECIMAL (16,2)) AS [resource_sec],
                        CAST (MAX (W1.SignalS) AS DECIMAL (16,2)) AS [signal_sec],
                        MAX (W1.WaitCount) AS [wait_count]
                    FROM Waits AS W1
                    GROUP BY W1.wait_type
                    HAVING CAST (MAX (W1.WaitS) AS DECIMAL (16,2)) > 0
                    ORDER BY wait_sec DESC
                    OPTION (RECOMPILE);
                ";

                DataTable waits = null;

                using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conn))
                {
                    using (DataSet ds = new DataSet())
                    {
                        adapter.Fill(ds);
                        waits = ds.Tables[0];
                    }
                }

                var results = from table1 in waits.AsEnumerable()
                              select new
                {
                    wait_type    = Convert.ToString(table1["wait_type"]),
                    wait_sec     = Convert.ToDouble(table1["wait_sec"]),
                    resource_sec = Convert.ToDouble(table1["resource_sec"]),
                    signal_sec   = Convert.ToDouble(table1["signal_sec"]),
                    wait_count   = Convert.ToDouble(table1["wait_count"])
                };

                return(DataUtils.ToDataTable(results));
            }
        }
Exemple #4
0
        public bool InitFilter(TagHelperContext context, TagHelperOutput output)
        {
            var isSuccess = true;

            #region << Init Props >>
            if (String.IsNullOrWhiteSpace(Name))
            {
                InitErrors.Add("Name attribute is required for wv-filter TagHelper!");
            }
            UrlQueryOfType   = $"{Prefix}q_{Name}_t";
            UrlQueryOfValue  = $"{Prefix}q_{Name}_v";
            UrlQueryOfValue2 = $"{Prefix}q_{Name}_v2";

            if (FilterId == Guid.Empty)
            {
                FilterId = Guid.NewGuid();
            }

            #endregion

            #region << Init Values >>

            #region << Preinit from URL - type,value,value2 >>
            var urlQueryDict = ViewContext.HttpContext.Request.Query;

            if (urlQueryDict.ContainsKey(UrlQueryOfType))
            {
                if (Enum.TryParse(urlQueryDict[UrlQueryOfType], out FilterType result))
                {
                    QueryType = result;
                }
            }

            if (urlQueryDict.ContainsKey(UrlQueryOfValue))
            {
                Value = (string)urlQueryDict[UrlQueryOfValue];
            }

            if (urlQueryDict.ContainsKey(UrlQueryOfValue2))
            {
                Value2 = (string)urlQueryDict[UrlQueryOfValue2];
            }
            #endregion

            #region << Convert to proper type = value, value2 >>
            var     tagName      = context.TagName;
            dynamic valueResult  = null;
            dynamic value2Result = null;
            var     errorList    = new List <string>();
            var     error2List   = new List <string>();
            var     fieldType    = FieldType.TextField;
            switch (context.TagName)
            {
            case "wv-filter-autonumber":
                fieldType = FieldType.AutoNumberField;
                break;

            case "wv-filter-checkbox":
                fieldType = FieldType.CheckboxField;
                break;

            case "wv-filter-currency":
                fieldType = FieldType.CurrencyField;
                break;

            case "wv-filter-date":
                fieldType = FieldType.DateField;
                break;

            case "wv-filter-datetime":
                fieldType = FieldType.DateTimeField;
                break;

            case "wv-filter-email":
                fieldType = FieldType.EmailField;
                break;

            case "wv-filter-file":
                fieldType = FieldType.FileField;
                break;

            case "wv-filter-guid":
                fieldType = FieldType.GuidField;
                break;

            case "wv-filter-html":
                fieldType = FieldType.HtmlField;
                break;

            case "wv-filter-image":
                fieldType = FieldType.ImageField;
                break;

            case "wv-filter-textarea":
                fieldType = FieldType.MultiLineTextField;
                break;

            case "wv-filter-multiselect":
                fieldType = FieldType.MultiSelectField;
                break;

            case "wv-filter-number":
                fieldType = FieldType.NumberField;
                break;

            case "wv-filter-percent":
                fieldType = FieldType.NumberField;
                break;

            case "wv-filter-phone":
                fieldType = FieldType.PhoneField;
                break;

            case "wv-filter-select":
                fieldType = FieldType.SelectField;
                break;

            case "wv-filter-url":
                fieldType = FieldType.UrlField;
                break;

            default:
                fieldType = FieldType.TextField;
                break;
            }

            DataUtils.ValidateValueToFieldType(fieldType, Value, out valueResult, out errorList);
            Value = valueResult;
            if (errorList.Count > 0)
            {
                Value = null;
            }

            DataUtils.ValidateValueToFieldType(fieldType, Value2, out value2Result, out error2List);
            Value2 = value2Result;
            if (error2List.Count > 0)
            {
                foreach (var error in error2List)
                {
                    InitErrors.Add(error);
                }
            }
            if (QueryOptions == null)
            {
                QueryOptions = new List <FilterType>();
            }

            if (QueryOptions.Count == 0)
            {
                QueryOptions = DataUtils.GetFilterTypesForFieldType(fieldType);
            }

            if (QueryType == FilterType.Undefined)
            {
                //If options has EQ selected
                if (QueryOptions.Any(x => x == FilterType.EQ))
                {
                    QueryType = FilterType.EQ;
                }
                //If not select the first in the options
                else if (QueryOptions.Any())
                {
                    QueryType = QueryOptions.First();
                }
            }

            #endregion


            #region << Render >>
            output.TagName = "div";
            output.AddCssClass("erp-field form-group erp-filter");
            output.Attributes.Add("id", $"erp-filter-{FilterId}");
            output.Attributes.Add("data-name", $"{Name}");
            output.Attributes.Add("data-prefix", $"{Prefix}");
            output.Attributes.Add("data-filter-id", $"{FilterId}");

            var labelEl = new TagBuilder("label");
            labelEl.AddCssClass("control-label");
            if (!String.IsNullOrWhiteSpace(Label))
            {
                labelEl.InnerHtml.AppendHtml(Label);
            }
            else
            {
                labelEl.InnerHtml.AppendHtml(Name);
            }
            var clearLink = new TagBuilder("a");
            clearLink.AddCssClass("clear-filter action");
            clearLink.Attributes.Add("href", "javascript:void(0)");
            clearLink.InnerHtml.Append("clear");

            if ((Value == null || Value.ToString() == "") && (Value2 == null || Value2.ToString() == ""))
            {
                clearLink.AddCssClass("d-none");
            }
            labelEl.InnerHtml.AppendHtml(clearLink);

            output.PreContent.AppendHtml(labelEl);



            #region << if Init Errors >>
            if (InitErrors.Count > 0)
            {
                var errorListEl = new TagBuilder("ul");
                errorListEl.AddCssClass("erp-error-list list-unstyled");
                foreach (var error in InitErrors)
                {
                    var errorEl = new TagBuilder("li");
                    errorEl.AddCssClass("go-red");

                    var iconEl = new TagBuilder("span");
                    iconEl.AddCssClass("fa fa-fw fa-exclamation");

                    errorEl.InnerHtml.AppendHtml(iconEl);
                    errorEl.InnerHtml.Append($"Error: {error}");

                    errorListEl.InnerHtml.AppendHtml(errorEl);
                }
                output.PostContent.AppendHtml(errorListEl);
                return(false);
            }
            #endregion

            #endregion


            #endregion

            #region << Query Type Select >>

            if (QueryOptions.Count > 1)
            {
                FilterTypeSelect = new TagBuilder("select");
                FilterTypeSelect.AddCssClass("form-control erp-filter-rule");
                FilterTypeSelect.Attributes.Add("name", $"{UrlQueryOfType}");
                foreach (var typeOption in QueryOptions)
                {
                    var optionEl = new TagBuilder("option");
                    optionEl.Attributes.Add("value", typeOption.ToString());
                    optionEl.InnerHtml.Append(typeOption.GetLabel());
                    if (QueryType == typeOption)
                    {
                        optionEl.Attributes.Add("selected", null);
                    }
                    FilterTypeSelect.InnerHtml.AppendHtml(optionEl);
                }
            }
            else
            {
                //If 1
                FilterTypeSelect = new TagBuilder("span");
                FilterTypeSelect.AddCssClass($"input-group-prepend erp-filter-rule");
                var prependText = new TagBuilder("span");
                prependText.AddCssClass("input-group-text");
                prependText.InnerHtml.AppendHtml(QueryOptions.First().GetLabel());
                FilterTypeSelect.InnerHtml.AppendHtml(prependText);

                var hiddenInput = new TagBuilder("input");
                hiddenInput.Attributes.Add("type", "hidden");
                hiddenInput.Attributes.Add("value", QueryOptions.First().ToString());
                hiddenInput.Attributes.Add("name", $"{UrlQueryOfType}");
                FilterTypeSelect.InnerHtml.AppendHtml(hiddenInput);
            }

            #endregion

            #region << ValueTextControl >>
            {
                ValueTextControl = new TagBuilder("input");
                ValueTextControl.AddCssClass("form-control value");
                if (QueryType != FilterType.BETWEEN && QueryType != FilterType.NOTBETWEEN)
                {
                    ValueTextControl.AddCssClass("rounded-right");
                }
                ValueTextControl.Attributes.Add("value", (Value ?? "").ToString());
                ValueTextControl.Attributes.Add("type", "text");
                ValueTextControl.Attributes.Add("name", UrlQueryOfValue);
            }
            #endregion

            #region << ValueNumberControl >>
            {
                ValueNumberControl = new TagBuilder("input");
                ValueNumberControl.AddCssClass("form-control value");
                if (QueryType != FilterType.BETWEEN && QueryType != FilterType.NOTBETWEEN)
                {
                    ValueNumberControl.AddCssClass("rounded-right");
                }
                ValueNumberControl.Attributes.Add("value", (Value ?? "").ToString());
                ValueNumberControl.Attributes.Add("type", "number");
                ValueNumberControl.Attributes.Add("name", UrlQueryOfValue);
            }
            #endregion

            #region << Value2NumberControl >>
            {
                Value2NumberControl = new TagBuilder("input");
                Value2NumberControl.Attributes.Add("value", (Value2 ?? "").ToString());
                Value2NumberControl.AddCssClass("form-control value2");
                Value2NumberControl.Attributes.Add("type", "number");
                if (QueryType == FilterType.BETWEEN || QueryType == FilterType.NOTBETWEEN)
                {
                    Value2NumberControl.Attributes.Add("name", UrlQueryOfValue2);
                }
                else
                {
                    Value2NumberControl.AddCssClass("d-none");
                }
            }
            #endregion

            #region << AndDivider >>
            {
                AndDivider = new TagBuilder("span");
                AndDivider.AddCssClass($"input-group-prepend input-group-append erp-filter-divider");
                if (QueryType != FilterType.BETWEEN && QueryType != FilterType.NOTBETWEEN)
                {
                    AndDivider.AddCssClass("d-none");
                }
                var prependText = new TagBuilder("span");
                prependText.AddCssClass("input-group-text divider");
                prependText.InnerHtml.Append("&");
                AndDivider.InnerHtml.AppendHtml(prependText);
            }
            #endregion

            var jsCompressor = new JavaScriptCompressor();

            #region << Init Scripts >>
            var tagHelperInitialized = false;
            if (ViewContext.HttpContext.Items.ContainsKey(typeof(WvFilterBase) + "-base"))
            {
                var tagHelperContext = (WvTagHelperContext)ViewContext.HttpContext.Items[typeof(WvFilterBase) + "-base"];
                tagHelperInitialized = tagHelperContext.Initialized;
            }
            if (!tagHelperInitialized)
            {
                var scriptContent = FileService.GetEmbeddedTextResource("base.js", "WebVella.Erp.Web.TagHelpers.WvFilterBase");
                var scriptEl      = new TagBuilder("script");
                scriptEl.Attributes.Add("type", "text/javascript");
                scriptEl.InnerHtml.AppendHtml(jsCompressor.Compress(scriptContent));
                output.PostContent.AppendHtml(scriptEl);

                ViewContext.HttpContext.Items[typeof(WvFilterBase) + "-base"] = new WvTagHelperContext()
                {
                    Initialized = true
                };
            }
            #endregion

            #region << Add Inline Init Script for this instance >>
            var initScript = new TagBuilder("script");
            initScript.Attributes.Add("type", "text/javascript");
            var scriptTemplate = @"
						$(function(){
							BaseFilterInit(""{{FilterId}}"",""{{Value2InputName}}"");
						});"                        ;
            scriptTemplate = scriptTemplate.Replace("{{FilterId}}", FilterId.ToString());
            scriptTemplate = scriptTemplate.Replace("{{Value2InputName}}", UrlQueryOfValue2.ToString());
            initScript.InnerHtml.AppendHtml(jsCompressor.Compress(scriptTemplate));

            output.PostContent.AppendHtml(initScript);
            #endregion



            return(isSuccess);
        }
        /// <summary>
        /// Main sequence analysis loop, or an "Analysis Pass". This method "passes" through the sequence step by step,
        /// keeps track of the sequence structurally (scope list, scope dictionary),
        /// and fires delegates for each step and for completion.
        /// </summary>
        /// <param name="sequence"></param>
        /// <param name="onStepScope"></param>
        /// <param name="onSequenceComplete"></param>
        private void zAnalyzeSequence(List <Step> sequence, Func <Step, bool> onStepScope, Action onSequenceComplete)
        {
            //Make sure this SequenceAnalyzer is not being used by another thread. It is not thread safe! All concurrent usage must be done on separate instances.
            if (m_ExecutionStack != null)
            {
                throw new InvalidOperationException("A zAnalyzeSequence call is already in progress. If you need to use this method concurrently, use a separate SequenceAnalyzer instance for each concurrent call.");
            }

            try
            {
                if (sequence.Count > 0)
                {
                    m_ExecutionStack              = new ExecutionStack();
                    m_ExecutionStack.BranchEnded += m_ExecutionStack_BranchEnded;
                    m_ExecutionStack.SetSequence(sequence);

                    zSetCurrentScope(new StepScope(DataScope.RootScopeName,
                                                   DataScope.RootScopeName,
                                                   null,
                                                   m_ExecutionStack.CurrentBranch));

                    do
                    {
                        if (onStepScope != null && !onStepScope(m_ExecutionStack.CurrentStep))
                        {
                            break;
                        }

                        if (m_ExecutionStack.CurrentStep is GetValueStep)
                        {
                            GetValueStep getValueStep = (GetValueStep)m_ExecutionStack.CurrentStep;
                            zAddVariableToScopeFromGetValueStep(getValueStep);
                        }

                        if (m_ExecutionStack.CurrentStep is DatabaseStep)
                        {
                            DatabaseStep databaseStep = (DatabaseStep)m_ExecutionStack.CurrentStep;
                            zAddVariablesToScopeFromDatabaseStep(databaseStep);
                        }

                        if (m_ExecutionStack.CurrentStep is GroupStep)
                        {
                            GroupStep groupStep = (GroupStep)m_ExecutionStack.CurrentStep;
                            if (groupStep.Steps.Count > 0)
                            {
                                m_ExecutionStack.SetNewBranch(groupStep.Steps);
                            }

                            if (groupStep.Iteration is ObjectSetIteration && groupStep.Iteration.IsSetIteration)
                            {
                                ObjectSetIteration objectSetIteration = (ObjectSetIteration)groupStep.Iteration;

                                if (objectSetIteration is ElementSetIteration)
                                {
                                    ElementSetIteration elementSetIteration = (ElementSetIteration)objectSetIteration;
                                    zAddVariableToScopeFromElementSetIteration(elementSetIteration);
                                }

                                if (groupStep.Steps.Count > 0)
                                {
                                    string    newScopeCacheKey = zGetCacheKey(m_CurrentScope.ScopeName, objectSetIteration.ObjectSetListName);
                                    StepScope newScope         = new StepScope(objectSetIteration.ObjectSetScopeName,
                                                                               objectSetIteration.ObjectSetClassName,
                                                                               newScopeCacheKey,
                                                                               m_ExecutionStack.PendingBranch);

                                    if (objectSetIteration is DataSetIteration)
                                    {
                                        List <StateVariableInfo> cacheList;
                                        if (newScope.CacheKey != null && m_ElementSetVariableListCache.TryGetValue(newScope.CacheKey, out cacheList))
                                        {
                                            foreach (StateVariableInfo cachedVariable in cacheList)
                                            {
                                                if (newScope.ClassName == null || DataUtils.GetVariableNameScope(cachedVariable.StateVariableName) == newScope.ClassName)
                                                {
                                                    StateVariableInfo variableForNewScope = zRescopeVariable(cachedVariable, objectSetIteration.ObjectSetScopeName);
                                                    if (!newScope.VariableList.Contains(variableForNewScope))
                                                    {
                                                        newScope.VariableList.Add(variableForNewScope);
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    zSetCurrentScope(newScope);
                                }
                            }
                        }
                    } while (m_ExecutionStack.MoveNext());
                }

                if (onSequenceComplete != null)
                {
                    onSequenceComplete();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                zCleanup();
            }
        }
Exemple #6
0
 public Logging()
 {
     m_msgBox = new MsgBox();
     m_dataUtils = new DataUtils();
     m_posLength = Marshal.SizeOf(m_logFilePosition);
 }
Exemple #7
0
        public async Task <ActionResult> SaveRepository(RepositoryViewModel model, Guid id)
        {
            InitializeViewModel(model);

            if (id != Guid.Empty)
            {
                model.Repository.Id = id;
            }

            var repo = _repoBusiness.GetRepository(model.Repository.Id);

            if (repo == null)
            {
                repo            = _repoBusiness.CreateRepository(User.GetAppUser().UserId);
                model.IsNewUser = true;
            }

            DataUtils.CopyObjectData(model.Repository, repo, "Id,Users,Organization");

            repo.Settings        = model.SettingsJson;
            repo.TableOfContents = model.TableOfContentsJson;

            bool validationResult = _repoBusiness.Validate(repo);

            if (!validationResult)
            {
                model.ErrorDisplay.AddMessages(_repoBusiness.ValidationErrors);
                model.ErrorDisplay.ShowError("Please fix the following");
            }
            else
            {
                _repoBusiness.AutoValidate = false;
                if (!_repoBusiness.Save())
                {
                    model.ErrorDisplay.ShowError(_repoBusiness.ErrorMessage, "Couldn't save Repository.");
                }
                else
                {
                    model.ErrorDisplay.ShowSuccess("Repository info saved.");
                }
            }


            if (model.IsNewUser)
            {
                model.IsNewUser = false;
                // do a full reload to ensure all dependencies get loaded
                repo = _repoBusiness.GetRepository(repo.Id);
                model.RepositoryWithUsers = await _repoBusiness.GetRepositoryWithUsersAndRoles(repo.Id);

                model.RepositoryWithUsers.Repository = repo;
            }
            else
            {
                model.Repository          = repo;
                model.RepositoryWithUsers = await _repoBusiness.GetRepositoryWithUsersAndRoles(repo.Id);
            }
            model.RepositoryWithUsers = await _repoBusiness.GetRepositoryWithUsersAndRoles(repo.Id);


            model.Repository = repo;


            SharedRepositoryModelDisplay(model);

            return(View("Repository", model));
        }
        public void ScaleControllerRetrievalTest()
        {
            var manager = new QueueMessageManagerMongoDb(CONNECTION_STRING);

            manager.Collection.RemoveAll();
            CancelProcessing = false;

            var sw = new Stopwatch();

            sw.Start();

            for (int i = 0; i < 30000; i++)
            {
                string imageId = "10";

                // Create a message object
                // item contains many properties for pushing
                // values back and forth as well as a  few message fields
                var item = manager.CreateItem();
                item.QueueName = "Queue1";
                item.TextInput = DataUtils.GenerateUniqueId(15);

                // Set the message status and timestamps as submitted
                manager.SubmitRequest(item, autoSave: true);
            }

            Console.WriteLine("Done adding: " + sw.ElapsedMilliseconds + "ms");

            Console.WriteLine("Items inserted.");

            IdList   = new List <string>();
            IdErrors = new List <string>();

            for (int i = 0; i < 10; i++)
            {
                var thread = new Thread(ProcessGetNextItem);
                thread.Start();
            }

            //Task.Run(() =>
            //{
            //    for (int i = 0; i < 100; i++)
            //    {
            //        manager = new QueueMessageManagerSql();

            //        string imageId = "10";

            //        // Create a message object
            //        // item contains many properties for pushing
            //        // values back and forth as well as a  few message fields
            //        var item = manager.CreateItem();
            //        item.QueueName = "Queue1";
            //        item.TextInput = DataUtils.GenerateUniqueId(15);

            //        // Set the message status and timestamps as submitted
            //        manager.SubmitRequest(item, autoSave: true);
            //    }

            //    Thread.Sleep(60);
            //});

            for (int i = 0; i < 500; i++)
            {
                if (CancelProcessing)
                {
                    break;
                }

                string imageId = "10";

                // Create a message object
                // item contains many properties for pushing
                // values back and forth as well as a  few message fields
                var item = manager.CreateItem();
                item.QueueName = "Queue1";
                item.TextInput = DataUtils.GenerateUniqueId(15);

                // Set the message status and timestamps as submitted
                manager.SubmitRequest(item, autoSave: true);

                Thread.Yield();
            }


            Console.WriteLine("Waiting for 5 seconds");
            Thread.Sleep(5000);
            CancelProcessing = true;
            Thread.Sleep(150);

            Console.WriteLine("Done");

            Console.WriteLine("Items processed: " + IdList.Count);

            IdList.Add("12345");
            IdList.Add("321321");
            IdList.Add("12345");

            var grouped = IdList.GroupBy(s => s);

            Console.WriteLine("Unique Count: " + grouped.Count());

            foreach (var error in IdErrors)
            {
                Console.WriteLine("  " + error);
            }
        }
Exemple #9
0
 /// <summary>
 /// 组合 子查询
 /// </summary>
 /// <param name="field"></param>
 /// <param name="from"></param>
 /// <param name="oper"></param>
 /// <returns></returns>
 private WhereClip subQuery(Field field, LambdaQueryHelper from, QueryOperator oper)
 {
     return(subQuery(field, from, DataUtils.ToString(oper)));
 }
Exemple #10
0
 /// <summary>
 /// 页面调用
 /// </summary>
 /// <param name="ReType"></param>
 /// <param name="bDate"></param>
 /// <param name="eDate"></param>
 /// <param name="NOJoinSales"></param>
 /// <param name="StoresID"></param>
 /// <param name="PaymentSystemID"></param>
 /// <returns></returns>
 public DataTable GetSalesReport(int ReType, DateTime bDate, DateTime eDate, int NOJoinSales, int StoresID, int PaymentSystemID)
 {
     return(DataUtils.GetSalesReport(ReType, bDate, eDate, NOJoinSales, StoresID, PaymentSystemID));;
 }
Exemple #11
0
 /// <summary>
 /// replace
 /// </summary>
 /// <param name="oldValue"></param>
 /// <param name="newValue"></param>
 /// <returns></returns>
 public Field Replace(string oldValue, string newValue)
 {
     return(new Field(string.Concat("replace(", this.TableFieldName, ",", DataUtils.FormatValue(oldValue), ",", DataUtils.FormatValue(newValue), ")")).As(this));
 }
Exemple #12
0
 /// <summary>
 /// charindex
 /// </summary>
 /// <param name="subString"></param>
 /// <returns></returns>
 public Field IndexOf(string subString)
 {
     return(new Field(string.Concat("charindex(", this.TableFieldName, ",", DataUtils.FormatValue(subString), ") - 1")).As(this));
 }
Exemple #13
0
 /// <summary>
 /// 判断字段是否为Null
 /// </summary>
 /// <param name="value"></param>
 /// <returns></returns>
 public Field IsNull(object value)
 {
     return(new Field(string.Concat("isnull(", this.TableFieldName, ",", DataUtils.FormatValue(value), ")")).As(this));
 }
        public async Task <Album> Album([FromBody] Album postedAlbum)
        {
            if (!ModelState.IsValid)
            {
                throw new ApiException("Model binding failed.", 500);
            }

            var albumRepo = new AlbumRepository(context);

            return(await albumRepo.SaveAlbum(postedAlbum));

#if false
            int id = postedAlbum.Id;

            Album album = null;
            if (id < 1)
            {
                album = new Album();
                context.Albums.Add(album);
            }
            else
            {
                album = await context.Albums
                        .Include(ctx => ctx.Tracks)
                        .Include(ctx => ctx.Artist)
                        .FirstOrDefaultAsync(alb => alb.Id == id);
            }

            // check for existing artist and assign if matched
            if (album.Artist.Id < 1)
            {
                var artist = await context.Artists
                             .FirstOrDefaultAsync(art => art.ArtistName == postedAlbum.Artist.ArtistName);

                if (artist != null)
                {
                    album.Artist.Id = artist.Id;
                }
            }

            DataUtils.CopyObjectData(postedAlbum, album, "Id,Tracks,Artist");
            DataUtils.CopyObjectData(postedAlbum.Artist, album.Artist, "Id");

            foreach (var postedTrack in postedAlbum.Tracks)
            {
                var track = album.Tracks.FirstOrDefault(trk => trk.Id == postedTrack.Id);
                if (postedTrack.Id > 0 && track != null)
                {
                    DataUtils.CopyObjectData(postedTrack, track);
                }
                else
                {
                    track = new Track();
                    context.Tracks.Add(track);
                    DataUtils.CopyObjectData(postedTrack, track, "Id,AlbumId,ArtistId");
                    album.Tracks.Add(track);
                }
            }

            context.SaveChanges();

            return(album);
#endif
        }
        public override bool CommitChecksum()
        {
            bool result = false;

            if ((mMemory != null) && (mMemory.Size > 0))
            {
                result = mMemory.WriteRawIntValueByType(mChecksum, DataUtils.DataType.UInt32, ChecksumLocation) &&
                         mMemory.WriteRawIntValueByType(mInvChecksum, DataUtils.DataType.UInt32, ChecksumLocation + DataUtils.GetDataTypeSize(DataUtils.DataType.UInt32));
            }

            return(result);
        }
Exemple #16
0
    IEnumerator OutnetGetUrlList()
    {
        var args = string.Format("package={0}&app_version={1}&res_version={2}&notice_version={3}", ChannelManager.instance.channelName, ChannelManager.instance.appVersion, clientResVersion, ChannelManager.instance.noticeVersion);

        bool GetUrlListComplete = false;
        WWW  www = null;

        SimpleHttp.HttpPost(URLSetting.START_UP_URL, null, DataUtils.StringToBytes(args), (WWW wwwInfo) =>
        {
            www = wwwInfo;
            GetUrlListComplete = true;
        });
        yield return(new WaitUntil(() =>
        {
            return GetUrlListComplete;
        }));

        if (www == null || !string.IsNullOrEmpty(www.error) || www.bytes == null || www.bytes.Length == 0)
        {
            Logger.LogError("Get url list for args {0} with err : {1}", args, www == null ? "www null" : (!string.IsNullOrEmpty(www.error) ? www.error : "bytes length 0"));
            yield return(OutnetGetUrlList());
        }

        var urlList = (Dictionary <string, object>)MiniJSON.Json.Deserialize(DataUtils.BytesToString(www.bytes));

        if (urlList == null)
        {
            Logger.LogError("Get url list for args {0} with err : {1}", args, "Deserialize url list null!");
            yield return(OutnetGetUrlList());
        }

        if (urlList.ContainsKey("serverlist"))
        {
            URLSetting.SERVER_LIST_URL = urlList["serverlist"].ToString();
        }
        if (urlList.ContainsKey("verifying"))
        {
            URLSetting.LOGIN_URL = urlList["verifying"].ToString();
        }
        if (urlList.ContainsKey("logserver"))
        {
            URLSetting.REPORT_ERROR_URL = urlList["logserver"].ToString();
        }
        if (urlList.ContainsKey("app_version") && !string.IsNullOrEmpty(urlList["app_version"].ToString()))
        {
            serverAppVersion = urlList["app_version"].ToString();
        }
        if (urlList.ContainsKey("res_version") && !string.IsNullOrEmpty(urlList["res_version"].ToString()))
        {
            serverResVersion = urlList["res_version"].ToString();
        }
        if (urlList.ContainsKey("notice_version") && !string.IsNullOrEmpty(urlList["notice_version"].ToString()))
        {
            ChannelManager.instance.noticeVersion = urlList["notice_version"].ToString();
            GameUtility.SafeWriteAllText(noticeVersionPath, ChannelManager.instance.noticeVersion);
        }
        if (urlList.ContainsKey("notice_url") && !string.IsNullOrEmpty(urlList["notice_url"].ToString()))
        {
            URLSetting.NOTICE_URL = urlList["notice_url"].ToString();
        }
        if (urlList.ContainsKey("app") && !string.IsNullOrEmpty(urlList["app"].ToString()))
        {
            URLSetting.APP_DOWNLOAD_URL = urlList["app"].ToString();
        }
        else if (urlList.ContainsKey("res") && !string.IsNullOrEmpty(urlList["res"].ToString()))
        {
            URLSetting.SERVER_RESOURCE_URL = urlList["res"].ToString();
        }
        yield break;
    }
Exemple #17
0
        protected virtual void Page_Load(object sender, EventArgs e)
        {
            if (this.userid > 0)
            {
                if (CheckUserPopedoms("X") || CheckUserPopedoms("7-2-1-5-5-3"))
                {
                    Act = HTTPRequest.GetString("Act");
                    if (Act == "Edit")
                    {
                        ProductsID = Utils.StrToInt(HTTPRequest.GetString("pid"), 0);

                        dList = DataUtils.GetStock_analysis(0, DateTime.Now, ProductsID);

                        //spi = tbStockProductInfo.GetStockProductInfoModelByProductsID(ProductsID);
                    }
                    if (dList != null)
                    {
                        if (ispost)
                        {
                            try
                            {
                                int     loop      = HTTPRequest.GetInt("loop", 0);
                                int     StorageID = 0;
                                decimal pBad      = 0;
                                if (loop > 0)
                                {
                                    for (int i = 0; i <= loop; i++)
                                    {
                                        StorageID = HTTPRequest.GetInt("StorageID_" + i, 0);
                                        if (StorageID > 0)
                                        {
                                            pBad = (HTTPRequest.GetString("Bad_" + i).Trim() != "") ? decimal.Parse(Utils.ChkSQL(HTTPRequest.GetString("Bad_" + i))) : 0;

                                            spi             = new StockProductInfo();
                                            spi.ProductsID  = ProductsID;
                                            spi.StorageID   = StorageID;
                                            spi.isBad       = pBad;
                                            spi.sAppendTime = DateTime.Now;

                                            tbStockProductInfo.AddStockProductInfo(spi);

                                            ProductsInfo _pi = new ProductsInfo();
                                            StorageInfo  _si = new StorageInfo();

                                            _pi = tbProductsInfo.GetProductsInfoModel(ProductsID);
                                            _si = tbStorageInfo.GetStorageInfoModel(StorageID);

                                            if (_pi != null && _si != null)
                                            {
                                                Logs.AddEventLog(this.userid, "修改实时库存." + _si.sName + "," + _pi.pName + ".Bad:" + pBad);
                                            }
                                            _pi = null;
                                            _si = null;
                                        }
                                    }
                                    AddMsgLine("更新成功!");
                                    AddScript("window.setTimeout('window.parent.HidBox();',1000);");
                                }
                            }
                            catch
                            {
                                AddErrLine("系统忙,请稍候!");
                                AddScript("window.setTimeout('window.parent.HidBox();',2000);");
                            }
                        }
                        else
                        {
                            StorageList = tbStorageInfo.GetStorageInfoList("").Tables[0];
                            if (StorageList != null)
                            {
                                StorageList.Columns.Add("Bad", Type.GetType("System.Decimal"));
                                DataTable dt = new DataTable();
                                dt = tbStockProductInfo.GetStockProductInfoListByNow(" sp.ProductsID=" + ProductsID).Tables[0];
                                if (dt != null)
                                {
                                    foreach (DataRow dr in dt.Rows)
                                    {
                                        foreach (DataRow drr in StorageList.Rows)
                                        {
                                            if (dr["StorageID"].ToString() == drr["StorageID"].ToString())
                                            {
                                                drr["Bad"] = dr["isBad"];
                                            }
                                        }
                                    }
                                }
                                StorageList.AcceptChanges();
                            }
                        }
                    }
                    else
                    {
                        AddErrLine("参数错误,请重试!");
                        AddScript("window.setTimeout('window.parent.HidBox();',2000);");
                    }
                }
                else
                {
                    AddErrLine("权限不足!");
                    AddScript("window.setTimeout('window.parent.HidBox();',2000);");
                }
            }
            else
            {
                AddErrLine("请先登录!");
                SetBackLink("login.aspx?referer=" + Utils.UrlEncode(Utils.GetUrlReferrer()));
                SetMetaRefresh(1, "login.aspx?referer=" + Utils.UrlEncode(Utils.GetUrlReferrer()));
            }
        }
 public static uint GetChecksumBlockSize()
 {
     return(DataUtils.GetDataTypeSize(DataUtils.DataType.UInt32) * 4);
 }
Exemple #19
0
        private void DrawMessage()
        {
            TextGraphics.DrawLineH(2, 2, CLI.Width - 4, ' ', Color.White, Color.Cyan);
            TextGraphics.DrawString(2, 2, " C    COLOR                  VALUE", Color.Black, Color.Cyan);
            TextGraphics.DrawLineH(0, 3, CLI.Width, ' ', Color.White, Color.Black);
            int   dx = 3, dy = 4;
            Color bg = Color.Black;

            // black
            TextGraphics.DrawChar(dx, dy, '#', Color.Black, bg);
            TextGraphics.DrawString(dx + 5, dy, "BLACK", Color.White, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.Black, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // dark gray
            TextGraphics.DrawChar(dx, dy, '#', Color.DarkGray, bg);
            TextGraphics.DrawString(dx + 5, dy, "DARK GRAY", Color.DarkGray, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.DarkGray, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // gray
            TextGraphics.DrawChar(dx, dy, '#', Color.Gray, bg);
            TextGraphics.DrawString(dx + 5, dy, "GRAY", Color.Gray, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.Gray, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // white
            TextGraphics.DrawChar(dx, dy, '#', Color.White, bg);
            TextGraphics.DrawString(dx + 5, dy, "WHITE", Color.White, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.White, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // dark red
            TextGraphics.DrawChar(dx, dy, '#', Color.DarkRed, bg);
            TextGraphics.DrawString(dx + 5, dy, "DARK RED", Color.DarkRed, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.DarkRed, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // red
            TextGraphics.DrawChar(dx, dy, '#', Color.Red, bg);
            TextGraphics.DrawString(dx + 5, dy, "RED", Color.Red, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.Red, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // dark yellow
            TextGraphics.DrawChar(dx, dy, '#', Color.DarkYellow, bg);
            TextGraphics.DrawString(dx + 5, dy, "DARK YELLOW", Color.DarkYellow, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.DarkYellow, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // yellow
            TextGraphics.DrawChar(dx, dy, '#', Color.Yellow, bg);
            TextGraphics.DrawString(dx + 5, dy, "YELLOW", Color.Yellow, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.Yellow, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // dark green
            TextGraphics.DrawChar(dx, dy, '#', Color.DarkGreen, bg);
            TextGraphics.DrawString(dx + 5, dy, "DARK GREEN", Color.DarkGreen, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.DarkGreen, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // green
            TextGraphics.DrawChar(dx, dy, '#', Color.Green, bg);
            TextGraphics.DrawString(dx + 5, dy, "GREEN", Color.Green, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.Green, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // dark cyan
            TextGraphics.DrawChar(dx, dy, '#', Color.DarkCyan, bg);
            TextGraphics.DrawString(dx + 5, dy, "DARK CYAN", Color.DarkCyan, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.DarkCyan, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // cyan
            TextGraphics.DrawChar(dx, dy, '#', Color.Cyan, bg);
            TextGraphics.DrawString(dx + 5, dy, "CYAN", Color.Cyan, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.Cyan, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // dark blue
            TextGraphics.DrawChar(dx, dy, '#', Color.DarkBlue, bg);
            TextGraphics.DrawString(dx + 5, dy, "DARK BLUE", Color.Blue, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.DarkBlue, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // blue
            TextGraphics.DrawChar(dx, dy, '#', Color.Blue, bg);;
            TextGraphics.DrawString(dx + 5, dy, "BLUE", Color.Blue, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.Blue, "X2"), Color.Yellow, Color.Blue);;
            dy++;
            // dark magenta
            TextGraphics.DrawChar(dx, dy, '#', Color.DarkMagenta, bg);
            TextGraphics.DrawString(dx + 5, dy, "DARK MAGENTA", Color.DarkMagenta, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.DarkMagenta, "X2"), Color.Yellow, Color.Blue);
            dy++;
            // magenta
            TextGraphics.DrawChar(dx, dy, '#', Color.Magenta, bg);
            TextGraphics.DrawString(dx + 5, dy, "MAGENTA", Color.Magenta, Color.Blue);
            TextGraphics.DrawString(dx + 28, dy, DataUtils.IntToHex((int)Color.Magenta, "X2"), Color.Yellow, Color.Blue);
            dy++;

            // exit message
            TextGraphics.DrawString(2, CLI.Height - 2, "Press any key to exit...", Color.White, Color.Blue);
        }
 private string zRescopeVariableName(string variableName, string newScope)
 {
     return(String.Format("{0}.{1}", newScope, DataUtils.GetUnscopedVariableName(variableName)));
 }
Exemple #21
0
        private void DrawRecipeEntry(ImGui gui, RecipeEntry entry, bool production)
        {
            var textcolor  = SchemeColor.BackgroundText;
            var bgColor    = SchemeColor.Background;
            var isBuilding = gui.isBuilding;
            var recipe     = entry.recipe;
            var waste      = recipe.RecipeWaste(atCurrentMilestones);

            if (isBuilding)
            {
                if (entry.entryStatus == EntryStatus.NotAccessible)
                {
                    bgColor   = SchemeColor.None;
                    textcolor = SchemeColor.BackgroundTextFaint;
                }
                else if (entry.flow > 0f)
                {
                    bgColor   = SchemeColor.Secondary;
                    textcolor = SchemeColor.SecondaryText;
                }
            }
            using (gui.EnterGroup(new Padding(0.5f), production ? RectAllocator.LeftRow : RectAllocator.RightRow, textcolor))
            {
                using (gui.EnterFixedPositioning(4f, 0f, default))
                {
                    gui.allocator = RectAllocator.Stretch;
                    gui.BuildFactorioObjectButton(entry.recipe, 4f, MilestoneDisplay.Contained);
                    using (gui.EnterRow())
                    {
                        gui.BuildIcon(Icon.Time);
                        gui.BuildText(DataUtils.FormatAmount(entry.recipe.time, UnitOfMeasure.Second), align: RectAlignment.Middle);
                    }
                    var bh = CostAnalysis.Instance.GetBuildingHours(recipe, entry.recipeFlow);
                    if (bh > 20)
                    {
                        gui.BuildText(DataUtils.FormatAmount(bh, UnitOfMeasure.None, suffix: "bh"), align: RectAlignment.Middle);
                        if (gui.BuildButton(gui.lastRect, SchemeColor.None, SchemeColor.Grey) == ImGuiUtils.Event.MouseOver)
                        {
                            gui.ShowTooltip(g => g.BuildText("Building-hours.\nAmount of building-hours required for all researches", wrap: true));
                        }
                    }
                }
                gui.AllocateSpacing();
                gui.allocator = production ? RectAllocator.LeftAlign : RectAllocator.RightAlign;
                gui.BuildText(recipe.locName, wrap: true);
                if (recipe.ingredients.Length + recipe.products.Length <= 8)
                {
                    using (gui.EnterRow())
                    {
                        DrawIngredients(gui, entry.recipe);
                        gui.allocator = RectAllocator.RightRow;
                        DrawProducts(gui, entry.recipe);
                        if (recipe.products.Length < 3 && recipe.ingredients.Length < 5)
                        {
                            gui.AllocateSpacing((3 - entry.recipe.products.Length) * 3f);
                        }
                        else if (recipe.products.Length < 3)
                        {
                            gui.allocator = RectAllocator.RemainigRow;
                        }
                        gui.BuildIcon(Icon.ArrowRight, 3f);
                    }
                }
                else
                {
                    using (gui.EnterRow())
                        DrawIngredients(gui, entry.recipe);

                    using (gui.EnterRow())
                    {
                        gui.BuildIcon(Icon.ArrowDownRight, 3f);
                        gui.allocator = RectAllocator.RightRow;
                        DrawProducts(gui, entry.recipe);
                    }
                }
            }

            if (isBuilding)
            {
                var rect = gui.lastRect;
                if (entry.flow > 0f)
                {
                    var percentFlow = MathUtils.Clamp(entry.flow / currentFlow, 0f, 1f);
                    rect.Width *= percentFlow;
                    gui.DrawRectangle(rect, SchemeColor.Primary);
                }
                else if (waste <= 0f)
                {
                    bgColor = SchemeColor.Secondary;
                }
                else
                {
                    rect.Width *= (1f - waste);
                    gui.DrawRectangle(rect, SchemeColor.Secondary);
                }
                gui.DrawRectangle(gui.lastRect, bgColor);
            }
        }
        private void WriteNormalizedQueries(Dictionary <long, NormalizedQuery> values, SqlConnection conn, SqlTransaction tran)
        {
            // create a temporary table

            string sql = @"
                SELECT TOP(0) *
                INTO #NormalizedQueries
                FROM [{0}].[NormalizedQueries];
            ";

            sql = String.Format(sql, ConnectionInfo.SchemaName);

            using (SqlCommand cmd = conn.CreateCommand())
            {
                cmd.Transaction = tran;
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
            }

            // bulk insert into temporary
            using (SqlBulkCopy bulkCopy = new System.Data.SqlClient.SqlBulkCopy(conn,
                                                                                SqlBulkCopyOptions.KeepIdentity |
                                                                                SqlBulkCopyOptions.FireTriggers |
                                                                                SqlBulkCopyOptions.CheckConstraints |
                                                                                SqlBulkCopyOptions.TableLock,
                                                                                tran))
            {
                bulkCopy.DestinationTableName = "#NormalizedQueries";
                bulkCopy.BatchSize            = 1000;
                bulkCopy.BulkCopyTimeout      = 300;
                bulkCopy.WriteToServer(DataUtils.ToDataTable(from t in values where (t.Value != null)select new { t.Value.Hash, t.Value.NormalizedText, t.Value.ExampleText }));
            }

            // merge new data

            sql = @"
                INSERT INTO [{0}].[NormalizedQueries]
                SELECT *
                FROM #NormalizedQueries AS src
                WHERE NOT EXISTS (
                    SELECT *
                    FROM [{0}].[NormalizedQueries] AS dst 
                    WHERE dst.[sql_hash] = src.[sql_hash]
                );
            ";
            sql = String.Format(sql, ConnectionInfo.SchemaName);

            using (SqlCommand cmd = conn.CreateCommand())
            {
                cmd.Transaction = tran;
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
            }


            // Erase from memory all the normalized queries
            // already written to the database. This should reduce
            // the memory footprint quite a lot
            foreach (var hash in values.Keys.ToList())
            {
                values[hash] = null;
            }
            // Run the Garbage Collector in a separate task
            Task.Factory.StartNew(() => InvokeGC());
        }
Exemple #23
0
        protected void btnMwsLogin_Click(object sender, EventArgs e)
        {
            string EmailID = txtEmailID.Value.Trim().SafeSqlLiteral(1);
            string Pwd     = txtPassword.Value.Trim().SafeSqlLiteral(1);

            if (string.IsNullOrEmpty(EmailID) || string.IsNullOrEmpty(Pwd))
            {
                //error
                divLoginErr.InnerHtml = UiMsg.Login.InvalidCredentials.ErrorWrap();
            }
            else
            {
                Users   obj = new Users();
                DataSet ds  = obj.GetUsrAuthDetails(EmailID);

                if (!DataUtils.IsDataSetNull(ds, 0))
                {
                    DataRow dr = ds.Tables[0].Rows[0];

                    if (dr["OpResult"].ToString() == "0")
                    {
                        // count is more than one
                        divLoginErr.InnerHtml = UiMsg.Login.InvalidCredentials.ErrorWrap();
                    }
                    else
                    {
                        string UserStatusID = dr["UserStatusID"].ToString();

                        if (UserStatusID == DbSettings.UserStatus.Active)
                        {
                            string Salt     = dr["Salt"].ToString();
                            string SavedPwd = dr["Password"].ToString();
                            string UserID   = dr["UserID"].ToString();

                            CryptEngine objCrypt = new CryptEngine();

                            if (objCrypt.VerifyHash(Pwd, Salt, SavedPwd))
                            {
                                //auth success
                                FormsAuthentication.RedirectFromLoginPage(UserID, false);
                                //string[] url = Request.UrlReferrer.Query.Split(new string[] { "ReturnUrl=%2f" }, StringSplitOptions.None);
                                //Response.Redirect(url[1]);
                            }
                            else
                            {
                                divLoginErr.InnerHtml = UiMsg.Login.InvalidCredentials.ErrorWrap();
                            }
                        }
                        else
                        {
                            //user is not allowed to login
                            divLoginErr.InnerHtml = UiMsg.Login.NotAuthorized.ErrorWrap();
                        }
                    }
                } //dataset not null
                else
                {
                    divLoginErr.InnerHtml = UiMsg.Global.Error.ErrorWrap();
                }
            } //valid mail & pwd
        }     //btn login
Exemple #24
0
 internal static void PopulateContentMenuStrip(ContextMenuStrip cmsBudgetItems)
 {
     DataUtils.PopulateContextMenu(cmsBudgetItems);
 }
Exemple #25
0
 public ServiceFundingType()
 {
     dataUtils = new DataUtils();
 }
 public static void OneTimeSetUp()
 {
     _uniqueDefinitionsTask = DataUtils.LoadXmlAsync <XmlUniqueList>("Uniques.xml");
 }
 /// <summary>
 /// 给当前实体赋值
 /// </summary>
 public override void SetPropertyValues(DataRow row)
 {
     this._ID = DataUtils.ConvertValue<string>(row["ID"]);
     this._Phone = DataUtils.ConvertValue<string>(row["Phone"]);
     this._Smstext = DataUtils.ConvertValue<string>(row["Smstext"]);
 }
        protected void btnAddSources_Click(object sender, EventArgs e)
        {
            try
            {
                //if (ddlProject.SelectedIndex == 0)
                //{
                //    LogMessage("Select Project");
                //    ddlProject.Focus();
                //    return;
                //}
                if (ddlSource.SelectedIndex == 0)
                {
                    LogMessage("Select Source");
                    ddlSource.Focus();
                    return;
                }

                if (string.IsNullOrWhiteSpace(txtSourceTotal.Text.ToString()) == true)
                {
                    LogMessage("Enter source total");
                    txtSourceTotal.Focus();
                    return;
                }
                if (DataUtils.GetDecimal(txtSourceTotal.Text) <= 0)
                {
                    LogMessage("Enter valid source total");
                    txtSourceTotal.Focus();
                    return;
                }

                ConservationSourcesUsesData.AddConSource objAddConSource = ConservationSourcesUsesData.AddConservationSource(DataUtils.GetInt(hfProjectId.Value),
                                                                                                                             DataUtils.GetInt(ddlBudgetPeriod.SelectedValue.ToString()),
                                                                                                                             DataUtils.GetInt(ddlSource.SelectedValue.ToString()), DataUtils.GetDecimal(txtSourceTotal.Text));

                ClearAddSourceForm();
                BindSourcegrid();

                if (objAddConSource.IsDuplicate && !objAddConSource.IsActive)
                {
                    LogMessage("New Conservation Source already exist as in-active");
                }
                else if (objAddConSource.IsDuplicate)
                {
                    LogMessage("New Conservation Source already exist");
                }
                else
                {
                    LogMessage("New Conservation Source added successfully");
                }
            }
            catch (Exception ex)
            {
                LogError(Pagename, "btnAddSources_Click", "", ex.Message);
            }
        }
 /// <summary>
 /// 给当前实体赋值
 /// </summary>
 public override void SetPropertyValues(IDataReader reader)
 {
     this._ID = DataUtils.ConvertValue<string>(reader["ID"]);
     this._Phone = DataUtils.ConvertValue<string>(reader["Phone"]);
     this._Smstext = DataUtils.ConvertValue<string>(reader["Smstext"]);
 }
        private void BindUsesgrid()
        {
            try
            {
                DataTable dtSources = ConservationSourcesUsesData.GetConserveUsesList(DataUtils.GetInt(hfProjectId.Value),
                                                                                      DataUtils.GetInt(ddlBudgetPeriod.SelectedValue.ToString()), cbActiveOnly.Checked);

                if (dtSources.Rows.Count > 0)
                {
                    dvConsevationUsesGrid.Visible     = true;
                    gvConservationUsesGrid.DataSource = dtSources;
                    gvConservationUsesGrid.DataBind();

                    Label lblFooterVHCBTotalAmt  = (Label)gvConservationUsesGrid.FooterRow.FindControl("lblFooterVHCBTotalAmount");
                    Label lblFooterOtherTotalAmt = (Label)gvConservationUsesGrid.FooterRow.FindControl("lblFooterOtherTotalAmount");
                    Label lblFooterGrandTotalAmt = (Label)gvConservationUsesGrid.FooterRow.FindControl("lblFooterGrandTotalAmount");

                    decimal totVHCBAmt  = 0;
                    decimal totOtherAmt = 0;
                    decimal totGrantAmt = 0;

                    for (int i = 0; i < dtSources.Rows.Count; i++)
                    {
                        if (DataUtils.GetBool(dtSources.Rows[i]["RowIsActive"].ToString()))
                        {
                            totVHCBAmt  += Convert.ToDecimal(dtSources.Rows[i]["VHCBTotal"].ToString());
                            totOtherAmt += Convert.ToDecimal(dtSources.Rows[i]["OtherTotal"].ToString());
                            totGrantAmt += Convert.ToDecimal(dtSources.Rows[i]["Total"].ToString());
                        }
                    }

                    lblFooterVHCBTotalAmt.Text  = CommonHelper.myDollarFormat(totVHCBAmt);
                    lblFooterOtherTotalAmt.Text = CommonHelper.myDollarFormat(totOtherAmt);
                    lblFooterGrandTotalAmt.Text = CommonHelper.myDollarFormat(totGrantAmt);
                }
                else
                {
                    dvConsevationUsesGrid.Visible     = false;
                    gvConservationUsesGrid.DataSource = null;
                    gvConservationUsesGrid.DataBind();
                }
            }
            catch (Exception ex)
            {
                LogError(Pagename, "BindSourcegrid", "", ex.Message);
            }
        }
Exemple #31
0
        // ReadFromClient: Begin interpreting packets from the specified client, performing actions based on the data received
        private static async void ReadFromClient(ProtocolModel.ConnectionClient connectionClient)
        {
            try
            {
                await Task.Run(() =>
                {
                    while (connectionClient.Client.Connected)
                    {
                        if (connectionClient.Client.GetStream().DataAvailable)
                        {
                            // Data Processing
                            string json = DataUtils.ReadJsonFromStream(connectionClient.Client.GetStream(), SizeLimit);
                            var token   = json.Split(new[] { PacketSplitter }, StringSplitOptions.RemoveEmptyEntries);
                            foreach (var msgToken in token)
                            {
                                ProtocolModel.Base baseMessage = JsonConvert.DeserializeObject <ProtocolModel.Base>(msgToken);
                                switch (baseMessage.Type)
                                {
                                // RequestJoin: Add Client Data to observable Player Array (Adding the GUID from the connectionClient) then re-broadcast the new playerList
                                case ProtocolModel.MessageType.RequestJoin:
                                    {
                                        ProtocolModel.Player player = JsonConvert.DeserializeObject <ProtocolModel.Player>(baseMessage.Data.ToString());
                                        player.Id = connectionClient.Id;
                                        Players.Add(player);
                                        BroadcastPlayers();
                                        RequestSendMessage($"--> {Players.First(i => i.Id == connectionClient.Id).Name} has joined.");
                                        break;
                                    }

                                // LobbyMessage: Broadcast a General Status Message from the Server
                                case ProtocolModel.MessageType.LobbyMessage:
                                    {
                                        SendFromServer(json);
                                        break;
                                    }

                                // RequestStart: Sets appropriate flags for Game Running, and begins auto-populating the game panel
                                case ProtocolModel.MessageType.RequestStart:
                                    {
                                        // Clear all Player points before starting
                                        ClearScores();

                                        GameRunning = true;
                                        BeginShapeGen();
                                        RequestSendMessage($"--> Game started by {Players.First(i => i.Id == connectionClient.Id).Name} (Host)");
                                        break;
                                    }

                                // RequestGameSettings: Requests a copy of the current public game settings available to all users
                                case ProtocolModel.MessageType.RequestGameSettings:
                                    {
                                        SendFromServer(JsonConvert.SerializeObject(new ProtocolModel.Base
                                        {
                                            Type = ProtocolModel.MessageType.RequestGameSettings,
                                            Data = new ProtocolModel.GameSetting
                                            {
                                                GameName           = GameName,
                                                CurrentPlayers     = Players.Count,
                                                GameSize           = GameSize + 1,
                                                GameInProgress     = GameRunning,
                                                DefaultPointValues = AveragePoints,
                                                MaxShapeCount      = MaxShapeCount,
                                                MaxShapeTicks      = MaxShapeTicks,
                                                Timer     = GameRefreshTime.ToString(),
                                                Win       = GameWinPoint.ToString(),
                                                PanelSize = new Point(GamePanelSizeX, GamePanelSizeY)
                                            }
                                        }));
                                        break;
                                    }

                                // RequestSendCoords: Queries the ClickCoords reported in order to check for Shape collission
                                case ProtocolModel.MessageType.RequestSendCoords:
                                    {
                                        ProtocolModel.ClickCoords point = JsonConvert.DeserializeObject <ProtocolModel.ClickCoords>(baseMessage.Data.ToString());
                                        for (int j = ShapesPanel.Count - 1; j >= 0; j--)
                                        {
                                            var item = ShapesPanel[j];
                                            if (ShapeUtils.ContainsShape(item.Type, point.Location, item.Location))
                                            {
                                                ShapesPanel.Remove(item);
                                                Players.First(i => i.Id == connectionClient.Id).Score += item.Value;
                                                BroadcastShapes();
                                                BroadcastPlayers();
                                                if (GameRunning)
                                                {
                                                    int modifiedValue = item.Value >= 0 ? item.Value : Math.Abs(item.Value);
                                                    RequestSendMessage($"--> {Players.First(i => i.Id == connectionClient.Id).Name} has {(item.Value >= 0 ? "gained" : "lost")} {modifiedValue} {(modifiedValue > 1 ? "points" : "point")} from clicking a {item.Color.Name} {Enum.GetName(typeof(ProtocolModel.ShapeType), item.Type)}");
                                                }
                                                break;
                                            }
                                        }
                                        break;
                                    }
                                }
                            }
                        }
                        Thread.Sleep(25);
                    }
                });
            }
            finally
            {
                // If the task ends unexpectedly or the player disconnects at some point,
                // display a LEFT_GAME message in chat, and ensure their data is cleaned up
                //
                // Normally, this type of stuff would occur immediatly when the manual leave actions occur
                // That is still highly TODO, so this event only plays whenever the next packet tries to passthrough
                ProtocolModel.Player player = Players.First(i => i.Id == connectionClient.Id);
                Players.Remove(player);
                connectionClient.Client.Close();
                BroadcastPlayers();
                RequestSendMessage($"--> {player.Name} has left the game.");
            }
        }