Example #1
0
        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));
        }