Example #1
0
        public ActionResult DeleteAccount(DeleteUserModel model)
        {
            var user = UserManager.FindByName(User.Identity.Name);

            if (user != null)
            {
                // Devices löschen!
                var _db     = new ApplicationDbContext();
                var devices = _db.Devices.Where(d => d.User.Id.Equals(user.Id)).ToList();
                foreach (var userDevice in devices)
                {
                    _db.Devices.Remove(userDevice);
                }
                _db.SaveChanges();

                UserManager.Delete(user);

                // Mail senden
                var mailModel = new DeleteUserMailModel {
                    User = user
                };
                new MailController().DeleteUserMail(mailModel).Deliver();

                // Abmelden und byebye anzeigen
                AuthenticationManager.SignOut();

                return(RedirectToAction("ByeBye"));
            }

            throw new Exception("Kein gültiger Benutzer");
        }
Example #2
0
        internal EmailResult DeleteUserMail(DeleteUserMailModel model)
        {
            To.Add(model.User.Email);
            Subject = "Ihr Benutzerkonto bei NINE";

            return(Email("DeleteUser", model));
        }
Example #3
0
        /// <summary>
        /// Der Benutzer löscht sein eigenes Konto
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        internal EmailResult DeleteUserMail(DeleteUserMailModel model)
        {
            InitSenderTopic(MAIL_SECTION_ACCOUNT);

            To.Add(model.User.Email);
            Subject = "Ihr Benutzerkonto bei NINE";

            return(Email("DeleteUser", model));
        }
Example #4
0
        public PartialViewResult DeleteUser(string id)
        {
            // es wird nur noch der User gelöscht, alle Infos bleiben erhalten
            try
            {
                var user = UserManager.FindById(id);
                // Devices löschen!
                var devices = _db.Devices.Where(d => d.User.Id.Equals(user.Id)).ToList();
                foreach (var userDevice in devices)
                {
                    _db.Devices.Remove(userDevice);
                }
                _db.SaveChanges();
                UserManager.Delete(user);

                var mailModel = new DeleteUserMailModel {
                    User = user
                };
                new MailController().DeleteUserMail(mailModel).Deliver();


                return(PartialView("_EmptyRow"));
            }
            catch (Exception ex)
            {
                var msg = ex.Message;

                if (ex.InnerException != null)
                {
                    msg += " - ";
                    msg += ex.InnerException.Message;
                    if (ex.InnerException.InnerException != null)
                    {
                        msg += " - ";
                        msg += ex.InnerException.InnerException.Message;
                    }
                }

                return(PartialView("_EmptyRow", msg));
            }
        }
Example #5
0
        public ActionResult DeleteAccount(DeleteUserModel model)
        {
            var user = UserManager.FindByName(User.Identity.Name);

            if (user != null)
            {
                // Alle Eintragungen löschen
                // Das darf nur der Admin, der weiss, was er tut. Daher hier auch keine E-Mail oder ähnliches
                var subscriptions = Db.Subscriptions.OfType <OccurrenceSubscription>().Where(s => !string.IsNullOrEmpty(s.UserId) && s.UserId.Equals(user.Id)).ToList();

                foreach (var subscription in subscriptions)
                {
                    var allDrawings = Db.SubscriptionDrawings.Where(x => x.Subscription.Id == subscription.Id).ToList();
                    foreach (var drawing in allDrawings)
                    {
                        Db.SubscriptionDrawings.Remove(drawing);
                    }

                    var bets = subscription.Bets.ToList();
                    foreach (var bet in bets)
                    {
                        Db.LotteriyBets.Remove(bet);
                    }

                    Db.Subscriptions.Remove(subscription);
                }

                var games = Db.LotteryGames.Where(x => x.UserId.Equals(user.Id)).ToList();
                foreach (var lotteryGame in games)
                {
                    Db.LotteryGames.Remove(lotteryGame);
                }


                var semSubscriptions = Db.Subscriptions.OfType <SemesterSubscription>().Where(s => !string.IsNullOrEmpty(s.UserId) && s.UserId.Equals(user.Id)).ToList();

                foreach (var subscription in semSubscriptions)
                {
                    Db.Subscriptions.Remove(subscription);
                }
                Db.SaveChanges();


                // Devices löschen!
                var _db     = new ApplicationDbContext();
                var devices = _db.Devices.Where(d => d.User.Id.Equals(user.Id)).ToList();
                foreach (var userDevice in devices)
                {
                    _db.Devices.Remove(userDevice);
                }
                _db.SaveChanges();

                UserManager.Delete(user);

                // Mail senden
                var mailModel = new DeleteUserMailModel {
                    User = user
                };
                new MailController().DeleteUserMail(mailModel).Deliver();

                // Abmelden und byebye anzeigen
                AuthenticationManager.SignOut();

                return(RedirectToAction("ByeBye"));
            }

            throw new Exception("Kein gültiger Benutzer");
        }