コード例 #1
0
ファイル: PageController.cs プロジェクト: antetmc2/zavrsni
        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 }));
        }
コード例 #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
ファイル: PageController.cs プロジェクト: antetmc2/zavrsni
        public ActionResult UpdateLayout(string Values, int IDpage)
        {
            var array = JArray.Parse(Values);
            IList <Serialized> objectsList = new List <Serialized>();

            foreach (var item in array)
            {
                objectsList.Add(item.ToObject <Serialized>());
            }

            var numberObjects = objectsList.Count();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var 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).GroupBy(c => c.IDlocation).ToList();

                int brojac = 0;
                foreach (var el in query)
                {
                    if (el.Count() != numberObjects)
                    {
                        continue;
                    }
                    foreach (var element in el)
                    {
                        var currentContent = db.Content.Find(element.Content.IDcontent);
                        currentContent.DataSizeX       = objectsList[brojac].size_x;
                        currentContent.DataSizeY       = objectsList[brojac].size_y;
                        currentContent.DataCol         = objectsList[brojac].col;
                        currentContent.DataRow         = objectsList[brojac].row;
                        db.Entry(currentContent).State = EntityState.Modified;
                        db.SaveChanges();
                        brojac++;
                    }
                }
            }
            return(RedirectToAction("Details", new { IDpage = IDpage, Username = "******" }));
        }
コード例 #4
0
ファイル: GroupController.cs プロジェクト: antetmc2/zavrsni
 public async Task <ActionResult> Edit(int IDgroup, GroupEditDetailsModel model)
 {
     using (ZavrsniEFentities db = new ZavrsniEFentities())
     {
         if (ModelState.IsValid)
         {
             var group = db.Group.Find(IDgroup);
             group.Name = model.Name;
             if (Request["GroupTypeDropDown"].Any())
             {
                 var groupTypeSel = Request["GroupTypeDropDown"];
                 var gt           = Convert.ToInt32(groupTypeSel);
                 group.IDgroupType = gt;
             }
             db.Entry(group).State = EntityState.Modified;
             db.SaveChanges();
         }
     }
     return(Content("Changes are successfully saved!", "text/html"));
     //return RedirectToAction("Edit", new { IDgroup = IDgroup });
 }
コード例 #5
0
ファイル: ContentController.cs プロジェクト: antetmc2/zavrsni
        public async Task <ActionResult> Edit(int IDcontent, string username, Contents model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var query           = db.Content.FirstOrDefault(u => u.IDcontent.Equals(IDcontent));
                var currentUser     = User.Identity.GetUserName();
                var usernameCurrent = db.User.FirstOrDefault(u => u.Username.Equals(currentUser));
                if (ModelState.IsValid)
                {
                    var user = db.User.FirstOrDefault(u => u.Username.Equals(username));
                    // Get the userprofile

                    model.Username = username;

                    if (model.Title != null)
                    {
                        query.Title = model.Title;
                    }
                    else
                    {
                        query.Title = "(no title)";
                    } query.Text      = model.Text;
                    query.IDeditor    = user.IDuser;
                    query.TimeChanged = DateTime.Now;

                    /*if (Request["PageDropDown"].Any())
                     * {
                     *  var pageSel = Request["PageDropDown"];
                     *  var page = Convert.ToInt32(pageSel);
                     *
                     *  var exists = from cp in db.ContentPage
                     *               where cp.IDpage == page
                     *               && cp.IDcontent == IDcontent
                     *               select cp;
                     *  if (!exists.Any())
                     *  {
                     *      var newPage = db.ContentPage.Create();
                     *      newPage.IDcontent = IDcontent;
                     *      newPage.IDpage = Convert.ToInt32(pageSel);
                     *      newPage.IDuser = user.IDuser;
                     *      db.ContentPage.Add(newPage);
                     *      db.SaveChanges();
                     *  }
                     *  else
                     *  {
                     *      return Content("The selected page already contains this content.", "text/html");
                     *  }
                     * }*/

                    if (Request["PageDropDown"].Any())
                    {
                        var contCopy = db.Content.Create();
                        contCopy.IDcontentType = query.IDcontentType;
                        contCopy.IDauthor      = usernameCurrent.IDuser;
                        contCopy.Text          = query.Text;
                        contCopy.Title         = query.Title;
                        contCopy.IsCopied      = true;
                        db.Content.Add(contCopy);
                        db.SaveChanges();

                        var contCopyLoc = (from l in db.LocationContent
                                           where l.IDcontent == query.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();
                    }

                    if (Request["ContentTypeDropDown"].Any())
                    {
                        var contSel = Request["ContentTypeDropDown"];
                        query.IDcontentType = Convert.ToInt32(contSel);
                    }

                    /*if (Request["LocationEdit"].Any())// && queryLocation != null)
                     * {
                     *  var locationSel = Request["LocationEdit"];
                     *  queryLocation.IDlocation = Convert.ToInt32(locationSel);
                     *  //db.Entry(queryLocation).State = EntityState.Modified;
                     * }*/

                    if (Request["LocationEdit"].Any())
                    {
                        var locationSel = Request["LocationEdit"];
                        var loc         = Convert.ToInt32(locationSel);

                        var exists = from lc in db.LocationContent
                                     where lc.IDlocation == loc &&
                                     lc.IDcontent == IDcontent
                                     select lc;

                        if (!exists.Any())
                        {
                            var location = db.LocationContent.Create();
                            location.IDlocation  = Convert.ToInt32(locationSel);
                            location.IDcontent   = IDcontent;
                            location.TimeChanged = DateTime.Now;
                            db.LocationContent.Add(location);
                            db.SaveChanges();
                        }
                        else
                        {
                            //return RedirectToAction("Edit", new { IDcontent = IDcontent });
                            return(Content("The selected location already contains this content.", "text/html"));
                        }
                    }

                    db.Entry(query).State = EntityState.Modified;
                    //db.Entry(queryPage).State = EntityState.Modified;

                    db.SaveChanges();
                    //return RedirectToAction("Edit", new { IDcontent = IDcontent, Username = username });
                    return(Content("Changes are successfully saved!", "text/html"));
                }
            }
            return(View(model));
        }
コード例 #6
0
ファイル: PageController.cs プロジェクト: antetmc2/zavrsni
        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));
                    }
                }
            }
        }
コード例 #7
0
ファイル: PageController.cs プロジェクト: antetmc2/zavrsni
        public async Task <ActionResult> EditPage(int IDpage, string username, EditPageModel model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var selPage = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage));
                if (ModelState.IsValid)
                {
                    var user = db.User.FirstOrDefault(u => u.Username.Equals(username));
                    selPage.name = model.PageTitle;

                    if (model.PageTitle == null)
                    {
                        return(Content("Page title cannot be empty!", "text/html"));
                    }

                    if (Request["PrivacyDropDown"].Any())
                    {
                        var privSel = Request["PrivacyDropDown"];
                        var privacy = Convert.ToInt32(privSel);

                        selPage.IDprivacy = privacy;
                    }

                    selPage.IDeditor    = user.IDuser;
                    selPage.TimeChanged = DateTime.Now;

                    if (model.Tag != null)
                    {
                        var tagModel     = model.Tag.ToLower();
                        var existsInPage = from p in db.PageTag
                                           join t in db.Tag on p.IDtag equals t.ID
                                           where t.name == tagModel
                                           select t;
                        var existsTag = from t in db.Tag
                                        where t.name == tagModel
                                        select t;

                        if (!existsTag.Any())
                        {
                            var newTag = db.Tag.Create();
                            newTag.name = tagModel;
                            db.Tag.Add(newTag);
                            db.SaveChanges();
                        }
                        if (!existsInPage.Any())
                        {
                            var newPageTag = db.PageTag.Create();
                            newPageTag.IDtag  = existsTag.First().ID;
                            newPageTag.IDpage = IDpage;
                            db.PageTag.Add(newPageTag);
                            db.SaveChanges();
                        }
                    }

                    if (model.Contributor != null)
                    {
                        var userExists = from u in db.User
                                         where u.Username == model.Contributor
                                         select u;

                        if (!userExists.Any())
                        {
                            //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username });
                            return(Content("User does not exist, please try again!", "text/html"));
                        }

                        var exists = from t in db.Contributor
                                     join u in db.User on t.IDuser equals u.IDuser
                                     where u.Username == model.Contributor &&
                                     t.IDpage == IDpage
                                     select t;

                        if (!exists.Any())
                        {
                            var contribUser    = db.User.FirstOrDefault(u => u.Username.Equals(model.Contributor));
                            var newContributor = db.Contributor.Create();
                            newContributor.IDpage   = IDpage;
                            newContributor.IDuser   = contribUser.IDuser;
                            newContributor.IsAuthor = false;
                            db.Contributor.Add(newContributor);
                            db.SaveChanges();
                        }
                    }

                    db.Entry(selPage).State = EntityState.Modified;
                    db.SaveChanges();
                    //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username });
                    return(Content("Changes were successfully saved!", "text/html"));
                }
            }
            return(Content("Edit failed, please try again!", "text/html"));
            //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username });
        }