Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }