public Task <IViewComponentResult> InvokeAsync(string userEmail, AlertOrderField orderField = AlertOrderField.Id, bool descending = false) { var model = new AlertListModel(); var query = ctx.Alerts.Include(a => a.Route).Where(a => a.User.Email == userEmail).OrderByDescending(a => a.Id); var list = query.ToList(); model.Alerts = orderField switch { AlertOrderField.Id => list.OrderBy(a => a.Id).ToList(), AlertOrderField.To => list.OrderBy(a => a.Destination).ToList(), AlertOrderField.From => list.OrderBy(a => a.Origin).ToList(), AlertOrderField.FromDate => list.OrderBy(a => a.FromDate).ToList(), AlertOrderField.ToDate => list.OrderBy(a => a.ToDate).ToList(), AlertOrderField.BookinClass => list.OrderBy(a => a.CabinClass).ToList(), AlertOrderField.Pax => list.OrderBy(a => a.Passengers).ToList() }; model.Descending = descending; model.OrderField = orderField; if (descending || orderField == AlertOrderField.Id) { model.Alerts = model.Alerts.Reverse().ToList(); } return(Task.FromResult <IViewComponentResult>(View(model))); } }
public IActionResult Index(AlertOrderField orderField = AlertOrderField.Id, bool descending = false) { var dict = new Dictionary <string, List <string> >(); var model = new Models.AlertModel(); model.NewAlert = new AwardData.Alerts { Passengers = 1, CabinClass = CabinClass.Business }; model.Json = Newtonsoft.Json.JsonConvert.SerializeObject(ctx.Routes.Where(r => r.Crawl && r.Show)); model.Classes = new List <SelectListItem>(); foreach (var cabinClass in Enum.GetValues(typeof(CabinClass)).Cast <CabinClass>()) { if (cabinClass != CabinClass.All) { model.Classes.Add(new SelectListItem { Text = cabinClass.ToString(), Value = ((int)cabinClass).ToString() }); } } model.Classes.Reverse(); model.OrderField = orderField; model.Descending = descending; return(View(model)); }