Example #1
0
        // GET: Confirmation
        public ActionResult Index(ConfirmSorting sortOrder = ConfirmSorting.date_desc,
                                  ConfirmType ConfirmType  = ConfirmType.All,
                                  int PageIndex            = 1)
        {
            // Set sorting params
            ViewBag.CurrentSort  = sortOrder;
            ViewBag.TypeSortParm = sortOrder == ConfirmSorting.type ? ConfirmSorting.type_desc : ConfirmSorting.type;
            ViewBag.DateSortParm = sortOrder == ConfirmSorting.date ? ConfirmSorting.date_desc : ConfirmSorting.date;
            ViewBag.SelectedType = ConfirmType;
            List <ConfirmType> ConfirmTypes = new List <ConfirmType>();

            if (ConfirmType == ConfirmType.All)
            {
                if (User.IsInRole("SystemAdmin"))
                {
                    ConfirmTypes = null;
                }
                if (User.IsInRole("AdminProfile"))
                {
                    ConfirmTypes.Add(ConfirmType.NewArtist);
                    ConfirmTypes.Add(ConfirmType.UpdateArtist);
                }
                if (User.IsInRole("AdminFinance"))
                {
                    ConfirmTypes.Add(ConfirmType.PhonePurchase);
                }
                if (User.IsInRole("AdminMusicEditor") || User.IsInRole("AdminLabel"))
                {
                    ConfirmTypes.Add(ConfirmType.NewMusic);
                    ConfirmTypes.Add(ConfirmType.UpdateMusic);
                }
            }
            else
            {
                ConfirmTypes.Add(ConfirmType);
            }

            var res = service.GetBySearch(ConfirmTypes, new PagingRequest(PageIndex, RES_IN_PAGE), sortOrder);

            if (!res.Success)
            {
                return(Json(res.Message, JsonRequestBehavior.AllowGet));
            }

            ViewBag.Page       = PageIndex;
            ViewBag.TotalPages = res.TotalPages;
            return(View(new ConfirmationViewModel()
            {
                Confirmations = res.Entities, ConfirmType = ConfirmType
            }));
        }
        public PagingResponse <Confirmation> GetBySearch(IList <ConfirmType> Types, PagingRequest pageRequest, ConfirmSorting sortOrder)
        {
            PagingResponse <Confirmation> res = new PagingResponse <Confirmation>();

            try
            {
                var repositoryRes = (this._rep as ConfirmationRepository).GetBySearch(Types,
                                                                                      pageRequest.ResultInPage,
                                                                                      (pageRequest.Page - 1) * pageRequest.ResultInPage, sortOrder);

                res.Entities      = repositoryRes.Entities;
                res.TotalResults  = repositoryRes.TotalResults;
                res.ResultsInPage = pageRequest.ResultInPage;
                res.CurrPage      = pageRequest.Page;
                res.Success       = true;
            }
            catch (Exception e)
            {
                res.Success = false;
                res.Message = e.ToString();
            }

            return(res);
        }
Example #3
0
        public RepositoryPagingResponse <Confirmation> GetBySearch(IList <ConfirmType> Types, int max, int skip, ConfirmSorting sortOrder)
        {
            RepositoryPagingResponse <Confirmation> res =
                new RepositoryPagingResponse <Confirmation>();

            IQueryable <Confirmation> query = this.dbSet;

            if (Types != null)
            {
                query = query.Where(con => Types.Any(t => t == con.ConfirmType));
            }

            res.TotalResults = query.Count();

            // Sort by param
            switch (sortOrder)
            {
            case ConfirmSorting.type_desc:
                query = query.OrderByDescending(c => c.ConfirmType);
                break;

            case ConfirmSorting.date:
                query = query.OrderBy(c => c.DateUpdate);
                break;

            case ConfirmSorting.date_desc:
                query = query.OrderByDescending(c => c.DateUpdate);
                break;

            default:
                query = query.OrderBy(c => c.ConfirmType);
                break;
            }

            res.Entities = query
                           .Skip(skip)
                           .Take(max)
                           .ToList() as IEnumerable <Confirmation>;

            return(res);
        }