public ActionResult CreateOffer(int id_mess, int id_theme) { var returnUrl = Url.Action("CreateOffer", new { id_mess = id_mess, id_theme = id_theme }); //попробуем для начала подсоедениться к БТ if (!TryConnect(User.Identity.Name)) return RedirectToAction("Settings", new {returnUrl = returnUrl}); var t = _db.tForumMessages.Find(id_mess); tOffer toffer; if (t != null) { //создаем замечание на основании сообщения toffer = new tOffer {tforummessages = t}; //теперь нам нужны данные для комбиков 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); } var tm = _db.tForumThemes.Find(id_theme); if (tm == null) return HttpNotFound(); //создаем замечание на основании сообщения toffer = new tOffer {tforumthemes = tm}; //теперь нам нужны данные для комбиков 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); }
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); }