private AddedColumn MapToEntity(AddedColumnCreateModel model) { AddedColumn entity = new AddedColumn(); entity.ID = (int)_sequence.GetNextSequenceValue(typeof(AddedColumn).Name); entity.ColumnName = model.ColumnName; entity.ColumnType = model.ColumnType; entity.EntityName = model.EntityName; return(entity); }
private AddedColumnModel MapToModel(AddedColumn entity) { AddedColumnModel model = new AddedColumnModel(); model.ID = entity.ID; model.ColumnName = entity.ColumnName; model.ColumnType = entity.ColumnType; model.EntityName = entity.EntityName; return(model); }
public async Task <ResultModel <AddedColumnModel> > Create(AddedColumnCreateModel model) { try { AddedColumn entity = MapToEntity(model); entity = await _addedColumn.Add(entity); await _addedColumn.Commit(); AddedColumnModel returnModel = MapToModel(entity); return(ResultModel <AddedColumnModel> .GetSuccessResult(returnModel)); } catch (Exception e) { await _addedColumn.Abort(); ResultErrorModel error = new ResultErrorModel(e); return(ResultModel <AddedColumnModel> .GetExceptionResult(error)); } }
public override async Task <IEnumerable <Contact> > GetFiltered(List <ColumnFilterInfo> filters, PaginationInfo paginationInfo) { IEnumerable <AddedColumn> addedColumns = await addedColumn.GetAll(); IEnumerable <AddedColumn> contactAddedCols = addedColumns.Where(t => t.EntityName == typeof(Contact).Name); IEnumerable <AddedColumn> companyAddedCols = addedColumns.Where(t => t.EntityName == typeof(Company).Name); ConfigDbSet(); FilterDefinition <Contact> filterDefinition = Builders <Contact> .Filter.Empty; foreach (ColumnFilterInfo filter in filters) { if (filter.EntityName == typeof(Contact).Name) { switch (filter.ColumnName) { case "ID": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.ColumnName, Converters.ToInt(filter.Value)); break; case "Name": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.ColumnName, Converters.ToString(filter.Value)); break; default: AddedColumn col = contactAddedCols.FirstOrDefault(t => t.ColumnName == filter.ColumnName); if (col != null) { switch (col.ColumnType.ToLower()) { case "text": case "date": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.ColumnName, Converters.ToString(filter.Value)); break; case "number": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.ColumnName, Converters.ToInt(filter.Value)); break; } } break; } } else if (filter.EntityName == typeof(Company).Name) { switch (filter.ColumnName) { case "ID": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.EntityName + "." + filter.ColumnName, Converters.ToInt(filter.Value)); break; case "Name": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.EntityName + "." + filter.ColumnName, Converters.ToString(filter.Value)); break; case "NumberOfEmployees": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.EntityName + "." + filter.ColumnName, Converters.ToInt(filter.Value)); break; default: AddedColumn col = companyAddedCols.FirstOrDefault(t => t.EntityName == filter.EntityName && t.ColumnName == filter.ColumnName); if (col != null) { switch (col.ColumnType.ToLower()) { case "text": case "date": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.EntityName + "." + filter.ColumnName, Converters.ToString(filter.Value)); break; case "number": filterDefinition = filterDefinition & Builders <Contact> .Filter.Eq(filter.EntityName + "." + filter.ColumnName, Converters.ToInt(filter.Value)); break; } } break; } //filterDefinition = filterDefinition & Builders<Contact>.Filter.Eq(filter.EntityName + "." + filter.ColumnName, filter.Value); } } var all = await DbSet.FindAsync(filterDefinition); return(all.ToList()); }