public ActionResult CreateOffer(int?id, int?id_themes) { var tu = db.Users.Where(a => a.UserName == User.Identity.Name).First().tModerator; if (tu.Count == 0) { return(RedirectToAction("Settings")); } else if (!TryConnect(tu.First().Id)) { return(RedirectToAction("Settings")); } Models.ViewModel.CreateOffer c = new Models.ViewModel.CreateOffer(); if (id != null) { tForumMessages tm = db.tForumMessages.Find(id); c._message = tm; ViewData["_messages"] = tm.tForumMessages_messages; } else { tForumThemes tm = db.tForumThemes.Find(id_themes); c._themes = tm; ViewData["_messages"] = tm.tForumThemes_desc; } return(View(c)); }
public ActionResult Create([Bind(Include = "Id,tForumThemes_name,tForumThemes_datetime,tForumThemes_desc,tForumThemes_top,tForumThemes_close")] int?id, tForumThemes tForumThemes) { tForumThemes.tForumList = _db.tForumLists.Find(id); tForumThemes.tForumThemes_datetime = DateTime.Now; tForumThemes.tUsers = _db.Users.First(a => a.UserName == User.Identity.Name); tForumThemes.tForumThemes_hide = false; var userId = tForumThemes.tUsers.Id; if (tForumThemes.tForumThemes_desc != null) { tForumThemes.tForumThemes_desc = WebUtility.HtmlDecode(tForumThemes.tForumThemes_desc); } if (!ModelState.IsValid) { return(View(tForumThemes)); } if (User.IsInRole("user")) { //это я поставлю на всякий случай - защита от самого себя //пользователь не может создавать закрепленные темы tForumThemes.tForumThemes_top = false; tForumThemes.tForumThemes_close = false; } _db.tForumThemes.Add(tForumThemes); _db.SaveChanges(); var r = _db.Roles.ToList(); foreach (var item in r) { //по ролям foreach (var item2 in _db.Users.Where(a => a.Roles.Any(b => b.RoleId == item.Id)).Where(a => a.Id != userId)) { //по пользователям в роли if ( _db.tUserNewThemes.Where(a => a.tUsers.Id == item2.Id) .Any(b => b.tForumThemes.Id == tForumThemes.Id)) { continue; } var n = new tUserNewThemes { tForumThemes = tForumThemes, tUsers = item2 }; _db.tUserNewThemes.Add(n); _db.SaveChanges(); } } //отсылаем сообщение всем модераторам var val = Url.RequestContext.HttpContext.Request.Url.Scheme; var href = Url.Action("Index", "ForumMessages", new { id = tForumThemes.Id, id_list = tForumThemes.tForumList.Id }, val); Code.Notify.NewThemes(tForumThemes.Id, href, userId); return(RedirectToAction("Index", "ForumMessages", new { id = tForumThemes.Id })); }