// CRUD public void DeleteItem(IModelDefinitionForm form, object item) { using (var db = GetDbContext(form)) { db.Remove(item); db.SaveChanges(); } }
public object UpdateItem(IModelDefinitionForm form, object item) { using (var db = GetDbContext(form)) { db.Update(item); db.SaveChanges(); return(item); } }
// read fields public IEnumerable <DataField> GetFormFields(IModelDefinitionForm form, Type entity = null) { var fieldsSet = entity == null?form.GetDetailsFields() : form.GetEntityFields(entity); using (var db = GetDbContext(form)) { var pk = db.FindSinglePrimaryKeyProperty(entity ?? form.GetDetailsType()); var pkField = fieldsSet.Single(f => f.BindingProperty == pk.Name); pkField.PrimaryKey = true; pkField.PrimaryKeyGeneratedType = (PrimaryKeyGeneratedTypes)pk.ValueGenerated; } return(fieldsSet); }
public void SetParameters(IModelDefinitionForm form, FormViewOptions viewOptions, Type modelType, IEnumerable <DataField> fields, IList modelItems) { _form = form; _viewOptions = viewOptions; _modelType = modelType; _fields = fields; _modelItems = modelItems; // check if items refreshed if (_modelItemsHash != ModelItems.GetHashCode()) { IsEditing = false; _modelItemReserveCopy = null; _modelItemsHash = ModelItems.GetHashCode(); } }
//public IEnumerable<DataField> GetFormFields(Type formType) //{ // throw new NotImplementedException(); //} //public Tuple<IEnumerable<DataField>, IEnumerable<DataField>> GetMultiFormFields(Type formType) //{ // throw new NotImplementedException(); //} // read data //public IList GetModelData(IModelDefinitionForm form) //{ // throw new NotImplementedException(); //} public IList GetFilteredModelData(IModelDefinitionForm form, int?filterValue, Type entity = null) { using (var db = GetDbContext(form)) { var entityType = entity ?? form.GetDetailsType(); IQueryable query = db.FindSet(entityType); if (filterValue != null) //{ // query = query.Where("1 = 2"); //} //else { var filterColumn = form.GetDetailsFields().Single(f => f.Filter).BindingProperty; query = query.Where($"{filterColumn} = {filterValue}"); } var result = query.ToDynamicList <object>(); return(result); } }