private static object UpdateUsingKeys(DataStrategy dataStrategy, DynamicTable table, object[] args)
        {
            var record = ObjectToDictionary(args[0]);
            var list = record as IList<IDictionary<string, object>>;
            if (list != null) return dataStrategy.UpdateMany(table.GetQualifiedName(), list);

            var dict = record as IDictionary<string, object>;
            return dataStrategy.Update(table.GetQualifiedName(), dict);
        }
Example #2
0
        public object Execute(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
        {
            if (args.Length != 1) throw new ArgumentException("Incorrect number of arguments to Update method.");

            var record = ObjectToDictionary(args[0]);
            var list = record as IList<IDictionary<string, object>>;
            if (list != null) return dataStrategy.UpdateMany(table.GetQualifiedName(), list);

            var dict = record as IDictionary<string, object>;
            return dataStrategy.Update(table.GetQualifiedName(), dict);
        }
Example #3
0
        internal static object UpdateByKeyFields(string tableName, DataStrategy dataStrategy, object entity, IEnumerable<string> keyFieldNames)
        {
            var record = ObjectToDictionary(entity);
            var list = record as IList<IDictionary<string, object>>;
            if (list != null) return dataStrategy.UpdateMany(tableName, list, keyFieldNames.ToList());

            var dict = record as IDictionary<string, object>;
            var criteria = GetCriteria(keyFieldNames, dict);
            var criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(tableName, criteria);
            return dataStrategy.Update(tableName, dict, criteriaExpression);
        }
Example #4
0
        private static object UpdateUsingKeys(DataStrategy dataStrategy, DynamicTable table, object[] args)
        {
            var record = ObjectToDictionary(args[0]);
            var list   = record as IList <IDictionary <string, object> >;

            if (list != null)
            {
                return(dataStrategy.UpdateMany(table.GetQualifiedName(), list));
            }

            var dict = record as IDictionary <string, object>;

            return(dataStrategy.Update(table.GetQualifiedName(), dict));
        }
Example #5
0
        internal static object UpdateByKeyFields(string tableName, DataStrategy dataStrategy, object entity, IEnumerable <string> keyFieldNames)
        {
            var record = UpdateCommand.ObjectToDictionary(entity);
            var list   = record as IList <IDictionary <string, object> >;

            if (list != null)
            {
                return(dataStrategy.UpdateMany(tableName, list, keyFieldNames));
            }

            var dict               = record as IDictionary <string, object>;
            var criteria           = GetCriteria(keyFieldNames, dict);
            var criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(tableName, criteria);

            return(dataStrategy.Update(tableName, dict, criteriaExpression));
        }
        private static object UpdateUsingOriginalValues(DataStrategy dataStrategy, DynamicTable table, object[] args)
        {
            var newValues = ObjectToDictionary(args[0]);
            var newValuesList = newValues as IList<IDictionary<string, object>>;
            if (newValuesList != null)
            {
                var originalValuesList = ObjectToDictionary(args[1]) as IList<IDictionary<string, object>>;
                if (originalValuesList == null) throw new InvalidOperationException("Parameter type mismatch; both parameters to Update should be same type.");
                return dataStrategy.UpdateMany(table.GetQualifiedName(), newValuesList, originalValuesList);
            }

            var newValuesDict = newValues as IDictionary<string, object>;
            var originalValuesDict = ObjectToDictionary(args[1]) as IDictionary<string, object>;
            if (originalValuesDict == null) throw new InvalidOperationException("Parameter type mismatch; both parameters to Update should be same type.");
            return dataStrategy.Update(table.GetQualifiedName(), newValuesDict, originalValuesDict);
        }
Example #7
0
        private static object UpdateUsingOriginalValues(DataStrategy dataStrategy, DynamicTable table, object[] args)
        {
            var newValues     = ObjectToDictionary(args[0]);
            var newValuesList = newValues as IList <IDictionary <string, object> >;

            if (newValuesList != null)
            {
                var originalValuesList = ObjectToDictionary(args[1]) as IList <IDictionary <string, object> >;
                if (originalValuesList == null)
                {
                    throw new InvalidOperationException("Parameter type mismatch; both parameters to Update should be same type.");
                }
                return(dataStrategy.UpdateMany(table.GetQualifiedName(), newValuesList, originalValuesList));
            }

            var newValuesDict      = newValues as IDictionary <string, object>;
            var originalValuesDict = ObjectToDictionary(args[1]) as IDictionary <string, object>;

            if (originalValuesDict == null)
            {
                throw new InvalidOperationException("Parameter type mismatch; both parameters to Update should be same type.");
            }
            return(dataStrategy.Update(table.GetQualifiedName(), newValuesDict, originalValuesDict));
        }