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); }
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); }
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); }
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)); }
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); }
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)); }