示例#1
0
        public static BackendSeatingViewModelItem FromModel(this BackendSeatingViewModelItem viewmodel, Seat model)
        {
            viewmodel.ID               = model.ID;
            viewmodel.SeatNumber       = model.SeatNumber;
            viewmodel.ReservationState = new BackendSeatingStatusOption(model.State);
            viewmodel.ReservationDate  = model.ReservationDate;
            viewmodel.Description      = model.Description;
            viewmodel.IsPayed          = model.Payed;
            viewmodel.User             = null;
            viewmodel.TransferUser     = null;
            viewmodel.Event.FromModel(model.Event);

            if (model.IsActive && model.State != 0 && model.User != null)
            {
                viewmodel.User = new BackendUserViewModelItem();
                viewmodel.User.FromModel(model.User);
            }

            if (model.IsActive && model.State != 0 && model.TransferUser != null)
            {
                viewmodel.TransferUser = new BackendUserViewModelItem();
                viewmodel.TransferUser.FromModel(model.TransferUser);
            }

            return(viewmodel);
        }
示例#2
0
        public static Seat ToModel(this BackendSeatingViewModelItem viewmodel)
        {
            Seat model = new Seat();

            model.SeatNumber = viewmodel.SeatNumber;
            model.EventID    = viewmodel.Event.ID;
            model.UserID     = viewmodel.User.ID;
            if (viewmodel.TransferUser != null)
            {
                model.TransferUserID = viewmodel.TransferUser.ID;
            }
            model.State           = viewmodel.ReservationState.Key;
            model.Payed           = viewmodel.IsPayed;
            model.ReservationDate = viewmodel.ReservationDate;
            model.Description     = viewmodel.Description;
            model.IsActive        = true;

            return(model);
        }
        public IHttpActionResult Backend_FilterList(ListArgsRequest <BackendSeatingFilter> request)
        {
            BackendSeatingListViewModel viewmodel     = new BackendSeatingListViewModel();
            SeatDataController          dataCtrl      = new SeatDataController();
            EventDataController         eventDataCtrl = new EventDataController();
            UserDataController          userDataCtrl  = new UserDataController();

            var events = eventDataCtrl.GetItems().OrderByDescending(x => x.Start).ToList();
            var users  = userDataCtrl.GetItems().OrderBy(x => x.FirstName).ToList();
            var eID    = request.Filter.EventSelected.ID;
            var seats  = dataCtrl.FilterList(request);

            viewmodel.Filter.EventSelected = request.Filter.EventSelected;
            viewmodel.Filter.EventOptions  = events.ConvertAll(x =>
            {
                return(new SeatingFilterEvent()
                {
                    ID = x.ID,
                    Name = $"{x.EventType.Name} Vol.{x.Volume}"
                });
            });

            for (int i = 1; i <= Properties.Settings.Default.SeatAmount; i++)
            {
                BackendSeatingViewModelItem item = new BackendSeatingViewModelItem();
                Seat model = seats.FirstOrDefault(x => x.SeatNumber == i);
                if (model == null)
                {
                    model = new Seat()
                    {
                        SeatNumber = i,
                        State      = 0,
                        Event      = events[0]
                    }
                }
                ;
                item.FromModel(model);
                viewmodel.Data.Add(item);
            }

            return(Ok(viewmodel));
        }
        public IHttpActionResult Backend_Detail_Update(Int32 EventID, Int32 SeatNumber, BackendSeatingViewModelItem request)
        {
            BackendSeatingViewModel viewmodel = new BackendSeatingViewModel();
            SeatDataController      dataCtrl  = new SeatDataController();

            try
            {
                var  seats  = dataCtrl.GetItems().Where(x => x.EventID == EventID);
                Seat model  = seats.FirstOrDefault(x => x.SeatNumber == SeatNumber);
                Seat result = null;
                if (request.ReservationState.Key != 0)
                {
                    if (model == null)
                    {
                        result = dataCtrl.Insert(request.ToModel());
                    }
                    else
                    {
                        result    = request.ToModel();
                        result.ID = model.ID;
                        result    = dataCtrl.Update(result);
                    }
                    viewmodel.Data.FromModel(result);
                }
                else
                {
                    if (model != null)
                    {
                        dataCtrl.Delete(model.ID);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Error(viewmodel, ex));
            }

            return(Ok(viewmodel, "Sitzplatz gespeichert."));
        }
        public IHttpActionResult Backend_Detail_Insert(Int32 EventID, Int32 SeatNumber, BackendSeatingViewModelItem request)
        {
            BackendSeatingViewModel viewmodel = new BackendSeatingViewModel();

            // TODO

            return(Ok(viewmodel));
        }