Example #1
0
        public PartialViewResult GetEditFormAsPartialView(string id)
        {
            HttpContext.Response.Expires = -1;
            HttpContext.Response.Cache.SetNoServerCaching();
            Response.Cache.SetAllowResponseInBrowserHistory(false);
            Response.CacheControl = "no-cache";
            Response.Cache.SetNoStore();

            var userRowKey = (Membership.GetUser().ProviderUserKey as string);

            if (id != null)
            {
                var cleanid = id.Replace("#", string.Empty);//cleanup id string

                var request = new BuyerRequestRepository().GetByRowKey(cleanid);

                if (request != null)
                {
                    return(PartialView(new BuyerRequestViewModel {
                        RequestData = request
                    }));
                }
                else
                {
                    var blankRequest = new BuyerRequestViewModel {
                        RequestData = new BuyerRequestModel()
                    };
                    return(PartialView(blankRequest));
                }
            }
            else//return default blank request form
            {
                var request = new BuyerRequestModel(userRowKey, "My New Request", "None", "Please enter a description...", 0, DateTime.UtcNow.AddDays(30), string.Empty);//CompanyRowKey <==> UserRowkey
                return(PartialView(new BuyerRequestViewModel {
                    RequestData = request
                }));
            }
        }
        public ActionResult Index(string search, string sortOrder, int brpage = 1)
        {
            ViewBag.BuyReq = "active";
            ViewBag.Class  = "white-nav";

            ViewBag.pageNumber = brpage;

            //For Sorting
            ViewBag.TitleSortParm    = sortOrder == "Title" ? "Title_desc" : "Title";
            ViewBag.CategorySortParm = sortOrder == "Category" ? "Category_desc" : "Category";
            ViewBag.BEmailSortParm   = sortOrder == "Email" ? "Email_desc" : "Email";
            ViewBag.PhoneSortParm    = sortOrder == "Phone" ? "Phone_desc" : "Phone";
            ViewBag.DateSortParm     = sortOrder == "Date" ? "Date_desc" : "Date";
            ViewBag.PriceSortParm    = sortOrder == "Price" ? "Price_desc" : "Price";


            BuyerRequestModel buyerRequest = new BuyerRequestModel();

            //Auth user
            var user = db.Users.Where(x => x.Email == User.Identity.Name).FirstOrDefault();

            //Buyerrequest Query
            var buyerrequestmodel = from dwl in db.Downloads
                                    join ur in db.Users on dwl.Downloader equals ur.ID
                                    join up in db.UserProfiles on dwl.Downloader equals up.UserID
                                    where dwl.Seller == user.ID && dwl.IsSellerHasAllowedDownload == false
                                    select new BuyerRequestModel {
                Downloadstbl = dwl, UserProfiletbl = up, Userstbl = ur
            };

            //If Search not Null
            if (!string.IsNullOrEmpty(search))
            {
                buyerrequestmodel = buyerrequestmodel.Where(x => x.Downloadstbl.NoteTitle.Contains(search) || x.Downloadstbl.NoteCategory.Contains(search) || x.Userstbl.FirstName.Contains(search) || x.Userstbl.LastName.Contains(search) || x.Userstbl.Email.Contains(search) || x.UserProfiletbl.PhoneNumber.Contains(search));
            }

            //Sorting
            switch (sortOrder)
            {
            case "Title_desc":
                buyerrequestmodel = buyerrequestmodel.OrderByDescending(s => s.Downloadstbl.NoteTitle);
                break;

            case "Title":
                buyerrequestmodel = buyerrequestmodel.OrderBy(s => s.Downloadstbl.NoteTitle);
                break;

            case "Category_desc":
                buyerrequestmodel = buyerrequestmodel.OrderByDescending(s => s.Downloadstbl.NoteCategory);
                break;

            case "Category":
                buyerrequestmodel = buyerrequestmodel.OrderBy(s => s.Downloadstbl.NoteCategory);
                break;

            case "Email_desc":
                buyerrequestmodel = buyerrequestmodel.OrderByDescending(s => s.Userstbl.Email);
                break;

            case "Email":
                buyerrequestmodel = buyerrequestmodel.OrderBy(s => s.Userstbl.Email);
                break;

            case "Phone_desc":
                buyerrequestmodel = buyerrequestmodel.OrderByDescending(s => s.UserProfiletbl.PhoneNumber);
                break;

            case "Phone":
                buyerrequestmodel = buyerrequestmodel.OrderBy(s => s.UserProfiletbl.PhoneNumber);
                break;

            case "Date_desc":
                buyerrequestmodel = buyerrequestmodel.OrderByDescending(s => s.Downloadstbl.CreatedDate);
                break;

            case "Date":
                buyerrequestmodel = buyerrequestmodel.OrderBy(s => s.Downloadstbl.CreatedDate);
                break;

            case "Price_desc":
                buyerrequestmodel = buyerrequestmodel.OrderByDescending(s => s.Downloadstbl.PurchasedPrice);
                break;

            case "Price":
                buyerrequestmodel = buyerrequestmodel.OrderBy(s => s.Downloadstbl.PurchasedPrice);
                break;

            default:
                buyerrequestmodel = buyerrequestmodel.OrderByDescending(s => s.Downloadstbl.CreatedDate);
                break;
            }

            //Pagination
            var pager = new BRPager(buyerrequestmodel.Count(), brpage);

            ViewBag.currentPage = pager.CurrentPage;
            ViewBag.endPage     = pager.EndPage;
            ViewBag.startpage   = pager.StartPage;
            ViewBag.pageNumber  = brpage;


            ViewBag.srno = brpage;
            ViewBag.TotalBuyerRequestPage = Math.Ceiling(buyerrequestmodel.Count() / 10.0);
            //buyerrequestmodel = buyerrequestmodel.Skip((brpage - 1) * 10).Take(10);
            buyerrequestmodel = buyerrequestmodel.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize);

            return(View(buyerrequestmodel));
        }