Ejemplo n.º 1
0
        public async Task <ActionResult> Index()
        {
            BannersManagementViewModel model = new BannersManagementViewModel();

            if (null != this.User && this.User.Identity.IsAuthenticated)
            {
                var UserManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
                var user        = await UserManager.FindByNameAsync(this.User.Identity.Name);

                if (null != user)
                {
                    model.Profile = InsuranceBusiness.BusinessLayer.GetUserProfile(user.Id);
                }
                else
                {
                    return(RedirectToAction("LogOff", "Account"));
                }
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }

            try
            {
                var grid = MVCGridDefinitionTable.GetDefinition <BannerModelObject>("BannersManagementGrid");
            }
            catch (Exception)
            {
                //InsuranceBusiness.BusinessLayer.GetRoles

                MVCGridDefinitionTable.Add("BannersManagementGrid", new MVCGridBuilder <BannerModelObject>()
                                           .WithAuthorizationType(AuthorizationType.AllowAnonymous)
                                           //.WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc)
                                           .AddColumns(cols =>
                {
                    // Add your columns here
                    cols.Add().WithColumnName("Description")
                    .WithHeaderText(Resources.Resources.Description)
                    .WithValueExpression(i => i.Description)
                    .WithAllowChangeVisibility(true)
                    .WithFiltering(true)
                    .WithSorting(true)
                    .WithVisibility(true, true);             // use the Value Expression to return the cell text for this column
                    cols.Add("Type")
                    .WithHeaderText(Resources.Resources.Type)
                    .WithValueExpression(i => i.ID_Banner_Type.ToString());
                    cols.Add("StartDate")
                    .WithHeaderText(Resources.Resources.StartDate)
                    .WithCellCssClassExpression(p => "dateCell")
                    .WithValueExpression(p => p.StartDate.ToString("dd-MM-yyyy"));
                    cols.Add("DueDate")
                    .WithHeaderText(Resources.Resources.DueDate)
                    .WithCellCssClassExpression(p => "dateCell")
                    .WithValueExpression(p => p.DueDate.HasValue ? p.DueDate.Value.ToString("dd-MM-yyyy") : "");
                    cols.Add("Edit").WithHtmlEncoding(false)
                    .WithSorting(false)
                    .WithHeaderText(" ")
                    .WithValueExpression((p, c) => c.UrlHelper.Action("Edit", "BannersManagement", new { id = p.ID }))
                    .WithValueTemplate("<a href='{Value}' class='btn btn-warning lnkEdit'>" + Resources.Resources.Edit + "</a>");
                    cols.Add("Delete").WithHtmlEncoding(false)
                    .WithSorting(false)
                    .WithHeaderText(" ")
                    .WithValueExpression((p, c) => c.UrlHelper.Action("Delete", "BannersManagement", new { id = p.ID }))
                    .WithValueTemplate("<a href='{Value}' class='btn btn-danger lnkDelete' role='button'>" + Resources.Resources.Delete + "</a>");
                })
                                           .WithAdditionalQueryOptionNames("Search")
                                           .WithSorting(true, "CreateDate")
                                           .WithPaging(paging: true, itemsPerPage: 10, allowChangePageSize: true, maxItemsPerPage: 100)
                                           .WithRetrieveDataMethod((context) =>
                {
                    // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions.
                    // Use Entity Framework, a module from your IoC Container, or any other method.
                    // Return QueryResult object containing IEnumerable<YouModelItem>

                    var options = context.QueryOptions;
                    var result  = new QueryResult <BannerModelObject>();
                    var query   = BusinessItemsLists.GetBanners();
                    if (!String.IsNullOrWhiteSpace(options.SortColumnName))
                    {
                        switch (options.SortColumnName.ToLower())
                        {
                        case "firstname":
                            //if (options.SortDirection == SortDirection.Asc
                            //    || options.SortDirection == SortDirection.Unspecified)
                            //{
                            //    query = query.OrderBy(p => p.FirstName).ToList();
                            //}
                            //else
                            //{
                            //    query = query.OrderByDescending(p => p.FirstName).ToList();
                            //}

                            break;

                        case "lastname":
                            //query = query.OrderBy(p => p.LastName, options.SortDirection);
                            break;
                        }
                    }

                    string globalSearch = options.GetAdditionalQueryOptionString("Search");
                    if (null != globalSearch)
                    {
                        query = query.Where(i =>
                                            i.Description.ToLower().Contains(globalSearch.ToLower())
                                            //|| i.LastName.Contains(globalSearch)
                                            //|| i.User.UserName.Contains(globalSearch)
                                            //|| i.ContactEmail.Contains(globalSearch)
                                            ).ToList();
                    }

                    result.TotalRecords = query.Count();

                    if (options.GetLimitOffset().HasValue)
                    {
                        query = query
                                .Skip(options.GetLimitOffset().Value)
                                .Take(options.GetLimitRowcount().Value)
                                .ToList();
                    }

                    result.Items = query;

                    return(result);
                })
                                           );
            }

            return(View(model));
        }
Ejemplo n.º 2
0
 public JsonResult Get()
 {
     return(Json(BusinessItemsLists.GetBanners().ToArray(), JsonRequestBehavior.AllowGet));
 }