Example #1
0
        /// <summary>
        /// Check: asserted value SAME AS otherThing
        /// </summary>
        /// <param name="otherThing">check value</param>
        public void TheSame(IComparable otherThing)
        {
            bool result = thing.Equals(otherThing);

            if (negated)
            {
                result = !result;
            }
            if (!result)
            {
                throw new AssertionException($"Expected {thing}{(negated ? " not" : "") } to be the same as {otherThing}.");
            }
        }
Example #2
0
 public void Remove(T givenT)
 {
     if (givenT != null)
     {
         if (m_dictionary.ContainsKey(givenT))
         {
             Dictionary <T, int> tempDict = new Dictionary <T, int>();
             T[] myArray = GetOrderedArray();
             int index   = 0;
             for (int i = 0; i < myArray.Length; i++)
             {
                 if (!IComparable.Equals(myArray[i], givenT))
                 {
                     tempDict.Add(myArray[i], index);
                     lastItem = myArray[i];
                     index++;
                 }
                 else
                 {
                     if (i == myArray.Length - 1 && i > 1)
                     {
                         lastItem = myArray[i - 1];
                     }
                 }
             }
             m_dictionary = tempDict;
         }
     }
 }
Example #3
0
        /// <summary>
        /// Shortcut for validating a if a potential floating point value is close enough to another addValue using the given tolerance tolerance.
        /// </summary>
        public static bool IsNearEqual(IComparable a, IComparable b, IComparable tolerance)
        {
            if (a is null)
            {
                throw new NullReferenceException();
            }
            if (b is null)
            {
                throw new ArgumentNullException(nameof(b));
            }

            Contract.EndContractBlock();

            if (a.Equals(b))
            {
                return(true);
            }

            return(a switch
            {
                float f => IsNearEqual(f, (float)b, (float)tolerance),
                double d => IsNearEqual(d, (double)b, (double)tolerance),
                decimal @decimal => IsNearEqual(@decimal, (decimal)b, (decimal)tolerance),
                _ => throw new InvalidCastException(),
            });
Example #4
0
 public void CheckEqualCompHash(IComparable o1, IComparable o2)
 {
     if (o1.Equals(o2))
     {
         Assert.IsTrue(o2.Equals(o1), "Equals reflexivity (true)");
         Assert.IsTrue(o1.CompareTo(o2) == 0, "Equals consistency 1 (true)");
         Assert.IsTrue(o2.CompareTo(o1) == 0, "Equals (ref) consistency 1 (true)");
         Assert.IsTrue(o1.GetHashCode() == o2.GetHashCode(), "Equals Hash consistency 1");
     }
     else
     {
         Assert.IsFalse(o2.Equals(o1), "Equals reflexivity (false)");
         Assert.IsFalse(o1.CompareTo(o2) == 0, "Equals consistency 1 (false)");
         Assert.IsTrue(o2.CompareTo(o1) != 0, "Equals (ref) consistency 1 (false)");
     }
 }
        /// <summary>
        /// 是否接近相等。使用给定的公差来验证潜在浮点值是否足够接近另外一个值
        /// </summary>
        /// <param name="a">比较的值</param>
        /// <param name="b">比较的值</param>
        /// <param name="tolerance">公差</param>
        /// <exception cref="NullReferenceException"></exception>
        /// <exception cref="ArgumentNullException"></exception>
        public static bool IsNearEqual(this IComparable a, IComparable b, IComparable tolerance)
        {
            if (a == null)
            {
                throw new NullReferenceException();
            }
            if (b == null)
            {
                throw new ArgumentNullException(nameof(b));
            }
            Contract.EndContractBlock();
            if (a.Equals(b))
            {
                return(true);
            }
            return(false);

            //return a switch
            //{
            //    float f => IsNearEqual(f, (float)b, (float)tolerance),
            //    double d => IsNearEqual(d, (double)b, (double)tolerance),
            //    decimal @decimal => IsNearEqual(@decimal, (decimal)b, (decimal)tolerance),
            //    _ => throw new InvalidCastException(),
            //};
        }
Example #6
0
        public static IEnumerable <T> MaxBy <T>(this IEnumerable <T> me, Func <T, IComparable> comparison, float percentage = default(float))
        {
            var         analyzedList = me.Select(x => new { val = x, com = comparison(x) });
            IComparable max          = analyzedList.Max(x => x.com);

            return(analyzedList.Where(x => IComparable.Equals(x.com, max)).Select(x => x.val));
        }
Example #7
0
        public void ScalarMultiplication()
        {
            IVector <DoubleComponent> ScalarMultiplicationArgument = MatrixFactory <DoubleComponent> .CreateVector3D(5.0f, 4.0f, 3.0f);

            Assert.IsTrue(ScalarMultiplicationArgument.Multiply(-.5)
                          .Equals(
                              MatrixFactory <DoubleComponent> .CreateVector3D(2.5f, 2.0f, 1.5f).Negative())
                          );

            Assert.IsTrue(
                ScalarMultiplicationArgument.Multiply(-.5)
                .Equals(
                    MatrixFactory <DoubleComponent> .CreateVector3D(2.5f, 2.0f, 1.5f).Negative())
                );


            Assert.IsTrue(
                ScalarMultiplicationArgument.Multiply(5)
                .Equals(
                    MatrixFactory <DoubleComponent> .CreateVector3D(25.0f, 20.0f, 15.0f))
                );

            IVector <DoubleComponent> Point3 = MatrixFactory <DoubleComponent> .CreateVector3D(2, 3, 4);

            Point3.MultiplyEquals(6);
            Assert.IsTrue(IComparable <IVector <DoubleComponent> > .Equals(Point3, MatrixFactory <DoubleComponent> .CreateVector3D(12, 18, 24)));
        }
Example #8
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value != null)
            {
                IComparable comparable = value as IComparable;

                if (comparable == null)
                {
                    throw new InvalidOperationException("The comparison value must implement System.IComparable interface.");
                }

                object otherValue = GetValue(validationContext);

                bool result = !comparable.Equals(otherValue);

                if (result)
                {
                    return(null);
                }
                else
                {
                    return(new ValidationResult(ErrorMessage));
                }
            }
            return(null);
        }
Example #9
0
        private bool IsNonNullMatch(IComparable boPropertyValue, IComparable compareToValue)
        {
            switch (ComparisonOperator)
            {
            case ComparisonOp.Equals:
                return(boPropertyValue.Equals(compareToValue));

            case ComparisonOp.GreaterThan:
                return(boPropertyValue.CompareTo(compareToValue) > 0);

            case ComparisonOp.LessThan:
                return(boPropertyValue.CompareTo(compareToValue) < 0);

            case ComparisonOp.NotEquals:
                return(!boPropertyValue.Equals(compareToValue));

            case ComparisonOp.LessThanEqual:
                return(boPropertyValue.CompareTo(compareToValue) <= 0);

            case ComparisonOp.GreaterThanEqual:
                return(boPropertyValue.CompareTo(compareToValue) >= 0);

            case ComparisonOp.Like:
                return(IsLikeMatch(boPropertyValue, compareToValue));

            case ComparisonOp.NotLike:
                return(!IsLikeMatch(boPropertyValue, compareToValue));

            case ComparisonOp.Is:
                return(boPropertyValue == null);   //if boPropertyValue not null then always return false.

            case ComparisonOp.IsNot:
                return(boPropertyValue != null);   //if boPropertyValue null then always return false.

            case ComparisonOp.In:
                return(compareToValue.CompareTo(boPropertyValue) == 0);

            case ComparisonOp.NotIn:
                return(compareToValue.CompareTo(boPropertyValue) != 0);

            default:
                throw new HabaneroDeveloperException("There is an application exception please contact your system administrator"
                                                     , "The operator " + ComparisonOperator + " is not supported by the application");
            }
        }
Example #10
0
                private bool Compare(IComparable value1 /*torrent value*/, IComparable value2 /*definition*/)
                {
                    switch (this.Comparison)
                    {
                    case ParameterComparison.Equal:
                        return(value1.Equals(value2));

                    case ParameterComparison.NotEqual:
                        return(!value1.Equals(value2));

                    case ParameterComparison.Minimum:
                        return(value1.CompareTo(value2) >= 0);

                    case ParameterComparison.Maximum:
                        return(value1.CompareTo(value2) <= 0);
                    }
                    return(false);
                }
Example #11
0
        protected override IComparable GetBranchingValue(IComparable LHS, IComparable RHS)
        {
            if ((LHS == null && RHS != null) || (LHS != null && RHS == null))
            {
                return(true);
            }

            return(!LHS.Equals(RHS));
        }
Example #12
0
            public override IAssert AreEqual(IComparable expected, IComparable actual, string message = null)
            {
                if (expected.Equals(actual))
                {
                    throw new AssertException(ExpectedActualMessage(message, null, expected, null, null, actual, null));
                }

                return this;
            }
Example #13
0
        /// <summary>
        /// Tries to compare the two objects, but will throw an exception if it fails.
        /// </summary>
        /// <returns>True on success, otherwise False.</returns>
        public static bool GetEqualsResult(IComparable value, IComparable valueToCompare)
        {
            int result;
            if (TryCompare(value, valueToCompare, out result)) {
                return result == 0;
            }

            return value.Equals(valueToCompare);
        }
 public static void BidirectionalEquality <T>(
     IComparable <T> first,
     IComparable <T> second,
     bool equal
     )
 {
     Assert.AreEqual(equal, first.Equals(second));
     Assert.AreEqual(equal, second.Equals(first));
 }
Example #15
0
        /// <summary>
        /// left op right => true/false
        /// 1 < 2 => true
        /// </summary>
        /// <param name="left"></param>
        /// <param name="op"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static bool Compare(IComparable left, string op, IComparable right)
        {
            switch (op)
            {
            case "<": return(left.CompareTo(right) < 0);

            case ">": return(left.CompareTo(right) > 0);

            case "<=": return(left.CompareTo(right) <= 0);

            case ">=": return(left.CompareTo(right) >= 0);

            case "==": return(left.Equals(right));

            case "!=": return(!left.Equals(right));

            default: throw new ArgumentException("Invalid comparison operator: {0}", op);
            }
        }
Example #16
0
        /// <summary>
        /// Compares the values of two objects and returns true if the values are different
        /// </summary>
        /// <param name="value1">The first value.</param>
        /// <param name="value2">The second value.</param>
        /// <returns>True if values DIFFER</returns>
        /// <example>
        /// object o1 = "Hello";
        /// object o2 = "World";
        /// object o3 = 25;
        /// ObjectHelper.ValuesDiffer(o1, o2); // returns true;
        /// ObjectHelper.ValuesDiffer(o1, o3); // returns true;
        /// </example>
        /// <remarks>
        /// This method has been created to be easily able to compare objects of unknown types.
        /// In particular, this is useful when comparing two fields in a DataSet.
        /// This method can even handle byte arrays.
        /// </remarks>
        public static bool ValuesDiffer(object value1, object value2)
        {
            if (value1 == null)
            {
                throw new ArgumentNullException("value1");
            }
            if (value2 == null)
            {
                throw new ArgumentNullException("value2");
            }
            bool        fieldsDiffer     = false;
            IComparable comparableValue  = value1 as IComparable;
            IComparable comparableValue2 = value2 as IComparable;
            bool        result;

            if (comparableValue != null && comparableValue2 != null)
            {
                result = !comparableValue.Equals(comparableValue2);
            }
            else
            {
                byte[] array  = value1 as byte[];
                byte[] array2 = value2 as byte[];
                if (array != null && array2 != null)
                {
                    if (array.Length != array2.Length)
                    {
                        result = true;
                    }
                    else
                    {
                        result = array.Where((byte t, int arrayCounter) => t != array2[arrayCounter]).Any <byte>();
                    }
                }
                else
                {
                    try
                    {
                        bool v1IsNull = value1 is DBNull;
                        bool v2IsNull = value2 is DBNull;
                        if ((v1IsNull && !v2IsNull) || (!v1IsNull && v2IsNull))
                        {
                            result = true;
                            return(result);
                        }
                    }
                    catch (InvalidCastException)
                    {
                        fieldsDiffer = true;
                    }
                    result = fieldsDiffer;
                }
            }
            return(result);
        }
Example #17
0
        protected virtual WorkflowStateManager <S> RunStateMachine(HttpRequestBase request,
                                                                   WorkflowStateManager <S> stateManager)
        {
            while (true)
            {
                var nextState = stateManager.GetNextState();

                if (IComparable.Equals(nextState, this.Workflow.State) != true)
                {
                    this.Workflow.State = nextState;
                    stateManager        = this.GetWorkflowStateManager();
                }
                else
                {
                    if (OnBeforeRequire != null)
                    {
                        OnBeforeRequire.Invoke(this.Workflow, stateManager);
                    }
                    stateManager.Require();
                    if (OnAfterRequire != null)
                    {
                        OnAfterRequire.Invoke(this.Workflow, stateManager);
                    }

                    if (stateManager.GetActionResult(request) != null)
                    {
                        break;
                    }
                    else
                    {
                        if (OnBeforeProcess != null)
                        {
                            OnBeforeProcess.Invoke(this.Workflow, stateManager);
                        }
                        stateManager.Process(request.Form, this.ContextInfo.DefaultModelBinder);
                        if (OnAfterProcess != null)
                        {
                            OnAfterProcess.Invoke(this.Workflow, stateManager);
                        }

                        if (OnBeforeEnsure != null)
                        {
                            OnBeforeEnsure.Invoke(this.Workflow, stateManager);
                        }
                        stateManager.Ensure();
                        if (OnAfterEnsure != null)
                        {
                            OnAfterEnsure.Invoke(this.Workflow, stateManager);
                        }
                    }
                }
            }

            return(stateManager);
        }
Example #18
0
        /// <summary>
        /// Tries to compare the two objects, but will throw an exception if it fails.
        /// </summary>
        /// <returns>True on success, otherwise False.</returns>
        public static bool GetEqualsResult(IComparable value, IComparable valueToCompare)
        {
            int result;

            if (TryCompare(value, valueToCompare, out result))
            {
                return(result == 0);
            }

            return(value.Equals(valueToCompare));
        }
Example #19
0
        public override bool Equals(object obj)
        {
            var arrayElement = obj as ArrayElement;

            if (arrayElement == null)
            {
                return(false);
            }
            if (!_element.Equals(arrayElement._element))
            {
                return(false);
            }
            return(_index.Equals(arrayElement._index));
        }
Example #20
0
 protected bool SetCollection <T, IT>(ref T oldVal, T newVal, [CallerMemberName] string propertyName = null) where T : ObservableCollection <IT>
 {
     if (oldVal == null && newVal == null)
     {
         return(false); // No change here.
     }
     if (IComparable <object> .Equals(oldVal, newVal))
     {
         return(false); // They are the same object.
     }
     // Assume that the contents are different
     OnPropertyChanging(propertyName);
     oldVal = newVal;
     OnPropertyChanged(propertyName);
     return(true);
 }
Example #21
0
        public override bool Equals(object o)
        {
            if (o == null || !(o is SimpleCompareKey))
            {
                return(false);
            }

            var ckey = (SimpleCompareKey)o;

            if (_key == null && ckey._key == null)
            {
                return(true);
            }

            return(_key != null && _key.Equals(ckey._key));
        }
        //finds the key and returns index in the table
        public int search(TKey key)
        {
            int i = 0;

            do
            {
                //calculate index
                int index = _double_hash(key, i);
                if (IComparable.Equals(_table[index].key, key))
                {
                    return(index);
                }
                i++;
            } while (i < _size);

            return(-1);
        }
Example #23
0
        //Busca por Contenido
        public void FindNode(T val)
        {
            GenericNode <T> n   = Root;
            int             pos = 0;

            while (n.Next != null)
            {
                if (IComparable <T> .Equals(n.Val, val))
                {
                    Console.WriteLine("Se encontro el valor {0}, en la posicion: {1}", n.Val, pos);
                    return;
                }
                pos++;
                n = n.Next;
            }
            Console.WriteLine("No se encontro el valor");
        }
        IEnumerable <T> IIndex <T> .WhereEqual(T item)
        {
            int         hashCode      = item.GetHashCode();
            IComparable propertyValue = _theProp.GetValue(item, null) as IComparable;

            LoadOnDemandIndex();
            if (_index.ContainsKey(hashCode))
            {
                foreach (T itemFromIndex in _index[hashCode])
                {
                    IComparable propertyValueFromIndex
                        = _theProp.GetValue(itemFromIndex, null) as IComparable;
                    if (propertyValue.Equals(propertyValueFromIndex))
                    {
                        yield return(itemFromIndex);
                    }
                }
            }
        }
Example #25
0
            private bool WhereEquals(object value, object value1)
            {
                if (value == value1)
                {
                    return(true);
                }
                if (value == null || value1 == null)
                {
                    return(false);
                }
                if (value is string)
                {
                    return((value == null ? "" : value.ToString()).ToString().EqualsOrNullEmpty(value1 == null ? "" : value1.ToString(), StringComparison.OrdinalIgnoreCase));
                }
                IComparable comparable1 = (IComparable)value;
                IComparable comparable2 = (IComparable)Convert.ChangeType(value1, value.GetType());

                return(comparable1.Equals(comparable2));
            }
 public void Remove(IComparable value)
 {
     if (value.Equals(Root.Value))
     {
         if (Root.IsLeaf())
         {
             Root = null;
         }
         else if (Root.Left == null && Root.Right != null)
         {
             Root = Root.Right;
         }
         else if (Root.Left != null && Root.Right == null)
         {
             Root = Root.Left;
         }
         else
         {
             if (Root.Left.Right != null)
             {
                 IComparable temp = Root.Left.Right.Value;
                 Root.Left.Remove(temp, Root);
                 Root.Value = temp;
             }
             else
             {
                 IComparable temp = Root.Left.Value;
                 Root.Value = temp;
                 Root.Left.Remove(temp, Root);
             }
         }
     }
     else if (value.CompareTo(Root.Value) > 0)
     {
         Root.Right.Remove(value, Root);
     }
     else
     {
         Root.Left.Remove(value, Root);
     }
     CheckAndBalance();
 }
Example #27
0
        public override bool Equals(object obj)
        {
            var otherAttribute = obj as AttributeValue;

            if (otherAttribute != null)
            {
                switch (otherAttribute.Type)
                {
                case AttributeValueType.Single:
                    return(_value.Equals(otherAttribute[0]));

                case AttributeValueType.All:
                    return(true);

                default:
                    return(false);
                }
            }
            return(false);
        }
Example #28
0
        private static bool IsCharacterValid(char x)
        {
            bool   isValid = false;
            string y       = x.ToString();

            if (IComparable.Equals(y, " "))
            {
                isValid = true;
            }
            else if (IComparable.Equals(y, "_"))
            {
                isValid = true;
            }
            else if (IComparable.Equals(y, "|"))
            {
                isValid = true;
            }

            return(isValid);
        }
Example #29
0
        private static bool IsLikeMatch(IComparable boPropertyValue, IComparable compareToValue)
        {
            if (compareToValue == null)
            {
                return(true);
            }
            string compareValueStringWPct   = compareToValue.ToString();
            string compareValueStringWNoPct = compareValueStringWPct.TrimEnd('%').TrimStart('%');

            if (!compareValueStringWPct.StartsWith("%") && !compareValueStringWPct.EndsWith("%"))
            {
                return(boPropertyValue.Equals(compareValueStringWNoPct));
            }
            if (!compareValueStringWPct.StartsWith("%"))
            {
                return(boPropertyValue.ToString().StartsWith(compareValueStringWNoPct));
            }
            if (!compareValueStringWPct.EndsWith("%"))
            {
                return(boPropertyValue.ToString().EndsWith(compareValueStringWNoPct));
            }
            return(boPropertyValue.ToString().Contains(compareValueStringWNoPct));
        }
Example #30
0
        public void DeleteNode(T val)
        {
            GenericNode <T> n = Root;

            if (Root == null)
            {
                Console.WriteLine("No hay nodos");
                return;
            }
            //Caso para borrar la raiz de la lista

            /* IComparable<T>.Equals(Root,val) es equivalente a  (Root == val)
             * Al utilizar genericos no nos permite compararr de manera simple
             */
            else if (IComparable <T> .Equals(Root, val))
            {
                Root      = Root.Next;
                Root.Prev = null;
                return;
            }
            //Caso para borrar cualquier elemento
            while (n.Next != null)
            {
                if (IComparable <T> .Equals(n.Next.Val, val))
                {
                    n.Next = n.Next.Next;
                    if (n.Next == null)
                    {
                        return;
                    }
                    n.Next.Prev = n;
                }
                n = n.Next;
            }
            Console.WriteLine("No se encontro un nodo");
        }
Example #31
0
    protected void Veriler(int Baslangic, int Bitis, string s, string Kolon, string AscDesc, out IList Sonuc1, out IList Sonuc2)
    {
        #region Çalışan Hali
        using (BaglantiCumlesi SME = new BaglantiCumlesi())
        {
            try
            {
                #region Kolon Sorting Ayarı
                string KolonAdi = null;
                switch (Kolon)
                {
                    #region Admin
                case "ekleyen":
                    Kolon    = "admin_id_ek";
                    KolonAdi = Kolon;
                    break;
                    #endregion

                    #region İşlem
                case "guncelleyen":
                    Kolon    = "admin_id_gun";
                    KolonAdi = Kolon;
                    break;
                    #endregion
                }
                #endregion

                #region İlk SQL - SONUÇ 1

                #region İlk (Ham) SQL
                var SQL1 = (from p in SME.tbl_urunler_kategoriler
                            select new
                {
                    p.id,
                    p.kategori_id,
                    p.urun_id,
                    p.tarih_ek,
                    p.tarih_gun,
                    p.admin_id_ek,
                    p.admin_id_gun
                });
                #endregion

                #region SQL i Cache 'e Atma
                //CachedQueryOptions CQO = new CachedQueryOptions();
                var SQL2 = (CacheOlayi ? SQL1.AsCached(SayfaAdi).AsQueryable().OrderBy(Kolon + " " + AscDesc).ToList() : SQL1.AsQueryable().OrderBy(Kolon + " " + AscDesc).ToList());
                #endregion

                #region Sonuç 1
                Sonuc1 = SQL2;
                #endregion

                #endregion

                #region İlk SQL in Ccount ı Sıfırdan Büyükse Filtreleme Yap
                if (SQL2.Count() > 0)
                {
                    #region Filtreleme
                    if (!string.IsNullOrEmpty(s))
                    {
                        FilterConditions FC = new FilterConditions(s);

                        foreach (FilterCondition FCO in FC.Conditions)
                        {
                            Comparison C  = FCO.Comparison;
                            FilterType FT = FCO.FilterType;

                            #region Kolon Adı Boşsa Değer Ver
                            if (string.IsNullOrEmpty(KolonAdi))
                            {
                                KolonAdi = FCO.Name;
                            }
                            #endregion

                            #region Gelen Değerler
                            object value;
                            #endregion

                            switch (FCO.FilterType)
                            {
                                #region Filtre Tipi Bool İse
                            case FilterType.Boolean:
                                value = FCO.ValueAsBoolean;
                                break;
                                #endregion

                                #region Filtre Tipi Date İse
                            case FilterType.Date:
                                value = FCO.ValueAsDate;
                                break;
                                #endregion

                                #region Filtre Tipi Liste İse
                            case FilterType.List:
                                value = FCO.ValuesList;
                                break;
                                #endregion

                                #region Filtre Tipi Nümerik İse
                            case FilterType.Numeric:
                                if (SQL2.Count() > 0 && (SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(int) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Int16) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Int32) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Int64) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Nullable <int>) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Nullable <Int16>) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Nullable <Int32>) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Nullable <Int64>)))
                                {
                                    value = FCO.ValueAsInt;
                                }
                                else
                                {
                                    value = FCO.ValueAsDouble;
                                }
                                break;
                                #endregion

                                #region Filtre Tipi String İse
                            case FilterType.String:
                                value = FCO.Value;
                                break;
                                #endregion

                                #region Switch Default
                            default:
                                throw new ArgumentOutOfRangeException();
                                #endregion
                            }

                            SQL2.RemoveAll(item =>
                            {
                                object o       = item.GetType().GetProperty(KolonAdi).GetValue(item, null);
                                IComparable IC = o as IComparable;

                                switch (C)
                                {
                                case Comparison.Eq:

                                    switch (FT)
                                    {
                                        #region Filtre Tipi Liste İse
                                    case FilterType.List:
                                        return(!(value as ReadOnlyCollection <string>).Contains(o.ToString()));

                                        #endregion

                                        #region Filtre Tipi String İse
                                    case FilterType.String:
                                        return(!o.ToString().StartsWith(value.ToString()));

                                        #endregion

                                        #region Switch Default
                                    default:
                                        return(!IC.Equals(value));

                                        #endregion
                                    }

                                case Comparison.Gt:
                                    return(IC.CompareTo(value) < 1);

                                case Comparison.Lt:
                                    return(IC.CompareTo(value) > -1);

                                    #region Switch Default
                                default:
                                    throw new ArgumentOutOfRangeException();
                                    #endregion
                                }
                            });
                        }
                    }
                    #endregion
                }
                #endregion

                #region SQL İçeriğini Değiştirme
                var SQL3 = SQL2.Skip(Baslangic).Take(Bitis).Select(p => new
                {
                    p.id,
                    p.kategori_id,
                    p.urun_id,
                    p.tarih_ek,
                    p.tarih_gun,
                    p.admin_id_ek,
                    p.admin_id_gun,
                    kategori_ziyaret = SME.tbl_ziyaretler.Where(k => k.kategori_id == p.kategori_id).Count(),
                    urun_ziyaret     = SME.tbl_ziyaretler.Where(k => k.urun_id == p.urun_id).Count(),
                    urun_dil         = SME.tbl_urunler.Where(k => k.id == p.urun_id).Select(x => (x.dil_id != null ? SME.tbl_diller.Where(t => t.id == x.dil_id).Select(y => y.dil).FirstOrDefault() : null)).FirstOrDefault(),
                    kategori_dil     = SME.tbl_kategoriler.Where(k => k.id == p.kategori_id).Select(x => (x.dil_id != null ? SME.tbl_diller.Where(t => t.id == x.dil_id).Select(y => y.dil).FirstOrDefault() : null)).FirstOrDefault(),
                    kategori         = SME.tbl_kategoriler.Where(k => k.id == p.kategori_id).Select(x => x.ad).FirstOrDefault(),
                    urun             = SME.tbl_urunler.Where(k => k.id == p.urun_id).Select(x => (x.kod_id != null ? SME.tbl_kodlar.Where(t => t.id == x.kod_id).Select(y => y.kod).FirstOrDefault() + " - " : "") + x.ad).FirstOrDefault(),
                    ekleyen          = (p.admin_id_ek != null ? SME.tbl_adminler.Where(k => k.id == p.admin_id_ek).Select(x => "(" + x.kullanici_adi + ") " + x.ad_soyad).FirstOrDefault() : null),
                    guncelleyen      = (p.admin_id_gun != null ? SME.tbl_adminler.Where(k => k.id == p.admin_id_gun).Select(x => "(" + x.kullanici_adi + ") " + x.ad_soyad).FirstOrDefault() : null)
                }).AsEnumerable().Cast <object>().ToList();
                #endregion

                #region Sonuç 2
                Sonuc2 = SQL3;
                #endregion
            }
            catch
            {
                #region Boş Değer Döndür
                Sonuc1 = null;
                Sonuc2 = null;
                #endregion
            }
        }

        #endregion
    }
        protected void Veriler(int Baslangic, int Bitis, string s, string Kolon, string AscDesc, out IList Sonuc1, out IList Sonuc2)
        {
            #region Çalışan Hali
            using (BaglantiCumlesi db = new BaglantiCumlesi())
            {
                try
                {
                    #region Kolon Sorting Ayarı
                    string KolonAdi = null;
                    switch (Kolon)
                    {
                        #region Admin
                    case "admin":
                        Kolon    = "admin_id";
                        KolonAdi = Kolon;
                        break;
                        #endregion

                        #region İşlem
                    case "islems":
                        Kolon    = "islem";
                        KolonAdi = Kolon;
                        break;
                        #endregion
                    }
                    #endregion

                    #region İlk SQL - SONUÇ 1

                    #region İlk (Ham) SQL
                    var SQL1 = (from p in db.tbl_giris_cikislar
                                select new
                    {
                        p.id,
                        p.admin_id,
                        p.islem,
                        p.tarih,
                        p.kullanici_id
                    });
                    #endregion

                    #region SQL i Cache 'e Atma
                    //CachedQueryOptions CQO = new CachedQueryOptions();
                    var SQL2 = (CacheOlayi ? SQL1.AsCached(SayfaAdi).AsQueryable().OrderBy(Kolon + " " + AscDesc).ToList() : SQL1.AsQueryable().OrderBy(Kolon + " " + AscDesc).ToList());
                    #endregion

                    #region Sonuç 1
                    Sonuc1 = SQL2;
                    #endregion

                    #endregion

                    #region İlk SQL in Ccount ı Sıfırdan Büyükse Filtreleme Yap
                    if (SQL2.Any())
                    {
                        #region Filtreleme
                        if (!string.IsNullOrEmpty(s))
                        {
                            FilterConditions FC = new FilterConditions(s);

                            foreach (FilterCondition FCO in FC.Conditions)
                            {
                                Comparison C  = FCO.Comparison;
                                FilterType FT = FCO.FilterType;

                                #region Kolon Adı Boşsa Değer Ver
                                if (string.IsNullOrEmpty(KolonAdi))
                                {
                                    KolonAdi = FCO.Name;
                                }
                                #endregion

                                #region Gelen Değerler
                                object value;
                                #endregion

                                switch (FCO.FilterType)
                                {
                                    #region Filtre Tipi Bool İse
                                case FilterType.Boolean:
                                    value = FCO.ValueAsBoolean;
                                    break;
                                    #endregion

                                    #region Filtre Tipi Date İse
                                case FilterType.Date:
                                    value = FCO.ValueAsDate;
                                    break;
                                    #endregion

                                    #region Filtre Tipi Liste İse
                                case FilterType.List:
                                    value = FCO.ValuesList;
                                    break;
                                    #endregion

                                    #region Filtre Tipi Nümerik İse
                                case FilterType.Numeric:
                                    if (SQL2.Any() && (SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(int) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Int16) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Int32) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Int64) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Nullable <int>) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Nullable <Int16>) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Nullable <Int32>) || SQL2[0].GetType().GetProperty(KolonAdi).PropertyType == typeof(Nullable <Int64>)))
                                    {
                                        value = FCO.ValueAsInt;
                                    }
                                    else
                                    {
                                        value = FCO.ValueAsDouble;
                                    }
                                    break;
                                    #endregion

                                    #region Filtre Tipi String İse
                                case FilterType.String:
                                    value = FCO.Value;
                                    break;
                                    #endregion

                                    #region Switch Default
                                default:
                                    throw new ArgumentOutOfRangeException();
                                    #endregion
                                }

                                SQL2.RemoveAll(i =>
                                {
                                    object o       = i.GetType().GetProperty(KolonAdi).GetValue(i, null);
                                    IComparable IC = o as IComparable;

                                    switch (C)
                                    {
                                    case Comparison.Eq:

                                        switch (FT)
                                        {
                                            #region Filtre Tipi Liste İse
                                        case FilterType.List:
                                            return(!(value as ReadOnlyCollection <string>).Contains(o.ToString()));

                                            #endregion

                                            #region Filtre Tipi String İse
                                        case FilterType.String:
                                            return(!o.ToString().StartsWith(value.ToString()));

                                            #endregion

                                            #region Switch Default
                                        default:
                                            return(!IC.Equals(value));

                                            #endregion
                                        }

                                    case Comparison.Gt:
                                        return(IC.CompareTo(value) < 1);

                                    case Comparison.Lt:
                                        return(IC.CompareTo(value) > -1);

                                        #region Switch Default
                                    default:
                                        throw new ArgumentOutOfRangeException();
                                        #endregion
                                    }
                                });
                            }
                        }
                        #endregion
                    }
                    #endregion

                    #region SQL İçeriğini Değiştirme
                    var SQL3 = SQL2.Skip(Baslangic).Take(Bitis).Select(p => new
                    {
                        p.admin_id,
                        p.islem,
                        #region Admin Adı
                        admin = AdminClass.Admin(p.admin_id),
                        #endregion
                        #region İşlem Tipi
                        islems = (p.islem == 1 ? "Çıkış" : "Giriş"),
                        #endregion
                        p.id,
                        p.kullanici_id,
                        #region IP Adresi
                        ip = db.tbl_all_http.Where(k => k.kayit_id == p.id && k.tablo == "tbl_giris_cikislar").Select(x => x.REMOTE_ADDR).FirstOrDefault(),
                        #endregion
                        p.tarih
                    }).AsEnumerable().Cast <object>().ToList();
                    #endregion

                    #region Sonuç 2
                    Sonuc2 = SQL3;
                    #endregion
                }
                catch
                {
                    #region Boş Değer Döndür
                    Sonuc1 = null;
                    Sonuc2 = null;
                    #endregion
                }
            }

            #endregion
        }
Example #33
0
 /// <summary>
 ///   Method for binary comparism
 /// </summary>
 /// <returns> <c>true</c> for inequality; otherwise, <c>false</c> . </returns>
 /// <param name='property'> Property. </param>
 /// <param name='literal'> Literal. </param>
 private static Boolean BinaryNotEqualsMethod(IComparable property, IComparable literal)
 {
     return !property.Equals(literal);
 }