Beispiel #1
0
        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 Edit([Bind(Include = "tForumMessages_messages")] int?id, tForumMessages tForumMessages)
        {
            var t = _db.tForumMessages.Find(id);

            if (t == null)
            {
                return(HttpNotFound());
            }
            t.tForumMessages_messages = WebUtility.HtmlDecode(tForumMessages.tForumMessages_messages);
            t.tUsers_Edit_name        = _db.Users.First(a => a.UserName == User.Identity.Name);
            t.tUsers_Edit_datetime    = DateTime.Now;
            _db.Entry(t).State        = EntityState.Modified;
            _db.SaveChanges();
            return(RedirectToAction("Index", new { id = t.tForumThemes.Id, id_list = t.tForumThemes.tForumList.Id }));
        }
        public ActionResult Create([Bind(Include = "tForumMessages_messages")] int?id, tForumMessages tForumMessages)
        {
            tForumMessages.tForumThemes            = _db.tForumThemes.Find(id);
            tForumMessages.tUsers                  = _db.Users.First(a => a.UserName == User.Identity.Name);
            tForumMessages.tForumMessages_datetime = DateTime.Now;
            tForumMessages.tForumMessages_hide     = false;
            var userId = tForumMessages.tUsers.Id;

            if (tForumMessages.tForumMessages_messages != null)
            {
                tForumMessages.tForumMessages_messages = WebUtility.HtmlDecode(tForumMessages.tForumMessages_messages);
            }
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index", new { id, id_list = tForumMessages.tForumThemes.tForumList.Id }));
            }

            _db.tForumMessages.Add(tForumMessages);
            _db.SaveChanges();
            var r = _db.Roles.ToList();

            foreach (var item2 in r.SelectMany(item => _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 == tForumMessages.tForumThemes.Id))
                {
                    var n = new tUserNewThemes {
                        tForumThemes = tForumMessages.tForumThemes, tUsers = item2
                    };
                    _db.tUserNewThemes.Add(n);
                    _db.SaveChanges();
                }
                //Также новое сообщение
                if (
                    _db.tUserNewMessages.Where(a => a.tUsers.Id == item2.Id)
                    .Any(b => b.tForumMessages.Id == tForumMessages.Id))
                {
                    continue;
                }
                var nm = new tUserNewMessages {
                    tForumMessages = tForumMessages, tUsers = item2
                };
                _db.tUserNewMessages.Add(nm);
                _db.SaveChanges();
            }
            var val  = Url.RequestContext.HttpContext.Request.Url.Scheme;
            var href = Url.Action("Index", "ForumMessages", new { id = tForumMessages.tForumThemes.Id, id_list = tForumMessages.tForumThemes.tForumList.Id }, val);

            Code.Notify.NewMessage(tForumMessages.Id, href, userId);
            return(RedirectToAction("Index", new { id = id, id_list = tForumMessages.tForumThemes.tForumList.Id }));
        }
        public ActionResult CreateOffer([Bind(Include = "tOffer_error,tOffer_place,tOffer_tBranch_id,tOffer_tProject_id,tOffer_tReleaseProject_id,tOffer_tReleaseProject_exec_id,tOffer_tSubsystem_id")]
                                        int id_mess,
                                        int id_theme, tOffer toffer)
        {
            var val       = Url.RequestContext.HttpContext.Request.Url.Scheme;
            var returnUrl = "";
            var href      = "";

            if (toffer.tOffer_tReleaseProject_exec_id == 0)
            {
                ModelState.AddModelError("tOffer_tReleaseProject_exec_id", "Укажите версию реализации");
            }
            if (toffer.tOffer_tReleaseProject_id == 0)
            {
                ModelState.AddModelError("tOffer_tReleaseProject_id", "Укажите версию обнаружения");
            }
            if (id_mess != 0)
            {
                var t = _db.tForumMessages.Find(id_mess);
                toffer.tforummessages = t;
                if (!ModelState.IsValid)
                {
                    ViewData["tBranch"]              = _db.tBranch.ToList();
                    ViewData["tProject"]             = _db.tProject.ToList();
                    ViewData["tReleaseProject"]      = _db.tReleaseProject.ToList();
                    ViewData["tReleaseProject_exec"] = _db.tReleaseProject.ToList();
                    ViewData["tSubsystem"]           = _db.tSubsystem.ToList();
                    ViewData["id_mess"]              = id_mess;
                    ViewData["id_theme"]             = id_theme;
                    return(View(toffer));
                }
                _db.tOffer.Add(toffer);
                _db.SaveChanges();
                returnUrl = Url.Action("Index", "ForumMessages", new { id = t.tForumThemes.Id, id_list = t.tForumThemes.tForumList.Id });
                href      = Url.Action("Index", "ForumMessages", new { id = t.tForumThemes.Id, id_list = t.tForumThemes.tForumList.Id }, val);
            }
            else
            {
                var t = _db.tForumThemes.Find(id_theme);
                toffer.tforumthemes = t;
                if (!ModelState.IsValid)
                {
                    ViewData["tBranch"]              = _db.tBranch.ToList();
                    ViewData["tProject"]             = _db.tProject.ToList();
                    ViewData["tReleaseProject"]      = _db.tReleaseProject.ToList();
                    ViewData["tReleaseProject_exec"] = _db.tReleaseProject.ToList();
                    ViewData["tSubsystem"]           = _db.tSubsystem.ToList();
                    ViewData["id_mess"]              = id_mess;
                    ViewData["id_theme"]             = id_theme;
                    return(View(toffer));
                }
                _db.tOffer.Add(toffer);
                _db.SaveChanges();
                returnUrl = Url.Action("Index", "ForumMessages", new { id = t.Id, id_list = t.tForumList.Id });
                href      = Url.Action("Index", "ForumMessages", new { id = t.Id, id_list = t.tForumList.Id }, val);
            }
            //и теперь мы создаем замечание - выделим отдельно, так как там много кода
            toffer.tOffer_docnumber = Create(toffer.Id, User.Identity.Name, href);
            _db.Entry(toffer).State = EntityState.Modified;
            _db.SaveChanges();
            //а теперь допишем сообщение в форум
            var m = new tForumMessages
            {
                tUsers = _db.Users.First(a => a.UserName == User.Identity.Name),
                tForumMessages_datetime = System.DateTime.Now,
                tForumMessages_hide     = false,
                tForumMessages_messages =
                    "<p>Создано замечание №" + toffer.tOffer_docnumber + "</p>",
                tForumThemes = id_mess != 0 ? toffer.tforummessages.tForumThemes : toffer.tforumthemes
            };

            _db.tForumMessages.Add(m);
            _db.SaveChanges();

            return(RedirectToLocal(returnUrl));
        }