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.")); }
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)); }
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.")); }
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.")); }