public IHttpActionResult Backend_Detail_Update(Int32 id, BackendPartnerViewModelItem request) { BackendPartnerViewModel viewmodel = new BackendPartnerViewModel(); PartnerDataController dataCtrl = new PartnerDataController(); PartnerDisplayRelationDataController displayRelationDataCtrl = new PartnerDisplayRelationDataController(); try { var model = dataCtrl.Update(request.ToModel()); viewmodel.Data.FromModel(model); viewmodel.Data.Display = displayRelationDataCtrl.UpdatePartner(model, request.Display); } catch (Exception ex) { return(Error(viewmodel, ex)); } return(Ok(viewmodel, "Partner wurde erfolgreich aktualisiert.")); }
public IHttpActionResult Frontend() { NavigationViewModel viewmodel = new NavigationViewModel(); EventDataController dataCtrl = new EventDataController(); SeatDataController seatDataCtrl = new SeatDataController(); PartnerDisplayRelationDataController displayDataCtrl = new PartnerDisplayRelationDataController(); var events = dataCtrl.GetItems().ToList(); var nextEvent = events.OrderByDescending(x => x.Start).First(); if (events.OrderByDescending(x => x.Start).FirstOrDefault(x => x.End > DateTime.Now) != null) { nextEvent = events.OrderByDescending(x => x.Start).FirstOrDefault(x => x.End > DateTime.Now); } var partner = displayDataCtrl.GetItems() .Where(x => x.Partner.IsActive) .OrderByDescending(x => x.Partner.PartnerPackID) .ThenBy(x => x.Partner.Position); #region NavigationTop viewmodel.Data.NavigationTop.Add(new NavItem() { Text = "News", State = "news.all", StateCompare = "news" }); viewmodel.Data.NavigationTop.Add(new NavItem() { Text = "Events", State = "event.all", StateCompare = "event" }); viewmodel.Data.NavigationTop.Add(new NavItem() { Text = "Galerie", State = "gallery.all", StateCompare = "gallery" }); viewmodel.Data.NavigationTop.Add(new NavItem() { Text = "Turniere", State = "event.tournaments.all({id: " + nextEvent.ID + "})", StateCompare = "event.tournaments" }); viewmodel.Data.NavigationTop.Add(new NavItem() { Text = "Sitzplan", State = "event.seating({id: " + nextEvent.ID + "})", StateCompare = "event.seating" }); viewmodel.Data.NavigationTop.Add(new NavItem() { Text = "Sponsoren", State = "partner", StateCompare = "partner" }); #endregion #region NavigationUser if (UserHelper.Authenticated) { if (UserHelper.CurrentUserRole == UserRole.Admin || UserHelper.CurrentUserRole == UserRole.Team) { viewmodel.Data.NavigationUser.Add(new NavItem() { Text = "<i class='fas fa-user-secret'></i>", State = "admin.dashboard", StateCompare = "admin.dashboard", Tooltip = "Adminbereich" }); } viewmodel.Data.NavigationUser.Add(new NavItem() { Text = "<i class='fas fa-utensils'></i>", State = "catering", StateCompare = "catering", Tooltip = "Catering" }); //viewmodel.Data.NavigationUser.Add(new NavItem() //{ // Text = "<i class='fas fa-comments'></i>", // State = "profile.overview", // StateCompare = "profile", // Tooltip = "Chat" //}); viewmodel.Data.NavigationUser.Add(new NavItem() { Text = "<i class='fas fa-user-circle'></i>", State = "profile.overview", StateCompare = "profile", Tooltip = UserHelper.CurrentUserName }); viewmodel.Data.NavigationUser.Add(new NavItem() { Text = "<i class='fas fa-sign-out'></>", State = "logout", StateCompare = "logout", Tooltip = "Ausloggen" }); } else { viewmodel.Data.NavigationUser.Add(new NavItem() { Text = "<i class='fas fa-user-plus'></i>", State = "register", StateCompare = "register", Tooltip = "Registrieren" }); viewmodel.Data.NavigationUser.Add(new NavItem() { Text = "<i class='fas fa-sign-in'></i>", State = "login", StateCompare = "login", Tooltip = "Einloggen" }); } #endregion #region NavigationAside viewmodel.Data.NavigationAside.Add(new NavItem() { Text = "Informationen", State = "event.details({id: " + nextEvent.ID + "})" }); viewmodel.Data.NavigationAside.Add(new NavItem() { Text = "Sitzplan", State = "event.seating({id: " + nextEvent.ID + "})" }); viewmodel.Data.NavigationAside.Add(new NavItem() { Text = "Jugendschutz", State = "jugendschutz" }); viewmodel.Data.NavigationAside.Add(new NavItem() { Text = "Teilnahmebedingungen", State = "teilnahmebedingungen" }); viewmodel.Data.NavigationAside.Add(new NavItem() { Text = "Kontakt", State = "contact" }); #endregion #region EventsAside foreach (var e in events.Where(x => x.End > DateTime.Now).OrderByDescending(x => x.Start)) { var seats = seatDataCtrl.GetItems().Where(x => x.EventID == e.ID); Int32 seatsCount = Properties.Settings.Default.SeatAmount - seats.Count(x => x.State == -1); Int32 flagged = seats.Count(x => x.State == 1); Int32 reserved = seats.Count(x => x.State >= 2); Int32 free = seatsCount - flagged - reserved; viewmodel.Data.EventsAside.Add(new EventItem() { ID = e.ID, Title = $"{e.EventType.Name} Vol.{e.Volume}", Start = e.Start, End = e.End, PublicAccess = !e.IsPrivate, Seating = new data.ViewModel.Event.EventViewModelItem.SeatingReservation() { SeatsCount = seatsCount, Flagged = flagged, Reserved = reserved, Free = free } }); } #endregion #region PartnerTop foreach (var p in partner.Where(x => x.PartnerDisplay.Name == "Header")) { viewmodel.Data.PartnerTop.Add(new PartnerItem() { Name = p.Partner.Name, Link = p.Partner.Link, ImagePassive = Properties.Settings.Default.imageAbsolutePath + p.Partner.ImagePassive, ImageOriginal = Properties.Settings.Default.imageAbsolutePath + p.Partner.ImageOriginal }); } #endregion #region NavigationBottom foreach (var p in partner.Where(x => x.PartnerDisplay.Name == "Footer")) { viewmodel.Data.NavigationBottom.Add(new LinkItem() { Text = p.Partner.Name, Link = p.Partner.Link }); } #endregion return(Ok(viewmodel)); }