public ActionResult Show(int id) { Trip t = new Trip(); using (var db = new RazomContext()) { t.Finish = db.Travels.Find(id).DateFinish ?? DateTime.Now.AddDays(1); t.Start = db.Travels.Find(id).DateStart ?? DateTime.Now; t.Name = db.Travels.Find(id).Name; t.Places = (from tr in db.Travels join tp in db.TravelPlaces on tr.TravelID equals tp.TravelID join pl in db.Places on tp.PlaceID equals pl.PlaceID where tr.TravelID == id select pl).ToList(); t.Users = (from tr in db.Travels join h in db.History on tr.TravelID equals h.TravelID join u in db.Users on h.UserID equals u.UserID where tr.TravelID == id select u).ToList(); t.ID = id; t.Messages = (from tr in db.Message join u in db.Users on tr.UserID equals u.UserID where tr.TravelID == id select new PostedMessage { AuthorName = u.FirstName + " " + u.SecondName, ID = tr.MessageID, Text = tr.Text }).ToList(); HttpCookie cookie = Request.Cookies[FormsAuthentication.FormsCookieName]; FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value); int user = db.Users.Where(u => u.Login == ticket.Name).SingleOrDefault().UserID; t.UserID = user; if (db.History.Where(h => h.UserID == user).Count() > 0) { t.isEditable = true; } else t.isEditable = false; } return View(t); }
public ActionResult Create(Trip trip) { if (ModelState.IsValid) { if (trip.Start > trip.Finish) { ModelState.AddModelError("", "Дата початку має бути раніше за дату кінця"); return View(); } if (Math.Abs(trip.Start.Year - DateTime.Now.Year) >100) { ModelState.AddModelError("", "Неправильно введена дата початку"); return View(); } if (Math.Abs(trip.Finish.Year - DateTime.Now.Year) > 100) { ModelState.AddModelError("", "Неправильно введена дата кінця"); return View(); } using (var db = new RazomContext()) { HttpCookie cookie = Request.Cookies[FormsAuthentication.FormsCookieName]; FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value); Users user = db.Users.Where(u => u.Login == ticket.Name).SingleOrDefault(); Travels t = new Travels { DateStart = trip.Start, DateFinish = trip.Finish, Name = trip.Name }; db.Travels.Add(t); db.SaveChanges(); db.History.Add(new History { UserID = user.UserID, TravelID = t.TravelID }); db.SaveChanges(); return RedirectToAction("Show", "Trip", new { id = t.TravelID }); } } return View(); }