public IHttpActionResult Get() { CateringListViewModel viewmodel = new CateringListViewModel(); CateringProductDataController dataCtrl = new CateringProductDataController(); SeatDataController seatDataCtrl = new SeatDataController(); EventDataController eventDataCtrl = new EventDataController(); try { var e = eventDataCtrl.GetItems().FirstOrDefault(x => x.Start <= DateTime.Now && x.End >= DateTime.Now); if (e == null) { return(Warning(viewmodel, "Keine passende Veranstaltung gefunden.")); } else if (!e.IsActiveCatering) { return(Warning(viewmodel, "Das Catering ist derzeit deaktiviert.")); } foreach (var model in dataCtrl.GetItems().Where(x => x.IsActive)) { ProductViewModelItem item = new ProductViewModelItem(); item.FromModel(model); viewmodel.Data.Add(item); } int eventID = e.ID; foreach (var model in seatDataCtrl.GetCurrentUserSeats(eventID)) { CateringSeat item = new CateringSeat(); item.FromModel(model); viewmodel.Seats.Add(item); } } catch (Exception ex) { return(Error(viewmodel, ex)); } return(Ok(viewmodel)); }
public IHttpActionResult Backend_FilterList(BackendCateringListArgs args) { BackendCateringListViewModel viewmodel = new BackendCateringListViewModel(); EventDataController eventDataCtrl = new EventDataController(); CateringOrderDataController orderDataCtrl = new CateringOrderDataController(); CateringProductDataController cateringDataCtrl = new CateringProductDataController(); UserDataController userDataCtrl = new UserDataController(); try { var events = eventDataCtrl.GetItems().OrderByDescending(x => x.ID).ToList(); viewmodel.Filter.EventOptions = events.ConvertAll(x => { return(new BackendCateringFilter.CateringFilterEvent() { ID = x.ID, Name = $"{x.EventType.Name} Vol.{x.Volume}" }); }); var products = cateringDataCtrl.GetItems().ToList(); viewmodel.ProductOptions = products.ConvertAll(x => { return(new BackendCateringProductItem().FromModel(x)); }); viewmodel.Filter.Name = args.Filter.Name; viewmodel.Filter.SeatNumber = args.Filter.SeatNumber; viewmodel.Filter.EventSelected = args.Filter.EventSelected; viewmodel.Filter.StatusSelected = args.Filter.StatusSelected; viewmodel.Pagination = args.Pagination; Int32 TotalItemsCount = 0; viewmodel.FromModel(orderDataCtrl.FilterList(args, out TotalItemsCount)); viewmodel.Pagination.TotalItemsCount = TotalItemsCount; } catch (Exception ex) { return(Error(viewmodel, ex)); } return(Ok(viewmodel)); }