Exemplo n.º 1
0
        public ActionResult Create(News news)
        {
            if (!ModelState.IsValid)
            {
                return(View(news));
            }

            var user = DB2.Users.Find(CurrentUser.Id);

            if (news.Id > 0)
            {
                var model = DB2.Newses.Find(news.Id);
                // добавляем в историю изменения
                var description = "Изменена новость";
                if (!model.Enabled)
                {
                    description = "Опубликована архивная новость";
                }
                model.DatePublication = DateTime.Now;
                model.Body            = news.Body;
                model.Subject         = news.Subject;
                model.Enabled         = true;
                var history = new NewsSnapshot(model, user, description);
                DB2.NewsHistory.Add(history);
                Mails.NewsChanged(model, description, root);
                //важно, сохранить после отправки уведомления иначе не будет работать вычисление изменений
                DB2.SaveChanges();
                SuccessMessage("Изменения успешно сохранены");
            }
            else
            {
                // добавляем новость
                news.DatePublication = DateTime.Now;
                news.Enabled         = true;
                DB2.Newses.Add(news);
                DB2.SaveChanges();

                // пишем в историю
                var history = new NewsSnapshot(news, user, "Добавлена новость");
                DB2.NewsHistory.Add(history);
                DB2.SaveChanges();
                Mails.NewsChanged(news, "Добавлена новость", root);
                SuccessMessage("Новость успешно добавлена");
            }
            return(RedirectToAction("Index"));
        }
Exemplo n.º 2
0
        public ActionResult DeleteNews(long id)
        {
            // отправляем новость в архив
            var news = DB2.Newses.Find(id);

            news.Enabled = false;
            DB2.SaveChanges();

            // добавляем историю изменений
            var history = new NewsSnapshot(news, DB2.Users.Find(CurrentUser.Id), "Новость отправлена в архив");

            DB2.NewsHistory.Add(history);
            DB2.SaveChanges();

            Mails.NewsChanged(news, "Новость отправлена в архив", root);
            SuccessMessage("Новость отправлена в архив");
            return(RedirectToAction("Index"));
        }