/// <summary>
        /// инкрементирование счетчика
        /// </summary>
        public void Handle(IncrementClickCountCommand command)
        {
            if (command == null)
            {
                return;
            }

            var url = _context.Urls.FirstOrDefault(u => u.Id == command.Id);

            if (url != null)
            {
                url.ClickCount++;
                _context.SaveChanges();
            }
        }
Пример #2
0
        public ActionResult RedirectToUrl(string urlId)
        {
            //из базы получаем ссылку с переданным id
            var url = _compressorQuery.Urls.FirstOrDefault(u => u.Id == urlId);

            if (url != null)
            {
                var command = new IncrementClickCountCommand()
                {
                    Id = urlId
                };

                _compressorCommandHandler.Handle(command);

                //если ссылка нашлась - редиректим на исходную ссылку
                return(Redirect(url.SourceUrl));
            }
            else
            {
                //иначе - на дефолтную страницу
                return(Redirect("/"));
            }
        }