public IList <DataRowViewModel> GetRecords(Entity entity, IList <IEntityFilter> filters = null, string searchQuery = null, string order = null, string orderDirection = null, bool determineDisplayValue = false)
        {
            var search = new EntitySearch {
                Query = searchQuery, Properties = entity.SearchProperties
            };

            order          = order.IsNullOrEmpty() ? entity.Key.ColumnName : order;
            orderDirection = orderDirection.IsNullOrEmpty() ? "ASC" : orderDirection.ToUpper();
            var orderBy = order + " " + orderDirection;
            var columns = string.Join(",", entity.Properties.Where(x => !x.IsForeignKey || (!x.IsCollection && x.IsForeignKey)).Select(x => x.ColumnName).Distinct());

            var where = ConvertFiltersToSQL(filters, search);

            var table = new DynamicModel(AdminInitialise.ConnectionString, tableName: entity.TableName, primaryKeyField: entity.Key.ColumnName);

            var result = table.All(columns: columns, where : where, orderBy: orderBy);

            var data = new List <DataRowViewModel>();

            foreach (var item in result)
            {
                data.Add(ExpandoToDataRow(item, entity));
            }

            if (determineDisplayValue)
            {
                foreach (var row in data)
                {
                    row.DisplayName = GetDisplayName(entity, row);
                }
            }

            return(data);
        }
        public List <dynamic> GetAllInvoices()
        {
            var invoices = new DynamicModel("invoicesDB", "invoice", "id");

            return(invoices.All().ToList());

            //dynamic invoices = new Invoices();
            //return (invoices.find() as IEnumerable<dynamic>).ToList();
        }
Beispiel #3
0
        public OperationResult <Contact[]> GetContacts()
        {
            var result = new OperationResult <Contact[]>();

            result.Data = table.All().Select(x => new Contact()
            {
                Id = x.Id, Dob = x.Dob, Name = x.Name, Phone = x.Phone
            }).ToArray();
            return(result);
        }
Beispiel #4
0
        public IList <DataRow> GetRecords(
            Entity entity,
            IList <IEntityFilter> filters = null,
            string searchQuery            = null,
            string order               = null,
            string orderDirection      = null,
            bool determineDisplayValue = false)
        {
            var search = new EntitySearch
            {
                Query      = searchQuery,
                Properties = entity.SearchProperties
            };

            order          = order.IsNullOrEmpty() ? entity.Key.ColumnName : order;
            orderDirection = orderDirection.IsNullOrEmpty() ?
                             "ASC" :
                             orderDirection.ToUpper();
            var orderBy = order + " " + orderDirection;
            var columns = string.Join(",",
                                      entity.Properties
                                      .Where(x =>
                                             !x.IsForeignKey ||
                                             (!x.TypeInfo.IsCollection && x.IsForeignKey))
                                      .Select(x => x.ColumnName)
                                      .Distinct());
            List <object> args;

            var where = ConvertFiltersToSql(filters, search, out args);

            var table = new DynamicModel(
                AdminInitialise.ConnectionStringName,
                entity.TableName,
                entity.Key.ColumnName);

            var result = table.All(
                columns: columns,
                where : where,
                orderBy: orderBy,
                args: args.ToArray());

            var data = result
                       .Select(item => new DataRow(item, entity))
                       .ToList();

            if (determineDisplayValue)
            {
                foreach (var row in data)
                {
                    row.DisplayName = entity.ToString(row);
                }
            }

            return(data);
        }
Beispiel #5
0
        public static dynamic Process(DataProcessRequest request)
        {
            dynamic result = null;
            var     tbl    = new DynamicModel(ConnectionString, tableName: request.EntityType.Name, primaryKeyField: "Id");

            switch (request.Type)
            {
            case RequestType.GET:
                if (request.Object != null)
                {
                    throw new NotImplementedException();
                    //result = tbl.
                }
                else
                {
                    result = tbl.All();
                }
                break;

            case RequestType.POST:
                // Id is not allowed when doing an insert as this is the auto generated key as IDENTITY(1,1)
                IDictionary <string, object> map = ObjectExtensions.ToDictionary(request.Object);
                map.Remove("Id");
                result = tbl.Insert(map);
                break;

            case RequestType.UPDATE:
                result = tbl.Update(request.Object);
                break;

            case RequestType.PUT:
                throw new NotImplementedException();
                break;

            case RequestType.DELETE:
                throw new NotImplementedException();
                break;

            default:
                break;
            }
            return(result);
        }
Beispiel #6
0
        public ActionResult Index()
        {
            var c = comments.All();

            return(View(c));
        }
Beispiel #7
0
        public PagedRecords GetRecords(
            Entity entity,
            IList <BaseFilter> filters = null,
            string searchQuery         = null,
            string order               = null,
            string orderDirection      = null,
            bool determineDisplayValue = false,
            int?page             = null,
            int?take             = null,
            bool loadForeignKeys = false)
        {
            var search = new EntitySearch
            {
                Query      = searchQuery,
                Properties = entity.SearchProperties
            };

            order          = order.IsNullOrEmpty() ? entity.Keys.FirstOrDefault().Column : order;
            orderDirection = orderDirection.IsNullOrEmpty() ?
                             "ASC" :
                             orderDirection.ToUpper();
            var orderBy = order + " " + orderDirection;
            var columns = string.Join(",",
                                      entity.DisplayProperties
                                      .Union(entity.Keys)
                                      .Where(x =>
                                             !x.IsForeignKey ||
                                             (!x.TypeInfo.IsCollection && x.IsForeignKey))
                                      .Select(x => $"{entity.Table}.{x.Column} as {x.Column}")
                                      .Distinct());
            List <object> args;

            var where = ConvertFiltersToSql(filters, search, out args);

            var table = new DynamicModel(
                _admin.ConnectionStringName,
                entity.Table,
                entity.JoinedKeys);

            if (page.HasValue && take.HasValue)
            {
                var result = table.Paged(
                    columns: columns,
                    where : where,
                    orderBy: orderBy,
                    currentPage: page.Value,
                    pageSize: take.Value,
                    args: args.ToArray());

                var records = new List <EntityRecord>();
                foreach (var item in result.Items)
                {
                    records.Add(entity.CreateRecord((Dictionary <string, object>)item));
                }

                return(new PagedRecords
                {
                    TotalItems = result.TotalRecords,
                    TotalPages = result.TotalPages,
                    Records = records
                });
            }
            else
            {
                var joins = "";
                if (loadForeignKeys)
                {
                    foreach (var foreignKey in entity.ForeignKeys.WhereOneToMany())
                    {
                        var joinTable    = foreignKey.ForeignEntity.Table;
                        var joinProperty = foreignKey.ForeignEntity.Keys.FirstOrDefault(x => x.ForeignEntity == entity);

                        var keyProperty = foreignKey.TypeInfo.IsCollection ?
                                          entity.Keys.FirstOrDefault() :
                                          foreignKey;

                        joins += Environment.NewLine +
                                 $"left join {joinTable} on {joinTable}.{joinProperty.Column} = {entity.Table}.{keyProperty.Column}";

                        var propertyToGet = foreignKey.ForeignEntity.Keys.FirstOrDefault(x => x.ForeignEntity != entity) ??
                                            joinProperty;

                        columns += $",{joinTable}.{propertyToGet.Column} as {foreignKey.Column}";
                    }
                }
                var result = table.All(
                    columns: columns,
                    joins: joins,
                    where : where,
                    orderBy: orderBy,
                    args: args.ToArray());

                var records = result
                              .Select(item => entity.CreateRecord(item))
                              .ToList();

                return(new PagedRecords
                {
                    Records = records
                });
            }
        }
Beispiel #8
0
        public PagedRecords GetRecords(
            Entity entity,
            IList <BaseFilter> filters = null,
            string searchQuery         = null,
            string order               = null,
            string orderDirection      = null,
            bool determineDisplayValue = false,
            int?page = null,
            int?take = null)
        {
            var search = new EntitySearch
            {
                Query      = searchQuery,
                Properties = entity.SearchProperties
            };

            order          = order.IsNullOrEmpty() ? entity.Key.FirstOrDefault().ColumnName : order;
            orderDirection = orderDirection.IsNullOrEmpty() ?
                             "ASC" :
                             orderDirection.ToUpper();
            var orderBy = order + " " + orderDirection;
            var columns = string.Join(",",
                                      entity.Properties
                                      .Where(x =>
                                             !x.IsForeignKey ||
                                             (!x.TypeInfo.IsCollection && x.IsForeignKey))
                                      .Select(x => x.ColumnName)
                                      .Distinct());
            List <object> args;

            var where = ConvertFiltersToSql(filters, search, out args);

            var table = new DynamicModel(
                Admin.ConnectionStringName,
                entity.TableName,
                entity.JoinedKey);

            if (page.HasValue && take.HasValue)
            {
                var result = table.Paged(
                    columns: columns,
                    where : where,
                    orderBy: orderBy,
                    currentPage: page.Value,
                    pageSize: take.Value,
                    args: args.ToArray());

                var data = new List <DataRow>();
                foreach (var item in result.Items)
                {
                    data.Add(new DataRow(item, entity));
                }

                return(new PagedRecords
                {
                    TotalItems = result.TotalRecords,
                    TotalPages = result.TotalPages,
                    Records = data
                });
            }
            else
            {
                var result = table.All(
                    columns: columns,
                    where : where,
                    orderBy: orderBy,
                    args: args.ToArray());

                var data = result
                           .Select(item => new DataRow(item, entity))
                           .ToList();

                if (determineDisplayValue)
                {
                    foreach (var row in data)
                    {
                        row.DisplayName = entity.ToString(row);
                    }
                }

                return(new PagedRecords
                {
                    Records = data
                });
            }
        }
Beispiel #9
0
 public ActionResult Index()
 {
     return(VidpubJSON(_productions.All()));
 }
        public List <dynamic> GetAllInvoicesDetailsById(int id)
        {
            var invoicesDetails = new DynamicModel("invoicesDB", "invoiceDetail", "id");

            return(invoicesDetails.All(where : "WHERE idInvoice=@0", args: id).ToList());
        }
        public List <dynamic> GetAllInvoicesDetails()
        {
            var invoicesDetails = new DynamicModel("invoicesDB", "invoiceDetail", "id");

            return(invoicesDetails.All().ToList());
        }