protected QueryableDataSourceEditData BuildInsertObject(IDictionary values, IDictionary <string, Exception> validationErrors) { QueryableDataSourceEditData editData = new QueryableDataSourceEditData(); Type dataObjectType = EntityType; IDictionary caseInsensitiveNewValues = new OrderedDictionary(StringComparer.OrdinalIgnoreCase); if (!DataSourceHelper.MergeDictionaries(dataObjectType, InsertParameters, InsertParameters.GetValues(_context, _owner), caseInsensitiveNewValues, validationErrors)) { return(editData); } if (!DataSourceHelper.MergeDictionaries(dataObjectType, InsertParameters, values, caseInsensitiveNewValues, validationErrors)) { return(editData); } editData.NewDataObject = DataSourceHelper.BuildDataObject(dataObjectType, caseInsensitiveNewValues, validationErrors); return(editData); }
protected override int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) { IDictionary <string, Exception> errors = new Dictionary <string, Exception>(StringComparer.OrdinalIgnoreCase); QueryableDataSourceEditData editData = BuildUpdateObjects(keys, values, oldValues, errors); if (errors.Any()) { HandleValidationErrors(errors, DataSourceOperation.Update); } else { return(UpdateObject(editData.OriginalDataObject, editData.NewDataObject)); } return(-1); }
protected override int ExecuteInsert(IDictionary values) { IDictionary <string, Exception> errors = new Dictionary <string, Exception>(StringComparer.OrdinalIgnoreCase); QueryableDataSourceEditData editData = BuildInsertObject(values, errors); if (errors.Any()) { HandleValidationErrors(errors, DataSourceOperation.Insert); } else { return(InsertObject(editData.NewDataObject)); } return(-1); }
protected QueryableDataSourceEditData BuildDeleteObject(IDictionary keys, IDictionary oldValues, IDictionary <string, Exception> validationErrors) { QueryableDataSourceEditData editData = new QueryableDataSourceEditData(); Type dataObjectType = EntityType; IDictionary caseInsensitiveOldValues = new OrderedDictionary(StringComparer.OrdinalIgnoreCase); IDictionary originalValues = GetOriginalValues(keys); ParameterCollection deleteParameters = DeleteParameters; if (!DataSourceHelper.MergeDictionaries(dataObjectType, deleteParameters, keys, caseInsensitiveOldValues, validationErrors)) { return(editData); } if (!DataSourceHelper.MergeDictionaries(dataObjectType, deleteParameters, oldValues, caseInsensitiveOldValues, validationErrors)) { return(editData); } if (originalValues != null) { if (!DataSourceHelper.MergeDictionaries(dataObjectType, deleteParameters, originalValues, caseInsensitiveOldValues, validationErrors)) { return(editData); } } editData.OriginalDataObject = DataSourceHelper.BuildDataObject(dataObjectType, caseInsensitiveOldValues, validationErrors); return(editData); }
protected QueryableDataSourceEditData BuildUpdateObjects(IDictionary keys, IDictionary values, IDictionary oldValues, IDictionary<string, Exception> validationErrors) { QueryableDataSourceEditData editData = new QueryableDataSourceEditData(); Type dataObjectType = EntityType; IDictionary caseInsensitiveNewValues = new OrderedDictionary(StringComparer.OrdinalIgnoreCase); IDictionary caseInsensitiveOldValues = new OrderedDictionary(StringComparer.OrdinalIgnoreCase); IDictionary originalValues = GetOriginalValues(keys); // We start out with the old values, just to pre-populate the list with items // that might not have corresponding new values. For example if a GridView has // a read-only field, there will be an old value, but no new value. The data object // still has to have *some* value for a given field, so we just use the old value. ParameterCollection updateParameters = UpdateParameters; // If we have validation errors bail out while merging bailout if (!DataSourceHelper.MergeDictionaries(dataObjectType, updateParameters, oldValues, caseInsensitiveOldValues, caseInsensitiveNewValues, validationErrors)) { return editData; } if (!DataSourceHelper.MergeDictionaries(dataObjectType, updateParameters, keys, caseInsensitiveOldValues, caseInsensitiveNewValues, validationErrors)) { return editData; } if (originalValues != null) { if (!DataSourceHelper.MergeDictionaries(dataObjectType, updateParameters, originalValues, caseInsensitiveOldValues, caseInsensitiveNewValues, validationErrors)) { return editData; } } if (!DataSourceHelper.MergeDictionaries(dataObjectType, updateParameters, values, caseInsensitiveNewValues, validationErrors)) { return editData; } editData.NewDataObject = DataSourceHelper.BuildDataObject(dataObjectType, caseInsensitiveNewValues, validationErrors); if (editData.NewDataObject != null) { editData.OriginalDataObject = DataSourceHelper.BuildDataObject(dataObjectType, caseInsensitiveOldValues, validationErrors); } return editData; }
protected QueryableDataSourceEditData BuildInsertObject(IDictionary values, IDictionary<string, Exception> validationErrors) { QueryableDataSourceEditData editData = new QueryableDataSourceEditData(); Type dataObjectType = EntityType; IDictionary caseInsensitiveNewValues = new OrderedDictionary(StringComparer.OrdinalIgnoreCase); if (!DataSourceHelper.MergeDictionaries(dataObjectType, InsertParameters, InsertParameters.GetValues(_context, _owner), caseInsensitiveNewValues, validationErrors)) { return editData; } if (!DataSourceHelper.MergeDictionaries(dataObjectType, InsertParameters, values, caseInsensitiveNewValues, validationErrors)) { return editData; } editData.NewDataObject = DataSourceHelper.BuildDataObject(dataObjectType, caseInsensitiveNewValues, validationErrors); return editData; }
protected QueryableDataSourceEditData BuildDeleteObject(IDictionary keys, IDictionary oldValues, IDictionary<string, Exception> validationErrors) { QueryableDataSourceEditData editData = new QueryableDataSourceEditData(); Type dataObjectType = EntityType; IDictionary caseInsensitiveOldValues = new OrderedDictionary(StringComparer.OrdinalIgnoreCase); IDictionary originalValues = GetOriginalValues(keys); ParameterCollection deleteParameters = DeleteParameters; if (!DataSourceHelper.MergeDictionaries(dataObjectType, deleteParameters, keys, caseInsensitiveOldValues, validationErrors)) { return editData; } if (!DataSourceHelper.MergeDictionaries(dataObjectType, deleteParameters, oldValues, caseInsensitiveOldValues, validationErrors)) { return editData; } if (originalValues != null) { if (!DataSourceHelper.MergeDictionaries(dataObjectType, deleteParameters, originalValues, caseInsensitiveOldValues, validationErrors)) { return editData; } } editData.OriginalDataObject = DataSourceHelper.BuildDataObject(dataObjectType, caseInsensitiveOldValues, validationErrors); return editData; }
protected QueryableDataSourceEditData BuildUpdateObjects(IDictionary keys, IDictionary values, IDictionary oldValues, IDictionary <string, Exception> validationErrors) { QueryableDataSourceEditData editData = new QueryableDataSourceEditData(); Type dataObjectType = EntityType; IDictionary caseInsensitiveNewValues = new OrderedDictionary(StringComparer.OrdinalIgnoreCase); IDictionary caseInsensitiveOldValues = new OrderedDictionary(StringComparer.OrdinalIgnoreCase); IDictionary originalValues = GetOriginalValues(keys); // We start out with the old values, just to pre-populate the list with items // that might not have corresponding new values. For example if a GridView has // a read-only field, there will be an old value, but no new value. The data object // still has to have *some* value for a given field, so we just use the old value. ParameterCollection updateParameters = UpdateParameters; // If we have validation errors bail out while merging bailout if (!DataSourceHelper.MergeDictionaries(dataObjectType, updateParameters, oldValues, caseInsensitiveOldValues, caseInsensitiveNewValues, validationErrors)) { return(editData); } if (!DataSourceHelper.MergeDictionaries(dataObjectType, updateParameters, keys, caseInsensitiveOldValues, caseInsensitiveNewValues, validationErrors)) { return(editData); } if (originalValues != null) { if (!DataSourceHelper.MergeDictionaries(dataObjectType, updateParameters, originalValues, caseInsensitiveOldValues, caseInsensitiveNewValues, validationErrors)) { return(editData); } } if (!DataSourceHelper.MergeDictionaries(dataObjectType, updateParameters, values, caseInsensitiveNewValues, validationErrors)) { return(editData); } editData.NewDataObject = DataSourceHelper.BuildDataObject(dataObjectType, caseInsensitiveNewValues, validationErrors); if (editData.NewDataObject != null) { editData.OriginalDataObject = DataSourceHelper.BuildDataObject(dataObjectType, caseInsensitiveOldValues, validationErrors); } return(editData); }