예제 #1
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 }));
            }
        }
예제 #2
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 }));
        }
예제 #3
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"));
            }
        }
예제 #4
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));
            }
        }
예제 #5
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 }));
        }
예제 #6
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 }));
        }
예제 #7
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 }));
        }
예제 #8
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 }));
        }
예제 #9
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 }));
        }
예제 #10
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 }));
        }
예제 #11
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 }));
        }
예제 #12
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"));
 }
예제 #13
0
        public async Task <ActionResult> Cities(CityCountryListModel model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                if (model.CountryName != null && model.CityName == null && Request["CountryDropDown"] == null && Request["LocationTypeDropDown"] == null)
                {
                    var newCountry = db.Country.Create();
                    newCountry.CountryName = model.CountryName;

                    db.Country.Add(newCountry);
                    db.SaveChanges();
                    return(RedirectToAction("Cities", "Home"));
                }

                if (model.CountryName == null && model.CityName != null && Request["LocationTypeDropDown"] != null && Request["CountryDropDown"] != null)
                {
                    var newCity = db.City.Create();
                    newCity.CityName = model.CityName;
                    var countrySel = Request["CountryDropDown"];
                    newCity.IDcountry = Convert.ToInt32(countrySel);

                    db.City.Add(newCity);

                    db.SaveChanges();
                    var newLocation = db.Location.Create();
                    newLocation.IDcity = newCity.IDcity;
                    var locTypeSel = Request["LocationTypeDropDown"];
                    newLocation.IDlocationType = Convert.ToInt32(locTypeSel);
                    db.Location.Add(newLocation);
                    db.SaveChanges();

                    return(RedirectToAction("Cities", "Home"));
                }
            }
            return(RedirectToAction("Cities", "Home"));
        }
예제 #14
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 }));
        }
예제 #15
0
        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 = "******" }));
        }
예제 #16
0
 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 });
 }
예제 #17
0
 public async Task <ActionResult> Comments(ContentComments model, int IDcontent, int IDpage, string Username)
 {
     using (ZavrsniEFentities db = new ZavrsniEFentities())
     {
         if (model.UserComment == null)
         {
             return(Content("The comment cannot be empty!", "text/html"));
         }
         var user     = User.Identity.GetUserName();
         var userInfo = (from u in db.User
                         where u.Username == user
                         select u);
         var newComment = db.ContentComment.Create();
         newComment.IDcontent = IDcontent;
         newComment.IDuser    = userInfo.FirstOrDefault().IDuser;
         newComment.Comment   = model.UserComment;
         newComment.Timestamp = DateTime.Now;
         db.ContentComment.Add(newComment);
         db.SaveChanges();
     }
     return(Content("The comment was successfully added!", "text/html"));
 }
예제 #18
0
        public ActionResult AddMember(int IDgroup)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                if (IDgroup == 1)
                {
                    return(RedirectToAction("Index", "Group"));
                }

                var newGroupMember = db.BelongsToGroup.Create();
                newGroupMember.IDgroup = IDgroup;
                if (Request["MemberAddDropDown"].Any())
                {
                    var memberSel = Request["MemberAddDropDown"];
                    var IDuser    = Convert.ToInt32(memberSel);
                    newGroupMember.IDuser = IDuser;
                }
                newGroupMember.TimeChanged = DateTime.Now;
                db.BelongsToGroup.Add(newGroupMember);
                db.SaveChanges();
            }
            return(RedirectToAction("Details", new { IDgroup = IDgroup }));
        }
예제 #19
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));
                    }
                }
            }
        }
예제 #20
0
        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));
        }
예제 #21
0
        public async Task <ActionResult> Insert(string username, AddNewContentModel model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var user            = db.User.FirstOrDefault(u => u.Username.Equals(username));
                var currentUser     = User.Identity.GetUserName();
                var usernameCurrent = db.User.FirstOrDefault(u => u.Username.Equals(currentUser));

                var newContent = db.Content.Create();
                if (!Request["ContentTypeDropDown"].Any())
                {
                    ModelState.AddModelError("", "Incorrect content.");
                    return(RedirectToAction("Insert", new { Username = username }));
                }
                var contSel = Request["ContentTypeDropDown"];
                newContent.IDcontentType = Convert.ToInt32(contSel);
                newContent.Text          = model.Text;
                newContent.IDauthor      = user.IDuser;
                newContent.IsCopied      = false;
                if (model.Title != null)
                {
                    newContent.Title = model.Title;
                }
                else
                {
                    newContent.Title = "(no title)";
                }
                newContent.IDeditor    = user.IDuser;
                newContent.TimeChanged = DateTime.Now;

                db.Content.Add(newContent);

                if (Request["LocationInsert"].Any())
                {
                    var location       = db.LocationContent.Create();
                    var locationSelect = Request["LocationInsert"];
                    location.IDlocation  = Convert.ToInt32(locationSelect);
                    location.IDcontent   = newContent.IDcontent;
                    location.TimeChanged = DateTime.Now;
                    db.LocationContent.Add(location);
                    db.SaveChanges();
                }
                db.SaveChanges();

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

                    if (Request["LocationInsert"].Any())
                    {
                        var locCopy        = db.LocationContent.Create();
                        var locationSelect = Request["LocationInsert"];
                        locCopy.IDlocation  = Convert.ToInt32(locationSelect);
                        locCopy.IDcontent   = contCopy.IDcontent;
                        locCopy.TimeChanged = DateTime.Now;
                        db.LocationContent.Add(locCopy);
                        db.SaveChanges();
                    }

                    var content = db.ContentPage.Create();
                    var pageSel = Request["PageDropDown"];
                    content.IDuser    = user.IDuser;
                    content.IDpage    = Convert.ToInt32(pageSel);
                    content.IDcontent = contCopy.IDcontent;
                    db.ContentPage.Add(content);
                    db.SaveChanges();
                }

                return(RedirectToAction("ViewContent", new { Username = username }));
            }
            return(View(model));
        }
예제 #22
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            /*if (ModelState.IsValid)
             * {
             *  var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
             *  var result = await UserManager.CreateAsync(user, model.Password);
             *  if (result.Succeeded)
             *  {
             *      await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
             *
             *      // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
             *      // Send an email with this link
             *      // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
             *      // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
             *      // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
             *
             *      return RedirectToAction("Index", "Home");
             *  }
             *  AddErrors(result);
             * }*/

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var  newUser    = db.User.Create();
                bool userExists = db.User.Any(user => user.Username == model.Username);
                newUser.Username  = model.Username;
                newUser.Password  = model.Password;
                newUser.Email     = model.Email;
                newUser.FirstName = model.FirstName;
                newUser.LastName  = model.LastName;
                if (Request["CityDropDownList"].Any())
                {
                    var citySel = Request["CityDropDownList"];
                    newUser.IDcityFrom = Convert.ToInt32(citySel);
                }
                if (!userExists)
                {
                    db.User.Add(newUser);
                    db.SaveChanges();

                    var userGroup = db.BelongsToGroup.Create();
                    userGroup.IDgroup     = 1;
                    userGroup.IDuser      = newUser.IDuser;
                    userGroup.TimeChanged = DateTime.Now;
                    db.BelongsToGroup.Add(userGroup);
                    db.SaveChanges();

                    FormsAuthentication.SetAuthCookie(model.Username, false);
                    var FormsAuthCookie = Response.Cookies[FormsAuthentication.FormsCookieName];
                    var ExistingTicket  = FormsAuthentication.Decrypt(FormsAuthCookie.Value).Name;

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError("", "The user with this username already exists, please choose another username!");
                    model.Username = "";
                    return(View(model));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
예제 #23
0
        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 });
        }