예제 #1
0
        public IHttpActionResult AcceptTransfer(Int32 ID)
        {
            BaseViewModel      viewmodel    = new BaseViewModel();
            SeatDataController seatDataCtrl = new SeatDataController();

            try
            {
                Seat seat = seatDataCtrl.GetItem(ID);

                if (seat.TransferUserID == null)
                {
                    return(Error(viewmodel, "Der Platz wurde nicht transferiert."));
                }

                if (seat.TransferUserID != UserHelper.CurrentUserID)
                {
                    return(Warning(viewmodel, "Der Platz wurde dir nicht zugesendet."));
                }

                seat.UserID         = seat.TransferUserID ?? default(int);
                seat.TransferUserID = null;
                seatDataCtrl.Update(seat);
            }
            catch (Exception ex)
            {
                return(Error(viewmodel, ex));
            }

            return(Ok(viewmodel, "Transfer wurde durchgeführt."));
        }
예제 #2
0
        public IHttpActionResult Detail(Int32 eventID, Int32 seatNumber)
        {
            SeatingViewModel    viewmodel     = new SeatingViewModel();
            SeatDataController  dataCtrl      = new SeatDataController();
            EventDataController eventDataCtrl = new EventDataController();

            try
            {
                if (!eventDataCtrl.GetItem(eventID).IsActiveReservation)
                {
                    return(Warning(viewmodel, "Die Reservierung ist derzeit deaktiviert."));
                }
                viewmodel.BankAccount.FromProperties();
                viewmodel.Data.FromModel(dataCtrl.GetItem(seatNumber, eventID));

                if (viewmodel.Data.ReservationState < 0)
                {
                    return(Info(viewmodel, "Dieser Platz ist gesperrt und kann nicht reserviert werden."));
                }
                else if (viewmodel.Data.ReservationState > 0)
                {
                    return(Warning(viewmodel, $"Dieser Platz wurde bereits von {viewmodel.Data.User.Nickname} reserviert."));
                }
            }
            catch (Exception ex)
            {
                return(Error(viewmodel, ex));
            }

            return(Ok(viewmodel));
        }
예제 #3
0
        public IHttpActionResult TransferReservation(TransferReservationRequest request)
        {
            BaseViewModel      viewmodel    = new BaseViewModel();
            UserDataController dataCtrl     = new UserDataController();
            SeatDataController seatDataCtrl = new SeatDataController();

            try
            {
                Int32 TransferUserID;
                Seat  seat = seatDataCtrl.GetItem(request.SeatID);
                try
                {
                    TransferUserID = dataCtrl.GetItems().Single(x => x.Email == request.Email).ID;
                }
                catch (Exception)
                {
                    return(Warning(viewmodel, "Die Email wurde nicht vergeben."));
                }

                if (TransferUserID == UserHelper.CurrentUserID)
                {
                    return(Warning(viewmodel, "Du kannst keine Tickets an dich selber versenden."));
                }

                if (seat.UserID != UserHelper.CurrentUserID)
                {
                    return(Warning(viewmodel, "Du bist nicht Inhaber dieses Tickets."));
                }

                if (dataCtrl.ValidateUser(UserHelper.CurrentUserEmail, request.Password))
                {
                    seat.TransferUserID = TransferUserID;
                    seatDataCtrl.Update(seat);
                }
                else
                {
                    return(Warning(viewmodel, "Das eingegebene Passwort stimmt nicht."));
                }
            }
            catch (Exception ex)
            {
                return(Error(viewmodel, ex));
            }

            return(Ok(viewmodel, "Ticket wurde versendet."));
        }
예제 #4
0
        public IHttpActionResult NewReservation(Int32 eventID, Int32 seatNumber)
        {
            BaseViewModel      viewmodel = new BaseViewModel();
            SeatDataController dataCtrl  = new SeatDataController();

            try
            {
                SeatingViewModelItem seat = new SeatingViewModelItem().FromModel(dataCtrl.GetItem(seatNumber, eventID));
                if (seat.ReservationState == 0)
                {
                    Seat item = new Seat()
                    {
                        EventID         = eventID,
                        ReservationDate = DateTime.Now,
                        UserID          = UserHelper.CurrentUserID,
                        SeatNumber      = seatNumber,
                        IsActive        = true,
                        Payed           = false,
                        State           = 1,
                        Description     = ""
                    };
                    dataCtrl.Insert(item);
                }
                else if (seat.ReservationState < 0)
                {
                    return(Warning(viewmodel, "Dieser Platz ist gesperrt und kann nicht reserviert werden."));
                }
                else
                {
                    return(Warning(viewmodel, $"Dieser Platz wurde bereits von {seat.User.Nickname} reserviert."));
                }
            }
            catch (Exception ex)
            {
                return(Error(viewmodel, ex));
            }

            return(Ok(viewmodel, "Platz wurde reserviert."));
        }