Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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());
        }