Exemple #1
0
        public async Task <ActionResult> ViewDetails(int IDpage, string username, PageDetailModel model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var currentUser = User.Identity.GetUserName();
                var user        = db.User.FirstOrDefault(u => u.Username.Equals(username));
                var current     = db.User.FirstOrDefault(u => u.Username.Equals(currentUser));

                var reviewExists = (from p in db.PageReview
                                    where p.IDpage == IDpage &&
                                    p.IDreviewer == current.IDuser
                                    select p).ToList();

                if (reviewExists.Any())
                {
                    var selReview = db.PageReview.Find(IDpage, current.IDuser);
                    selReview.Mark            = model.Grade;
                    db.Entry(selReview).State = EntityState.Modified;
                    db.SaveChanges();
                }
                if (!reviewExists.Any())
                {
                    var selReview = db.PageReview.Create();
                    selReview.IDpage     = IDpage;
                    selReview.IDreviewer = current.IDuser;
                    selReview.Mark       = model.Grade;
                    db.PageReview.Add(selReview);
                    db.SaveChanges();
                }
            }
            return(RedirectToAction("Details", new { IDpage = IDpage, Username = username }));
        }
Exemple #2
0
        public ActionResult Details(int IDpage, string username)
        {
            PageDetailModel model = new PageDetailModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                List <LocationContent> query = (from c in db.LocationContent
                                                join p in db.ContentPage on c.IDcontent equals p.IDcontent
                                                where p.IDpage == IDpage
                                                select c).Include(c => c.Content).Include(c => c.Location).Include(c => c.City).Include("Content.User").ToList();
                model.PageContents = query;

                var contributors = (from c in db.Contributor
                                    join u in db.User on c.IDuser equals u.IDuser
                                    where c.IDpage == IDpage &&
                                    c.IsAuthor == false
                                    select u).ToList();
                model.Contributors = contributors;

                var PageInfo = (from p in db.Page
                                where p.IDpage == IDpage
                                select p);
                model.PageName = PageInfo.First().name;
                model.IDpage   = PageInfo.First().IDpage;

                var selPage    = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage));
                var pageAuthor = (from p in db.Contributor
                                  join u in db.User on p.IDuser equals u.IDuser
                                  where p.IDpage == IDpage &&
                                  p.IsAuthor == true
                                  select u);
                model.PageAuthor = pageAuthor.FirstOrDefault().Username;
                var views = selPage.PageView;
                views++;
                selPage.PageView        = views;
                db.Entry(selPage).State = EntityState.Modified;
                db.SaveChanges();
                var marksExist = (from p in db.PageReview
                                  where p.IDpage == IDpage
                                  select p).ToList();
                if (marksExist.Any())
                {
                    var average = (from p in db.PageReview
                                   where p.IDpage == IDpage
                                   select p).Average(p => p.Mark);

                    if (!Request.IsAuthenticated)
                    {
                        model.AverageGrade = average;
                        return(View(model));
                    }
                    else
                    {
                        model.Username     = username;
                        model.AverageGrade = average;
                        return(View(model));
                    }
                }
                else
                {
                    double average = 0;

                    if (!Request.IsAuthenticated)
                    {
                        model.AverageGrade = average;
                        return(View(model));
                    }
                    else
                    {
                        model.Username     = username;
                        model.AverageGrade = average;
                        return(View(model));
                    }
                }
            }
        }