Exemple #1
0
        private int InternalGetHashCode()
        {
            unchecked
            {
                // Choose large primes to avoid hashing collisions
                const int HashingBase       = (int)2166136261;
                const int HashingMultiplier = 16777619;

                int hash = HashingBase;
                hash = (hash * HashingMultiplier) ^ (!Object.ReferenceEquals(null, OffsetValue) ? OffsetValue.GetHashCode() : 0);
                hash = (hash * HashingMultiplier) ^ (!Object.ReferenceEquals(null, OffsetFactor) ? OffsetFactor.GetHashCode() : 0);
                hash = (hash * HashingMultiplier) ^ (!Object.ReferenceEquals(null, Target) ? Target.GetHashCode() : 0);
                return(hash);
            }
        }
 public static OffsetValue ShowImportOffsetsValuesDialog(Form owner, OffsetValue offsetValue)
 {
     using ImportOffsetsValuesDialog importOffsetsValuesDialog = new() { OffsetValue = offsetValue };
     return(importOffsetsValuesDialog.ShowDialog(owner) == DialogResult.OK ? importOffsetsValuesDialog.OffsetValue : null);
 }
        /// <summary>
        /// Compiles the fragment.
        /// </summary>
        /// <param name="queryBuilder">The query builder.</param>
        /// <param name="engine">The engine.</param>
        public virtual void Compile(QueryBuilder queryBuilder, IEngine engine)
        {
            switch (engine.Options.OffsetStyle)
            {
            case OffsetStyle.Offset:
                queryBuilder.Write("OFFSET ");

                object offsetValue = OffsetValue ?? 0;
                if (engine.Options.OffsetAsParameters || offsetValue is IQueryFragment)
                {
                    queryBuilder.WriteValue(offsetValue);
                }
                else
                {
                    queryBuilder.Write(offsetValue.ToString());
                }

                queryBuilder.Write(" ROWS");

                if (FetchValue != null)
                {
                    queryBuilder.Write(" FETCH NEXT ");

                    if (engine.Options.OffsetAsParameters || FetchValue is IQueryFragment)
                    {
                        queryBuilder.WriteValue(FetchValue);
                    }
                    else
                    {
                        queryBuilder.Write(FetchValue.ToString());
                    }

                    queryBuilder.Write(" ROWS ONLY");
                }
                break;

            case OffsetStyle.Limit:
                queryBuilder.Write("LIMIT ");

                object fetchValue = FetchValue ?? long.MaxValue;
                if (engine.Options.OffsetAsParameters || fetchValue is IQueryFragment)
                {
                    queryBuilder.WriteValue(fetchValue);
                }
                else
                {
                    queryBuilder.Write(fetchValue.ToString());
                }

                if (OffsetValue != null)
                {
                    queryBuilder.Write(" OFFSET ");

                    if (engine.Options.OffsetAsParameters || OffsetValue is IQueryFragment)
                    {
                        queryBuilder.WriteValue(OffsetValue);
                    }
                    else
                    {
                        queryBuilder.Write(OffsetValue.ToString());
                    }
                }
                break;

            default:
                throw new ClauseNotSupportedException("Offset clause is not supported in this engine.");
            }
        }
 public void Configure(Values values)
 {
     ModifierType  = ModifierUtility.ParseModifierType(values.Get("AffectedStat", string.Empty));
     ModifierValue = new OffsetValue(values.Get("Amount", -1f), ModifierUtility.ParseOffsetValueType(values.Get("ActType", string.Empty)));
     Name          = values.Get("Name", string.Empty);
 }
Exemple #5
0
     private void ButtonOK_Click(object sender, EventArgs e)
     {
         OffsetValue = new() { Offset = TextBoxOffset.Text, Value = TextBoxValue.Text };
     }
 }