Example #1
0
        private void AssertCssClassFor <TProperty>(Expression <Func <AllTypesView, TProperty> > property, String expected)
        {
            columns = SubstituteColumns <AllTypesView, TProperty>(column);
            columns.AddProperty(property);

            column.Received().Css(expected);
        }
Example #2
0
 public static IGridColumn <T> AddProperty <T, TProperty>(this IGridColumnCollection <T> column, Expression <Func <T, TProperty> > property)
 {
     return(column
            .Add(property)
            .Css(GetCssClassFor(property))
            .Titled(ResourceProvider.GetPropertyTitle(property)));
 }
Example #3
0
        public byte[] GenerateExcel <T>(IGridColumnCollection <T> columns, IEnumerable <T> items)
        {
            ExcelData excelData = new ExcelData();

            excelData.SheetName = Strings.Items;
            var header = new List <ExcelCell>();

            foreach (IGridColumn column in columns)
            {
                if (!column.Hidden)
                {
                    header.Add(new ExcelCell(column.Title));
                }
            }
            excelData.Cells.Add(header);

            foreach (var item in items)
            {
                List <ExcelCell> row = new List <ExcelCell>();
                foreach (IGridColumn column in columns)
                {
                    if (!column.Hidden)
                    {
                        var cell = column.GetCell(item) as GridCell;
                        cell.Encode = false;
                        row.Add(new ExcelCell(cell.ToString()));
                    }
                }
                excelData.Cells.Add(row);
            }
            return(GenerateExcel(excelData));
        }
Example #4
0
 public static IGridColumn <T> AddDateTimeProperty <T>(this IGridColumnCollection <T> column, Expression <Func <T, DateTime?> > property)
 {
     return(column
            .AddProperty(property)
            .Format(String.Format("{{0:{0} {1}}}",
                                  CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern,
                                  CultureInfo.CurrentUICulture.DateTimeFormat.ShortTimePattern)));
 }
Example #5
0
        private IGridColumnCollection <TModel> SubstituteColumns <TModel, TProperty>(IGridColumn <TModel> gridColumn)
        {
            IGridColumnCollection <TModel> columns = Substitute.For <IGridColumnCollection <TModel> >();

            columns.Add(Arg.Any <Expression <Func <TModel, TProperty> > >()).Returns(gridColumn);
            columns.Add().Returns(gridColumn);

            return(columns);
        }
Example #6
0
    protected virtual void CnCreatingColumnsConfiguration(IGridColumnCollection <T> columns)
    {
        CnCreatingColumnsConfiguration(columns, out Dictionary <IGridColumn <T>, Func <T, string> >?customColumnValueGetters);

        // Call with GridBlazor.Columns.GridColumnCollection happens first
        if (CustomColumnValueGetters == null)
        {
            CustomColumnValueGetters = customColumnValueGetters;
        }
    }
Example #7
0
        public void SetUp()
        {
            column  = SubstituteColumn <AllTypesView>();
            options = SubstituteOptions <AllTypesView>();
            columns = SubstituteColumns <AllTypesView, DateTime?>(column);

            HttpContext.Current = HttpContextFactory.CreateHttpContext();
            urlHelper           = new UrlHelper(HttpContext.Current.Request.RequestContext);

            Authorization.Provider = Substitute.For <IAuthorizationProvider>();
            Authorization.Provider.IsAuthorizedFor(Arg.Any <String>(), Arg.Any <String>(), Arg.Any <String>(), Arg.Any <String>()).Returns(true);
        }
    public static void CreateColumns <T>(IGridColumnCollection <T> columns)
    {
        Type         t           = typeof(T);
        PropertyInfo title       = t.GetProperty("Title");
        PropertyInfo description = t.GetProperty("Description");

        columns.Add(title)
        .Titled("MyTitle")
        .SetWidth(100);
        columns.Add(description)
        .Sortable(true);
    }
Example #9
0
        public static IGridColumn <T> AddActionLink <T>(this IGridColumnCollection <T> column, String action, String iconClass)
        {
            if (Authorization.Provider != null && !Authorization.Provider.IsAuthorizedFor(CurrentAccountId, CurrentArea, CurrentController, action))
            {
                return(null);
            }

            return(column
                   .Add()
                   .Encoded(false)
                   .Sanitized(false)
                   .Css("action-cell")
                   .RenderAction(action, iconClass));
        }
Example #10
0
        public static IGridColumn <T> AddActionLink <T>(this IGridColumnCollection <T> column, LinkAction action)
        {
            if (Authorization.Provider != null && !Authorization.Provider.IsAuthorizedFor(CurrentAccountId, CurrentArea, CurrentController, action.ToString()))
            {
                return(null);
            }

            IGridColumn <T> gridColumn = column
                                         .Add()
                                         .SetWidth(20)
                                         .Encoded(false)
                                         .Sanitized(false)
                                         .Css("action-cell");

            AddLinkAction(gridColumn, action);

            return(gridColumn);
        }
Example #11
0
        public void AddActionLink_OnModelWihoutKeyPropertyThrows()
        {
            Func <Object, String>          deleteFunc    = null;
            IGridColumn <Object>           objectColumn  = SubstituteColumn <Object>();
            IGridColumnCollection <Object> objectColumns = SubstituteColumns <Object, String>(objectColumn);

            objectColumn
            .RenderValueAs(Arg.Any <Func <Object, String> >())
            .Returns(objectColumn)
            .AndDoes(info =>
            {
                deleteFunc = info.Arg <Func <Object, String> >();
            });

            objectColumns.AddActionLink(LinkAction.Delete);

            Exception expected = Assert.Throws <Exception>(() => deleteFunc.Invoke(new Object()));

            Assert.AreEqual(expected.Message, "Object type does not have a key property.");
        }
Example #12
0
        public void AddActionLink_OnModelWihoutKeyPropertyThrows()
        {
            Func <Object, String>          renderer      = null;
            IGridColumn <Object>           objectColumn  = SubstituteColumn <Object>();
            IGridColumnCollection <Object> objectColumns = SubstituteColumns <Object, String>(objectColumn);

            objectColumn
            .RenderValueAs(Arg.Any <Func <Object, String> >())
            .Returns(objectColumn)
            .AndDoes(info =>
            {
                renderer = info.Arg <Func <Object, String> >();
            });

            objectColumns.AddActionLink("Delete", "fa fa-times");

            String actual   = Assert.Throws <Exception>(() => renderer.Invoke(new Object())).Message;
            String expected = "Object type does not have a key property.";

            Assert.AreEqual(expected, actual);
        }
 public HtmlGridView(IEnumerable <T> models, string gridname)
 {
     this._models   = models;
     this._gridname = gridname ?? this._gridname;
     _columns       = new GridColumnCollection <T>(this);
 }
Example #14
0
 protected abstract void CnCreatingColumnsConfiguration(
     IGridColumnCollection <T> columns,
     out Dictionary <IGridColumn <T>, Func <T, string> >?customColumnValueGetters
     );