예제 #1
0
        public ActionResult TopList()
        {
            TopListModel model = new TopListModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var mostViewedPages = (from p in db.Page
                                       where p.IDprivacy == 3
                                       orderby p.PageView ascending
                                       select p).Take(5).ToList();

                var topRatedPages = db.PageReview
                                    .GroupBy(r => r.IDpage)
                                    .Select(p => new TopPag()
                {
                    Page        = p.FirstOrDefault().IDpage,
                    Avg         = p.Average(r => r.Mark),
                    TopPageName = p.FirstOrDefault().Page.name
                })
                                    .OrderByDescending(x => x.Avg)
                                    .Take(10)
                                    .ToList();

                var topRatedPublicPages = (from t in topRatedPages
                                           join p in db.Page on t.Page equals p.IDpage
                                           where p.IDprivacy == 3
                                           select t).ToList();
                model.topPages      = mostViewedPages;
                model.topRatedPages = topRatedPublicPages;
            }
            return(View(model));
        }
예제 #2
0
        public async Task <ActionResult> Edit(UserEditModel model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                if (ModelState.IsValid)
                {
                    string username = User.Identity.GetUserName();
                    // Get the userprofile
                    User user = db.User.FirstOrDefault(u => u.Username.Equals(username));

                    // Update fields
                    user.FirstName = model.FirstName;
                    user.LastName  = model.LastName;
                    user.Email     = model.Email;
                    if (Request["CityDropDown"].Any())
                    {
                        var citySel = Request["CityDropDown"];
                        user.IDcityFrom = Convert.ToInt32(citySel);
                    }

                    db.Entry(user).State = EntityState.Modified;

                    db.SaveChanges();
                    return(RedirectToAction("Index", "Home")); // or whatever
                }

                return(View(model));
            }
        }
예제 #3
0
        public ActionResult Cities()
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var allCities = (from c in db.City
                                 orderby c.CityName
                                 select c).Include(c => c.Country).ToList();

                var availableCountries = (from c in db.Country
                                          orderby c.CountryName
                                          select c).ToList();

                var locTypes = (from l in db.LocationType
                                orderby l.Name
                                select l).ToList();

                var model = new CityCountryListModel()
                {
                    Cities       = allCities,
                    LocationType = new SelectList(locTypes, "ID", "Name")
                };
                model.Country = new SelectList(availableCountries, "ID", "CountryName");
                return(View(model));
            }
        }
예제 #4
0
        public ActionResult Details(int IDgroup)
        {
            GroupDetailsModel model = new GroupDetailsModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var groupQuery = (from g in db.Group
                                  where g.IDgroup == IDgroup
                                  select g).Include(g => g.GroupType);
                model.GroupType = groupQuery.FirstOrDefault().GroupType.Name;
                model.Name      = groupQuery.FirstOrDefault().Name;
                model.IDgroup   = IDgroup;

                var membersQuery = (from b in db.BelongsToGroup
                                    where b.IDgroup == IDgroup
                                    select b).Include(b => b.User).ToList();
                model.Members = membersQuery;

                var otherUsers = (from u in db.User
                                  select u).Except(from b in db.BelongsToGroup
                                                   join s in db.User on b.IDuser equals s.IDuser
                                                   where b.IDgroup == IDgroup
                                                   select s).ToList();
                model.MembersNotInList = new SelectList(otherUsers, "IDuser", "Username");
            }
            return(View(model));
        }
예제 #5
0
        public async Task <ActionResult> Add(AddNewGroupModel model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var username = User.Identity.GetUserName();
                var user     = db.User.FirstOrDefault(u => u.Username.Equals(username));

                var newGroup = db.Group.Create();
                if (Request["GroupTypeDropDown"].Any())
                {
                    var groupTypeSel = Request["GroupTypeDropDown"];
                    var gt           = Convert.ToInt32(groupTypeSel);
                    newGroup.IDgroupType = gt;
                }
                newGroup.Name         = model.Name;
                newGroup.IDgroupOwner = user.IDuser;
                db.Group.Add(newGroup);
                db.SaveChanges();

                var authorToGroup = db.BelongsToGroup.Create();
                authorToGroup.IDgroup     = newGroup.IDgroup;
                authorToGroup.IDuser      = user.IDuser;
                authorToGroup.TimeChanged = DateTime.Now;
                db.BelongsToGroup.Add(authorToGroup);
                db.SaveChanges();

                return(RedirectToAction("Index", "Group"));
            }
        }
예제 #6
0
        public ActionResult Edit(int IDpage, string username)
        {
            EditPageModel model = new EditPageModel();

            model.Username = username;
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                model.IDpage = IDpage;
                var selPage = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage));
                var query   = (from p in db.Privacy
                               orderby p.Description
                               select p).ToList();
                model.PageTitle = selPage.name;
                model.Privacy   = new SelectList(query, "IDprivacy", "description", selPage.IDprivacy);

                var tagList = (from t in db.PageTag
                               join a in db.Tag on t.IDtag equals a.ID
                               where t.IDpage == IDpage
                               orderby a.name
                               select t).Include(t => t.Tag).ToList();
                model.TagList = tagList;

                var contribList = (from c in db.Contributor
                                   join u in db.User on c.IDuser equals u.IDuser
                                   orderby u.Username
                                   where c.IDpage == IDpage
                                   select c).Include(c => c.User).ToList();
                model.ContributorList = contribList;
            }
            return(View(model));
        }
예제 #7
0
        public ActionResult Index(int page = 1, int pageSize = 20)
        {
            HomeContentModel model = new HomeContentModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                if (Request.IsAuthenticated)
                {
                    var currentUser = User.Identity.GetUserName();
                    var user        = db.User.FirstOrDefault(u => u.Username.Equals(currentUser));

                    var groupContents = (from g in db.Group
                                         join b in db.BelongsToGroup on g.IDgroup equals b.IDgroup
                                         join u in db.User on b.IDuser equals u.IDuser
                                         join c in db.Content on u.IDuser equals c.IDauthor
                                         where g.IDgroupOwner == user.IDuser &&
                                         g.IDgroup != 1 &&
                                         g.IDgroup == b.IDgroup &&
                                         c.IsCopied == false
                                         orderby c.TimeChanged descending
                                         select c).Include(c => c.User);
                    model.contents = new PagedList <Content>(groupContents, page, pageSize);
                }

                var allContents = (from c in db.Content
                                   orderby c.TimeChanged descending
                                   where c.IsCopied == false
                                   select c).Include(c => c.ContentType).Include(c => c.User);

                model.contentsGuest = new PagedList <Content>(allContents, page, pageSize);
                return(View(model));
            }
        }
예제 #8
0
 public async Task <ActionResult> Index(HomeContentModel model, int page = 1, int pageSize = 20)
 {
     using (ZavrsniEFentities db = new ZavrsniEFentities())
     {
         return(RedirectToAction("Search", new { keyword = model.keyword, page = page, pageSize = pageSize }));
     }
 }
예제 #9
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 }));
        }
예제 #10
0
        public async Task <ActionResult> NewPage(string username, NewPageModel model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var user    = db.User.FirstOrDefault(u => u.Username.Equals(username));
                var newPage = db.Page.Create();
                newPage.name = model.PageTitle;
                if (Request["PrivacyDropDown"].Any())
                {
                    var privSel = Request["PrivacyDropDown"];
                    var privacy = Convert.ToInt32(privSel);

                    newPage.IDprivacy = privacy;
                }
                else
                {
                    return(RedirectToAction("NewPage", new { Username = username }));
                }
                newPage.CreatedAt = DateTime.Now;
                newPage.PageView  = 0;

                db.Page.Add(newPage);
                db.SaveChanges();

                var newContributor = db.Contributor.Create();
                newContributor.IDpage   = newPage.IDpage;
                newContributor.IDuser   = user.IDuser;
                newContributor.IsAuthor = true;

                db.Contributor.Add(newContributor);
                db.SaveChanges();

                return(RedirectToAction("Index", new { Username = username }));
            }
        }
예제 #11
0
        public ActionResult Insert(string username)
        {
            AddNewContentModel model = new AddNewContentModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var user = db.User.FirstOrDefault(u => u.Username.Equals(username));

                var query1 = (from p in db.Page
                              join c in db.Contributor on p.IDpage equals c.IDpage
                              where c.IDuser == user.IDuser
                              orderby p.name
                              select p).ToList();
                model.Page = new SelectList(query1, "IDpage", "name");

                var query2 = (from p in db.ContentType
                              orderby p.Description
                              select p).ToList();
                model.ContentType = new SelectList(query2, "ID", "Description");

                var query3 = (from c in db.City
                              orderby c.CityName
                              select c).ToList();
                model.Location = new SelectList(query3, "IDcity", "CityName");
                model.Username = username;
            }
            return(View(model));
        }
예제 #12
0
        public ActionResult ViewContent(string username, int page = 1, int pageSize = 16)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var currentUser = User.Identity.GetUserName();
                var user        = db.User.FirstOrDefault(u => u.Username.Equals(username));
                var allContents = (from c in db.Content
                                   where c.IDauthor == user.IDuser &&
                                   c.IsCopied == false
                                   orderby c.TimeChanged descending
                                   select c).Include(c => c.ContentType);

                var test = allContents.Count();
                if (test > 160)
                {
                    pageSize = 24;
                }

                var model = new IndexContentModel()
                {
                    contents = new PagedList <Content>(allContents, page, pageSize),
                    Username = username
                };

                return(View(model));
            }
        }
예제 #13
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true

            using (ZavrsniEFentities entities = new ZavrsniEFentities())
            {
                string username = model.Username;
                string pass     = model.Password;

                bool userValid = entities.User.Any(user => user.Username == username && user.Password == pass);

                if (userValid)
                {
                    FormsAuthentication.SetAuthCookie(username, false);
                    var FormsAuthCookie = Response.Cookies[FormsAuthentication.FormsCookieName];
                    var ExistingTicket  = FormsAuthentication.Decrypt(FormsAuthCookie.Value).Name;
                    if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/"))
                    {
                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "The user name or password provided is incorrect.");
                }
            }


            /*var result = await SignInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, shouldLockout: false);
             * switch (result)
             * {
             *  case SignInStatus.Success:
             *      return RedirectToLocal(returnUrl);
             *  case SignInStatus.LockedOut:
             *      return View("Lockout");
             *  case SignInStatus.RequiresVerification:
             *      return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
             *  case SignInStatus.Failure:
             *  default:
             *      ModelState.AddModelError("", "Invalid login attempt.");
             *      return View(model);
             * }*/


            return(View(model));
        }
예제 #14
0
        public async Task <ActionResult> DeleteContentConfirm(int IDpage, int IDcontent, string username)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var contentDelete = db.ContentPage.Find(IDcontent, IDpage);
                db.ContentPage.Remove(contentDelete);
                db.SaveChanges();
            }

            return(RedirectToAction("Details", new { IDpage = IDpage }));
        }
예제 #15
0
 public ActionResult Add()
 {
     using (ZavrsniEFentities db = new ZavrsniEFentities())
     {
         AddNewGroupModel model = new AddNewGroupModel();
         var groupTypes         = (from g in db.GroupType
                                   orderby g.Name
                                   select g).ToList();
         model.GroupType = new SelectList(groupTypes, "ID", "Name");
         return(View(model));
     }
 }
예제 #16
0
        public ActionResult NewPage(string username)
        {
            NewPageModel model = new NewPageModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var query = (from p in db.Privacy
                             select p).ToList();
                model.Privacy  = new SelectList(query, "IDprivacy", "description");
                model.Username = username;
                return(View(model));
            }
        }
예제 #17
0
        public async Task <ActionResult> DeletePage(int IDpage, string username)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var page = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage));

                var pageDelete = db.Page.Find(IDpage);
                db.Page.Remove(pageDelete);
                db.SaveChanges();
            }

            return(RedirectToAction("Index", new { Username = username }));
        }
예제 #18
0
        public async Task <ActionResult> DeleteConfirm(int IDcontent, string username)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var cont = db.Content.FirstOrDefault(u => u.IDcontent.Equals(IDcontent));

                var contentDelete = db.Content.Find(IDcontent);
                db.Content.Remove(contentDelete);
                db.SaveChanges();
            }

            return(RedirectToAction("ViewContent", new { Username = username }));
        }
예제 #19
0
        public ActionResult DeleteContributor(int IDpage, int IDuser, string username)
        {
            UsernameModel model = new UsernameModel();

            model.Username = username;
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var contributorDelete = db.Contributor.Find(IDpage, IDuser);
                db.Contributor.Remove(contributorDelete);
                db.SaveChanges();
            }

            return(RedirectToAction("Edit", new { IDpage = IDpage, Username = username }));
        }
예제 #20
0
        public ActionResult Register()
        {
            RegisterViewModel model = new RegisterViewModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var query = (from c in db.City
                             orderby c.CityName
                             select c).ToList();
                model.CityList = new SelectList(query, "IDcity", "CityName");
            }

            return(View(model));
        }
예제 #21
0
        public ActionResult DeleteTag(int IDpage, int IDtag, string username)
        {
            UsernameModel model = new UsernameModel();

            model.Username = username;
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var tagDelete = db.PageTag.Find(IDtag, IDpage);
                db.PageTag.Remove(tagDelete);
                db.SaveChanges();
            }

            return(RedirectToAction("Edit", new { IDpage = IDpage, Username = username }));
        }
예제 #22
0
        public ActionResult DeleteLocation(int IDlocation, int IDcontent, string username)
        {
            UsernameModel model = new UsernameModel();

            model.Username = username;
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var deleteLocationContent = db.LocationContent.Find(IDlocation, IDcontent);
                db.LocationContent.Remove(deleteLocationContent);
                db.SaveChanges();
            }

            return(RedirectToAction("Edit", new { IDcontent = IDcontent, Username = username }));
        }
예제 #23
0
 public async Task <ActionResult> DeleteConfirm(int IDgroup)
 {
     using (ZavrsniEFentities db = new ZavrsniEFentities())
     {
         if (IDgroup == 1)
         {
             return(RedirectToAction("Index", "Group"));
         }
         var groupDelete = db.Group.Find(IDgroup);
         db.Group.Remove(groupDelete);
         db.SaveChanges();
     }
     return(RedirectToAction("Index", "Group"));
 }
예제 #24
0
        public ActionResult Search(string keyword, int page = 1, int pageSize = 20)
        {
            SearchModel model = new SearchModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var searchResults = (from c in db.Content
                                     where c.Text.ToLower().Contains(keyword.ToLower()) ||
                                     c.Title.ToLower().Contains(keyword.ToLower())
                                     orderby c.TimeChanged descending
                                     select c);
                model.results = new PagedList <Content>(searchResults, page, pageSize);
            }
            return(View(model));
        }
예제 #25
0
        public ActionResult Edit(int IDgroup)
        {
            GroupEditDetailsModel model = new GroupEditDetailsModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var queryType = db.Group.FirstOrDefault(u => u.IDgroup.Equals(IDgroup));
                var query     = (from g in db.GroupType
                                 select g).ToList();
                model.GroupType = new SelectList(query, "ID", "Name", queryType.IDgroupType);
                model.IDgroup   = IDgroup;
                model.Name      = queryType.Name;
            }
            return(View(model));
        }
예제 #26
0
        public ActionResult DeleteMember(int IDgroup, int IDuser)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                if (IDgroup == 1)
                {
                    return(RedirectToAction("Index", "Group"));
                }

                var groupMemberDelete = db.BelongsToGroup.Find(IDgroup, IDuser);
                db.BelongsToGroup.Remove(groupMemberDelete);
                db.SaveChanges();
            }
            return(RedirectToAction("Details", new { IDgroup = IDgroup }));
        }
예제 #27
0
        public async Task <ActionResult> ShowDetails(int IDcontent, string username, ContentDetails model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var currentUser     = User.Identity.GetUserName();
                var cont            = db.Content.FirstOrDefault(u => u.IDcontent.Equals(IDcontent));
                var usernameAuthor  = db.User.FirstOrDefault(u => u.IDuser.Equals(cont.IDauthor));
                var usernameCurrent = db.User.FirstOrDefault(u => u.Username.Equals(currentUser));
                if (Request["PageDropDown"].Any())
                {
                    var contCopy = db.Content.Create();
                    contCopy.IDcontentType = cont.IDcontentType;
                    contCopy.IDauthor      = usernameCurrent.IDuser;
                    contCopy.Text          = cont.Text;
                    contCopy.Title         = cont.Title;
                    contCopy.IsCopied      = true;
                    contCopy.IDeditor      = usernameCurrent.IDuser;
                    contCopy.TimeChanged   = DateTime.Now;
                    db.Content.Add(contCopy);
                    db.SaveChanges();

                    var contCopyLoc = (from l in db.LocationContent
                                       where l.IDcontent == cont.IDcontent
                                       select l.IDlocation).ToList();

                    foreach (var a in contCopyLoc)
                    {
                        var contLoc = db.LocationContent.Create();
                        contLoc.IDlocation  = a;
                        contLoc.IDcontent   = contCopy.IDcontent;
                        contLoc.TimeChanged = DateTime.Now;
                        db.LocationContent.Add(contLoc);
                        db.SaveChanges();
                    }

                    var contPage = db.ContentPage.Create();
                    contPage.IDcontent = contCopy.IDcontent;
                    contPage.IDuser    = usernameCurrent.IDuser;
                    var pageSel = Request["PageDropDown"];
                    contPage.IDpage = Convert.ToInt32(pageSel);
                    db.ContentPage.Add(contPage);
                    db.SaveChanges();
                }
            }
            return(RedirectToAction("Details", new { IDcontent = IDcontent, Username = username }));
        }
예제 #28
0
        // GET: Page
        public ActionResult Index(string username)
        {
            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 allPages    = (from p in db.Page
                                   join c in db.Contributor
                                   on p.IDpage equals c.IDpage
                                   where c.IDuser == user.IDuser
                                   //&& c.IsAuthor
                                   select p).Include(p => p.User1).Include(p => p.Contributor);

                var isContributor = (from a in allPages
                                     join c in db.Contributor on a.IDpage equals c.IDpage
                                     join u in db.User on c.IDuser equals u.IDuser
                                     where c.IDuser == current.IDuser
                                     select a).Include(a => a.User).Include(a => a.Contributor).ToList();

                var pagesPublic = (from a in allPages
                                   join c in db.Contributor on a.IDpage equals c.IDpage
                                   where a.IDprivacy >= 2
                                   select a).Except(from a in allPages
                                                    join c in db.Contributor on a.IDpage equals c.IDpage
                                                    where c.IDuser == current.IDuser
                                                    select a).Include(a => a.User).Include(a => a.Contributor).ToList();

                var isGroupMember = (from g in db.Group
                                     join b in db.BelongsToGroup on g.IDgroup equals b.IDgroup
                                     where g.IDgroupOwner == user.IDuser &&
                                     b.IDuser == current.IDuser &&
                                     g.IDgroup > 1
                                     select b).ToList();

                var model = new IndexPageModel()
                {
                    pages       = isContributor,
                    Username    = username,
                    pagesPublic = pagesPublic,
                    IsMember    = isGroupMember.Any()
                };
                return(View(model));
            }
        }
예제 #29
0
        public async Task <ActionResult> Index(GroupListModel model, int page = 1, int pageSize = 20)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var currentUser = User.Identity.GetUserName();
                var user        = db.User.FirstOrDefault(u => u.Username.Equals(currentUser));

                var groups = (from u in db.Group
                              where u.IDgroupOwner == user.IDuser ||
                              u.IDgroupOwner == null
                              orderby u.Name
                              select u).Include(u => u.GroupType).Include(u => u.User);

                model.GroupList = new PagedList <Group>(groups, page, pageSize);

                return(View(model));
            }
        }
예제 #30
0
        public ActionResult Delete(int IDcontent, string username)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var query = db.Content.FirstOrDefault(u => u.IDcontent.Equals(IDcontent));

                var user = db.User.FirstOrDefault(u => u.Username.Equals(username));

                if (query.IDauthor != user.IDuser)
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            UsernameModel model = new UsernameModel();

            model.Username = username;

            return(View(model));
        }