Example #1
0
        //
        // GET: /Error/Error404
        public ActionResult Error404(string url)
        {
            Response.StatusCode = (int)HttpStatusCode.NotFound;

            var model = new Error404Model();

            model.RequestedUrl =
                Request.Url != null &&
                (url == null || Request.Url.OriginalString.Contains(url) && Request.Url.OriginalString != url)
                    ? Request.Url.OriginalString
                    : url ?? string.Empty;

            model.ReferrerUrl =
                Request.UrlReferrer != null &&
                Request.UrlReferrer.OriginalString != model.RequestedUrl
                    ? Request.UrlReferrer.OriginalString
                    : null;

            return(View(model));
        }
        public IActionResult NotFound404()
        {
            Response.StatusCode = 404;
            Error404Model model;

            ErrorManagerSettings settings = _settingsProvider.GetSettings <ErrorManagerSettings>("ErrorManager");

            if (settings.RandomQuotes)
            {
                // grab a random quote
                Random rnd   = new Random(Convert.ToInt32(DateTime.Now.ToString("Hmsffff")));
                int    quote = rnd.Next(settings.Count());
                model = new Error404Model(GetModelData(),
                                          Languages.LanguageStrings.PageNotFound, settings.GetQuote(quote), GetImageFile(quote));
            }
            else
            {
                int index = 0;

                // sequential, save current state to cookie
                if (CookieExists("Error404"))
                {
                    // get index from cookie
                    string cookieValue = Decrypt(CookieValue("Error404"), settings.EncryptionKey);
                    index = StrToInt(cookieValue, 0) + 1;
                }

                if (index < 0 || index > settings.Count())
                {
                    index = 0;
                }

                CookieAdd("Error404", Encrypt(Convert.ToString(index), settings.EncryptionKey), 30);

                model = new Error404Model(GetModelData(),
                                          Languages.LanguageStrings.PageNotFound, settings.GetQuote(index), GetImageFile(index));
            }

            return(View(model));
        }