public List <ContributorRowModel> GetItems(BsGridRepositorySettings <ContributorSearchModel> settings, List <int> ids) { this.settings = settings; var result = new List <ContributorRowModel>(); // create filtered query var basicQuery = this.Query(); if (ids != null && ids.Any()) { basicQuery = basicQuery.Where(x => ids.Contains(x.Id)); } else { basicQuery = Filter(basicQuery); } IEnumerable <ContributorRowModel> finalQuery = null; // order var orderedExcelQueryBuilder = new OrderedQueryBuilder <ContributorRowModel>(this.settings.OrderableColumns); orderedExcelQueryBuilder.OrderFor(x => x.Name, y => y.FirstName + " " + y.LastName); var orderedQuery = orderedExcelQueryBuilder.Order(basicQuery, x => x.OrderBy(y => y.StartDate)); // map finalQuery = orderedQuery.Select(MapContributor_ContributorRowModel).ToList(); result = finalQuery.ToList(); return(result); }
public BsJsonResult PublicationPager(BsGridRepositorySettings <PublicationsSearchVm> settings) { var msg = string.Empty; var status = BsResponseStatus.Success; var html = string.Empty; var count = 0; try { _fakeArticlePubRepository.Settings = settings; var viewModel = _fakeArticlePubRepository.ToBsGridViewModel(settings, out count).Wrap <PublicationsVm>(x => x.Grid); html = this.BsRenderPartialView("_PublicationsGrid", viewModel); } catch (Exception ex) { msg = ex.Message; status = BsResponseStatus.ServerError; } return(new BsJsonResult(new { Count = count, Html = html }, status, msg)); }
public ActionResult Publications() { var bsGridSettings = new BsGridRepositorySettings <PublicationsSearchVm>() { PageSize = 10, Page = 1 }; bsGridSettings.Search = new PublicationsSearchVm(); var gridModel = _fakeArticlePubRepository.ToBsGridViewModel(bsGridSettings); var model = new PublicationsVm() { Grid = gridModel, Toolbar = new BsToolbarModel <PublicationsSearchVm> { Search = bsGridSettings.Search } }; var options = new Dictionary <string, string> { { "pagerUrl", Url.Action("PublicationPager") }, { "editUrl", Url.Action("Draft") } }; RequireJsOptions.Add("index", options); return(View(model)); }
public BsJsonResult Count(BsGridRepositorySettings<ContributorSearchModel> settings) { var count = _gridRepository.Count(settings); return new BsJsonResult(new { Count = count }); }
public BsJsonResult Count(BsGridRepositorySettings <ContributorSearchModel> settings) { var count = _gridRepository.Count(settings); return(new BsJsonResult(new { Count = count })); }
public ActionResult ExportExcel(BsGridRepositorySettings <ContributorSearchModel> settings, List <BsGridRowData <int> > items) { var rows = _gridRepository.GetItems(settings, items.Select(x => x.Id).ToList()); try { var builder = new BsGridExcelBuilder <ContributorRowModel>("BForms Contributors.xlsx", rows); builder.ConfigureHeader(header => { header.Order(settings.OrderColumns); header.Style.Font.Bold = true; header.Style.FillColor = BsGridExcelColor.Ivory; header.For(x => x.StartDate) .Text("Contributor since") .Style(style => style.Font.Italic = true); }) .ConfigureRows((row, style) => { if (row.Role == ProjectRole.TeamLeader) { style.Font.Bold = true; } if (row.Role == ProjectRole.Tester) { style.Font.Italic = true; } }) .ConfigureColumns(columns => { columns.For(x => x.Name) .Order(1); columns.For(x => x.Enabled) .Text(x => x.Enabled ? Resource.Yes : Resource.No) .Style((row, style) => style.FillColor = row.Enabled ? BsGridExcelColor.LightGreen : BsGridExcelColor.Red); columns.For(x => x.Role) .Order(2) .Text(x => x.Role.ToString()) .Style(style => style.FillColor = BsGridExcelColor.Lavender); columns.For(x => x.StartDate) .Text(x => x.StartDate.ToMonthNameDate()) .Style(style => style.Font.Italic = true); }); return(new BsExcelResult <ContributorRowModel>("BForms Contributors.xlsx", builder)); } catch (Exception ex) { var controllerName = (string)Request.RequestContext.RouteData.Values["controller"]; var actionName = (string)Request.RequestContext.RouteData.Values["action"]; return(View("Error", new HandleErrorInfo(ex, controllerName, actionName))); } }
public ActionResult Index(int?stateId) { BsGridRepositorySettings <ContributorSearchModel> bsGridSettings = null; if (stateId.HasValue) { var state = _componentState.Get(stateId.Value); if (state != null) { bsGridSettings = state.ToBsGridRepositorySettings <ContributorSearchModel>(); } } if (bsGridSettings == null) { bsGridSettings = new BsGridRepositorySettings <ContributorSearchModel>() { PageSize = 5, Page = 1 }; } bsGridSettings.Search = _gridRepository.GetSearchForm(bsGridSettings.Search); var gridModel = _gridRepository.ToBsGridViewModel(bsGridSettings); var model = new ContributorsViewModel { Grid = gridModel, Toolbar = new BsToolbarModel <ContributorSearchModel, ContributorNewModel, List <ContributorOrderModel> > { Search = bsGridSettings.Search, New = _gridRepository.GetNewForm(), Order = _gridRepository.GetOrderForm(true) } }; var options = new Dictionary <string, object> { { "pagerUrl", Url.Action("Pager") }, { "getRowsUrl", Url.Action("GetRows") }, { "enableDisableUrl", Url.Action("EnableDisable") }, { "exportExcelUrl", Url.Action("ExportExcel") }, { "updateUrl", Url.Action("Update") }, { "deleteUrl", Url.Action("Delete") }, { "editComponents", RequireJsHtmlHelpers.ToJsonDictionary <EditComponents>() } }; RequireJsOptions.Add("index", options); return(View(model)); }
public BsJsonResult Pager(BsGridRepositorySettings <ContributorSearchModel> settings) { var msg = string.Empty; var status = BsResponseStatus.Success; var html = string.Empty; var count = 0; var componentState = 0; try { //simulate exception if (settings.Page == 3) { throw new Exception("This is how an exception message is displayed in grid header"); } var viewModel = _gridRepository.ToBsGridViewModel(settings, out count).Wrap <ContributorsViewModel>(x => x.Grid); html = this.BsRenderPartialView("Grid/_Grid", viewModel); if (!settings.FromReset) { var state = settings.ToBsComponentState("contributorsGrid", this.Request.UrlReferrer.LocalPath); componentState = _componentState.Save(state); } } catch (Exception ex) { msg = ex.Message; status = BsResponseStatus.ServerError; } return(new BsJsonResult(new { ComponentState = componentState, Count = count, Html = html }, status, msg)); }
public BsJsonResult Pager(BsGridRepositorySettings<ContributorSearchModel> settings) { var msg = string.Empty; var status = BsResponseStatus.Success; var html = string.Empty; var count = 0; var componentState = 0; try { //simulate exception if (settings.Page == 3) { throw new Exception("This is how an exception message is displayed in grid header"); } var viewModel = _gridRepository.ToBsGridViewModel(settings, out count, x => x.Id).Wrap<ContributorsViewModel>(x => x.Grid); html = this.BsRenderPartialView("Grid/_Grid", viewModel); if (!settings.FromReset) { var state = settings.ToBsComponentState("contributorsGrid", this.Request.UrlReferrer.LocalPath); componentState = _componentState.Save(state); } } catch (Exception ex) { msg = ex.Message; status = BsResponseStatus.ServerError; } return new BsJsonResult(new { ComponentState = componentState, Count = count, Html = html }, status, msg); }
public ActionResult Index(int? stateId) { BsGridRepositorySettings<ContributorSearchModel> bsGridSettings = null; //HttpContext.Items["RequestTheme"] = BsTheme.Black; if (stateId.HasValue) { var state = _componentState.Get(stateId.Value); if (state != null) { bsGridSettings = state.ToBsGridRepositorySettings<ContributorSearchModel>(); } } bsGridSettings = new BsGridRepositorySettings<ContributorSearchModel>() { PageSize = 5, Page = 1, //GoTo = BsDirectionType.First }; bsGridSettings.Search = _gridRepository.GetSearchForm(bsGridSettings.Search); bsGridSettings.OrderableColumns = new List<BsColumnOrder>{new BsColumnOrder { Name = "Name", Type = BsOrderType.Descending }}; var gridModel = _gridRepository.ToBsGridViewModel(bsGridSettings, x => x.Id); var model = new ContributorsViewModel { Grid = gridModel, Toolbar = new BsToolbarModel<ContributorSearchModel, ContributorNewModel, List<ContributorOrderModel>> { Search = bsGridSettings.Search, New = _gridRepository.GetNewForm(), Order = _gridRepository.GetOrderForm(true) } }; var options = new Dictionary<string, object> { {"pagerUrl", Url.Action("Pager")}, {"getRowsUrl", Url.Action("GetRows")}, {"enableDisableUrl", Url.Action("EnableDisable")}, {"exportExcelUrl", Url.Action("ExportExcel")}, {"updateUrl", Url.Action("Update")}, {"deleteUrl", Url.Action("Delete")}, {"editComponents", RequireJsHtmlHelpers.ToJsonDictionary<EditComponents>()}, {"countUrl", Url.Action("Count")} }; RequireJsOptions.Add("index", options); return View(model); }
public ActionResult ExportExcel(BsGridRepositorySettings<ContributorSearchModel> settings, List<BsGridRowData<int>> items) { var rows = _gridRepository.GetItems(settings, items.Select(x => x.Id).ToList()); try { var builder = new BsGridExcelBuilder<ContributorRowModel>(); var lightThemeSheet = builder.AddSheet<ContributorRowModel>(rows, "Contributors Light"); lightThemeSheet.ConfigureHeader(header => { header.Order(settings.OrderColumns); header.Style.Font.Bold = true; header.Style.FillColor = BsGridExcelColor.Ivory; header.For(x => x.StartDate) .Text("Contributor since") .Style(style => style.Font.Italic = true); }) .ConfigureRows((row, style) => { if (row.Role.DisplayValue == ProjectRole.TeamLeader) { style.Font.Bold = true; } if (row.Role.DisplayValue == ProjectRole.Tester) { style.Font.Italic = true; } }) .ConfigureColumns(columns => { columns.For(x => x.Name) .Text(x=>x.Name.DisplayValue) .Order(1); columns.For(x => x.Enabled) .Text(x => x.Enabled ? Resource.Yes : Resource.No) .Style((row, style) => style.FillColor = row.Enabled ? BsGridExcelColor.LightGreen : BsGridExcelColor.Red); columns.For(x => x.Role) .Order(2) .Text(x => x.Role.DisplayValue.ToString()) .Style(style => style.FillColor = BsGridExcelColor.Lavender); columns.For(x => x.Contributions) .Text(x => x.Contributions.DisplayValue); columns.For(x => x.StartDate) .Text(x => x.StartDate.ToMonthNameDate()) .Style(style => style.Font.Italic = true); }); var darkThemeSheet = builder.AddSheet<ContributorRowModel>(rows, "Contributors Dark"); darkThemeSheet.ConfigureHeader(header => { header.Order(settings.OrderColumns); header.Style.Font.Bold = true; header.Style.Font.Italic = true; header.Style.FillColor = BsGridExcelColor.DarkTeal; header.For(x => x.StartDate) .Text("Contributor since"); }) .ConfigureColumns(columns => { columns.For(x => x.Name) .Text(x => x.Name.DisplayValue) .Style(style => style.FillColor = BsGridExcelColor.DarkYellow) .Order(1); columns.For(x => x.Enabled) .Text(x => x.Enabled ? Resource.Yes : Resource.No) .Style((row, style) => style.FillColor = row.Enabled ? BsGridExcelColor.DarkGreen : BsGridExcelColor.DarkRed); columns.For(x => x.Role) .Order(2) .Text(x => x.Role.DisplayValue.ToString()); columns.For(x => x.Contributions) .Text(x => x.Contributions.DisplayValue); columns.For(x => x.StartDate) .Text(x => x.StartDate.ToMonthNameDate()) .Style(style => style.Font.Italic = true); }); return new BsExcelResult<ContributorRowModel>("BForms Contributors.xlsx", builder); } catch (Exception ex) { var controllerName = (string)Request.RequestContext.RouteData.Values["controller"]; var actionName = (string)Request.RequestContext.RouteData.Values["action"]; return View("Error", new HandleErrorInfo(ex, controllerName, actionName)); } }
public ActionResult Index(int?stateId) { BsGridRepositorySettings <ContributorSearchModel> bsGridSettings = null; //HttpContext.Items["RequestTheme"] = BsTheme.Black; if (stateId.HasValue) { var state = _componentState.Get(stateId.Value); if (state != null) { bsGridSettings = state.ToBsGridRepositorySettings <ContributorSearchModel>(); } } bsGridSettings = new BsGridRepositorySettings <ContributorSearchModel>() { PageSize = 5, Page = 1, //GoTo = BsDirectionType.First }; bsGridSettings.Search = _gridRepository.GetSearchForm(bsGridSettings.Search); bsGridSettings.OrderableColumns = new List <BsColumnOrder> { new BsColumnOrder { Name = "Name", Type = BsOrderType.Descending } }; var gridModel = _gridRepository.ToBsGridViewModel(bsGridSettings, x => x.Id); var model = new ContributorsViewModel { Grid = gridModel, Toolbar = new BsToolbarModel <ContributorSearchModel, ContributorNewModel, List <ContributorOrderModel> > { Search = bsGridSettings.Search, New = _gridRepository.GetNewForm(), Order = _gridRepository.GetOrderForm(true) } }; var options = new Dictionary <string, object> { { "pagerUrl", Url.Action("Pager") }, { "getRowsUrl", Url.Action("GetRows") }, { "enableDisableUrl", Url.Action("EnableDisable") }, { "exportExcelUrl", Url.Action("ExportExcel") }, { "updateUrl", Url.Action("Update") }, { "deleteUrl", Url.Action("Delete") }, { "editComponents", RequireJsHtmlHelpers.ToJsonDictionary <EditComponents>() }, { "countUrl", Url.Action("Count") } }; RequireJsOptions.Add("index", options); return(View(model)); }