Ejemplo n.º 1
0
        public ActionResult UnSubscribe(UnsubscribeViewModel model)
        {
            string recaptchaprivatekey = BgResources.Recaptcha_PrivateKeyHttp;

            try
            {
                if (!ReCaptcha.Validate(privateKey: recaptchaprivatekey))
                {
                    ModelState.AddModelError("recaptcha", Resources.AppMessages.Error_Recaptcha);
                }
            }
            catch (Exception)
            {
                ModelState.AddModelError("recaptcha", Resources.AppMessages.Error_Recaptcha_Key);
            }
            if (ModelState.IsValid)
            {
                try
                {
                    SubscriptionServices.Unsubscribe(model.Email);
                }
                catch (ApplicationValidationErrorsException ex)
                {
                    foreach (string str in ex.ValidationErrors)
                    {
                        ModelState.AddModelError("", str);
                    }
                }
            }
            return(View());
        }
        public ActionResult Unsubscribe(int id, string returnUrl)
        {
            var category     = _repositories.Categories.Get(id);
            var subscription = category.GetSubscriptionFor(_currentUser.UserName);
            var model        = UnsubscribeViewModel.CreateViewModel(subscription, returnUrl);

            return(View(model));
        }
Ejemplo n.º 3
0
        public ActionResult Unsubscribe(UnsubscribeViewModel model)
        {
            model.message = "";
            Account account   = Session["account"] as Account;
            Account myAccount = new Account
            {
                Username  = model.uname,
                AccountId = account.AccountId
            };

            AccountDB.Delete(myAccount);
            model.message = "Account deleted";
            Logout();
            return(RedirectToAction("UnsubscribeSucceeded"));
        }
Ejemplo n.º 4
0
        public ActionResult Unsubscribe()
        {
            if (!IsLoggedIn())
            {
                return(RedirectToAction("Login"));
            }
            Account account            = Session["account"] as Account;
            UnsubscribeViewModel model = new UnsubscribeViewModel
            {
                uname = account.Username,
                email = account.Email
            };

            return(View(model));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Unsubscribe(UnsubscribeViewModel model)
        {
            model.Message = string.Empty;

            try
            {
                if (ModelState.IsValid)
                {
                    Subscriber dbSubscriber = await
                                              (
                        from s in _context.Subscribers
                        where
                        string.Compare(s.Email, model.Email, true) == 0
                        select s
                                              ).FirstOrDefaultAsync();

                    if (dbSubscriber != null &&
                        dbSubscriber.DeletedAt == null)
                    {
                        dbSubscriber.DeletedAt = DateTimeOffset.Now;

                        // Create audit entry.
                        await _context.SubscriberAudits.AddAsync
                        (
                            new SubscriberAudit()
                        {
                            Action       = "Unsubscribe".Left(200),
                            CreatedAt    = DateTimeOffset.Now,
                            FormName     = "Email".Left(50),
                            FormVersion  = "1.0.0".Left(16),
                            Headers      = GetHeaders().Left(4000),
                            IpAddress    = GetRemoteIpAddress().Left(39),
                            SubscriberId = dbSubscriber.SubscriberId
                        }
                        );

                        await _context.SaveChangesAsync();

                        if (_cache.TryGetValue(__taesKey, out int value))
                        {
                            _cache.Remove(__taesKey);
                        }

                        await SendGoogleAnalyticsConversion
                        (
                            "email",
                            "unsubscribe",
                            "na",
                            model.Email.ToLowerInvariant().GetHashCode().ToString()
                        );
                    }

                    model.Message = "<div class=\"alert alert-success\">You have been successfully unsubscribed.</div>";
                }
            }
            catch (Exception ex)
            {
                // TODO log
                model.Message = "<div class=\"alert alert-danger\">An error has occured. Please try again later.</div>";
                Trace.WriteLine(ex);
            }

            return(View(model));
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Unsubscribe(HttpPostedFileBase upload, int suppresionReason)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (upload != null && upload.ContentLength > 0)
                    {
                        // save uploaded file
                        string filename = Server.MapPath("~/Files/uploads/" + upload.FileName);
                        upload.SaveAs(filename);

                        // parse uploaded file into strongly typed contacts
                        IEnumerable <Contact> contacts = FileHelper.ParseUnsubscribedContacts(filename);

                        // loop through all emails
                        int count = 0;
                        foreach (var contact in contacts)
                        {
                            var c = db.Contacts.SingleOrDefault(x => x.Email == contact.Email && x.Active == true);

                            if (c != null)
                            {
                                // set deactivated date to today
                                c.DateDeactivated = DateTime.Now;
                                c.Active          = false;

                                // assign reason for suppression
                                switch (suppresionReason)
                                {
                                case (int)Enums.SuppressionReason.Unsubscribed:
                                    c.Unsubscribed = true;
                                    break;

                                case (int)Enums.SuppressionReason.Bounced:
                                    c.Bounced = true;
                                    break;

                                case (int)Enums.SuppressionReason.MarkedSpam:
                                    c.MarkedSpam = true;
                                    break;

                                case (int)Enums.SuppressionReason.InvalidMailbox:
                                    c.InvalidMailbox = true;
                                    break;

                                case (int)Enums.SuppressionReason.Blocked:
                                    c.Blocked = true;
                                    break;
                                }

                                // assign suppresion details
                                c.SuppressionReason = contact.SuppressionReason;

                                // commit changes to db
                                db.SaveChanges();

                                count++;
                            }
                        }
                        ViewBag.Message = string.Format("{0} contacts unsubscribed.", count);
                    }

                    var model = new UnsubscribeViewModel();

                    return(View(model));
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(View());
        }
Ejemplo n.º 7
0
        // GET: Contact/Unsubscribe
        public ActionResult Unsubscribe()
        {
            var model = new UnsubscribeViewModel();

            return(View(model));
        }