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."));
        }
Esempio n. 2
0
        public IHttpActionResult Auth(LoginRequest request)
        {
            LoginViewModel viewmodel = new LoginViewModel();

            viewmodel.Authenticated = this.User.Identity.IsAuthenticated;
            UserDataController dataCtrl = new UserDataController();

            try
            {
                User u;

                if (dataCtrl.ValidateUser(request.Email, request.Password, out u))
                {
                    ClaimsIdentity identity = InitializeIdentity(u);

                    var authentication = HttpContext.Current.GetOwinContext().Authentication;
                    authentication.SignIn(new Microsoft.Owin.Security.AuthenticationProperties()
                    {
                        IsPersistent = true
                    }, identity);

                    viewmodel.Data.FromModel(u);

                    HttpContext.Current.Response.AddHeader("X-Redirect", Properties.Settings.Default.BaseAbosulteUrl + "/account");
                }
                else
                {
                    viewmodel.Data = null;
                    return(Warning(viewmodel, "Anmeldung fehlerhaft."));
                }
            }
            catch (Exception ex)
            {
                viewmodel.Data = null;
                return(Error(viewmodel, ex, "Anmeldung fehlgeschlagen."));
            }

            return(Ok(viewmodel, "Die Anmeldung war erfolgreich!"));
        }