public async Task <ActionResult <PostFormModel> > GetForm(PostFormModel formModel)
        {
            if (string.IsNullOrEmpty(formModel.url) ||
                formModel.url.Length != 6)
            {
                return(BadRequest());
            }
            var form = await _formDomain.Get(formModel.url);

            if (form == null)
            {
                return(NotFound());
            }
            if (form.Private)
            {
                var user = User.Claims.First(c => c.Type == "UserID").Value;
                if (user == null)
                {
                    return(NotFound());
                }
            }

            formModel = _mapper.Map <BLL.ViewModels.Form, PostFormModel>(form);
            return(formModel);
        }
Example #2
0
        public ActionResult AddEditorial(PostFormModel postFormModel)
        {
            if (Session["mode"].ToString() == "new")
            {
                postFormModel.DateOfPublishing = Convert.ToString(DateTime.UtcNow);
                postFormModel.UserID           = Convert.ToInt32(Session["userID"]);

                // Finding ProblemID
                getProblemID(postFormModel);

                //Insert editorial in table
                //string sql = "insert into editorial values (" + postFormModel.UserID + ", " + postFormModel.ProblemID + ", " + postFormModel.TagID + ", '" + postFormModel.Rephrase + "', '" + postFormModel.Solution + "', '" + postFormModel.Details + "', 0, 0, '" + postFormModel.DateOfPublishing + "')";
                string sql = "insert into editorial (userid, problemid, tagid, rephrase, solution, details) " +
                             "values (" + postFormModel.UserID + ", " +
                             postFormModel.ProblemID + ", " +
                             postFormModel.TagID + ", '" +
                             postFormModel.Rephrase + "', '" + postFormModel.Solution + "', '" + postFormModel.Details + "')";
                new DBHelper().setTable(sql);
            }
            else if (Session["mode"].ToString() == "update")
            {
                getProblemID(postFormModel);

                string sql = "update Editorial set ProblemID=" + postFormModel.ProblemID + ", TagID=" + postFormModel.TagID + ", Rephrase='" + postFormModel.Rephrase + "', Solution='" + postFormModel.Solution + "', Details='" + postFormModel.Details + "' where EditorialID=" + Session["eid"];
                Session.Remove("eid");
                new DBHelper().setTable(sql);
            }

            return(RedirectToAction("Index", "Home"));
        }
        public async Task <ActionResult <BLL.ViewModels.Form> > PostForm(PostFormModel formModel)
        {
            if (string.IsNullOrEmpty(formModel.name))
            {
                return(BadRequest());
            }
            var userId = User.Claims.First(c => c.Type == "UserID").Value;

            if (userId == null)
            {
                return(NotFound());
            }
            var form = _mapper.Map <PostFormModel, BLL.ViewModels.Form>(formModel);

            form.Url = Hash(DateTime.Now + formModel.name);
            form     = await _formDomain.Create(form);

            var userForm = new BLL.ViewModels.User_form
            {
                Form_id  = form.Id,
                User_id  = userId,
                Can_edit = true
            };

            await new User_form(_config).Create(userForm);

            return(Ok());
        }
Example #4
0
        // GET: Post
        public ActionResult PostForm()
        {
            if (Session["UserID"] == null)
            {
                return(Content("<script language='javascript' type='text/javascript'>alert('Login to continue');</script>"));
            }

            int editorialId = 0;

            editorialId = Convert.ToInt32(Request.QueryString["eid"]);

            PostFormModel postEditorialModel;

            if (editorialId == 0)
            {
                postEditorialModel = new PostFormModel();
                Session["mode"]    = "new";
                ViewBag.buttonName = "Submit";
            }
            else
            {
                postEditorialModel = new PostFormModel(editorialId);

                if (postEditorialModel.ProblemTitle == null)
                {
                    return(RedirectToAction("Index", "Warning"));
                }

                Session["mode"]    = "update";
                Session["eid"]     = editorialId;
                ViewBag.buttonName = "Update";
            }

            return(View(postEditorialModel)); // Return all tag and OJ list in a big outer list
        }
Example #5
0
        public ActionResult Create()
        {
            PostFormModel postFormModel = new PostFormModel();

            if (albumService.AllAlbumsByUser(User.Identity.GetUserId()).Count == 0)
            {
                albumService.Create("Default Album", User.Identity.GetUserId(), "Your Default Album");
            }
            postFormModel.Albums = this.albumService.AlbumsByUserForDD(User.Identity.GetUserId());
            return(View(postFormModel));
        }
Example #6
0
        public IActionResult Edit(int postId, PostFormModel model)
        {
            if (!this.postService.UserIsAuthorizedToEdit(postId, this.User.GetUserId()))
            {
                return(BadRequest());
            }

            this.postService.Edit(postId, model.Feeling, model.Text, model.Photo);

            return(RedirectToAction("Index", "Profile", new { id = this.User.GetUserId() }));
        }
Example #7
0
        public IActionResult Create(PostFormModel model)
        {
            if (model.Photo != null)
            {
                if (model.Photo.Length > DataConstants.MaxPhotoLength)
                {
                    ModelState.AddModelError(string.Empty, "Your photo should be a valid image file with max size 5MB!");
                    return(View(model));
                }
            }

            this.postService.Create(this.User.GetUserId(), model.Feeling, model.Text, model.Photo);

            return(RedirectToAction("Index", "Profile"));
        }
        public async Task <IActionResult> PutForm(PostFormModel formModel)
        {
            if (string.IsNullOrEmpty(formModel.name))
            {
                return(BadRequest());
            }
            var userId = User.Claims.First(c => c.Type == "UserID").Value;

            if (userId == null)
            {
                return(NotFound());
            }
            var form = await _formDomain.Get(formModel.url);

            if (form == null)
            {
                return(NotFound());
            }
            var uf = await _userFormDomain.Get(userId, form.Id);

            if (uf == null)
            {
                return(NotFound());
            }
            if (!uf.Can_edit)
            {
                return(BadRequest());
            }

            var formNew = _mapper.Map <BLL.ViewModels.Form>(formModel);
            await _formDomain.Update(formNew);

            (await _userFormDomain.Get(form.Id)).ForAll(usf => _userFormDomain.Delete(usf.Id));
            var userForm = new BLL.ViewModels.User_form
            {
                Form_id  = form.Id,
                User_id  = userId,
                Can_edit = true
            };

            await new User_form(_config).Create(userForm);
            return(Ok());
        }
Example #9
0
        public IActionResult Delete(int postId)
        {
            if (!this.postService.Exists(postId))
            {
                return(NotFound());
            }

            var postInfo = this.postService.PostById(postId);

            ViewData["PostPhoto"] = postInfo.Photo;

            var postFormModel = new PostFormModel
            {
                Text    = postInfo.Text,
                Feeling = postInfo.Feeling
            };

            return(this.ViewOrNotFound(postFormModel));
        }
Example #10
0
        protected void getProblemID(PostFormModel postFormModel)
        {
            // Finding ProblemID
            string subSql = "";

            if (postFormModel.ProblemCode != null)
            {
                subSql = " and ProblemCode='" + postFormModel.ProblemCode + "'";
            }

            string sql = "select ProblemID from Problem where OJID = " + postFormModel.OJID + " and Title ='" + postFormModel.ProblemTitle + "'" + subSql;
            var    res = new DBHelper().getTable(sql);

            // If problemID already exist, otherwise 'else' part to generate problemID
            if (res.Rows.Count == 1)
            {
                postFormModel.ProblemID = Convert.ToInt32(res.Rows[0][0]);
            }
            else
            {
                if (postFormModel.ProblemCode == null)
                {
                    subSql = ", NULL";
                }
                else
                {
                    subSql = ", '" + postFormModel.ProblemCode + "'";
                }
                sql = "insert into Problem values (" + postFormModel.OJID + ", '" + postFormModel.ProblemTitle + "'" + subSql + ")";
                new DBHelper().setTable(sql);

                subSql = "";
                if (postFormModel.ProblemCode != null)
                {
                    subSql = " and ProblemCode='" + postFormModel.ProblemCode + "'";
                }

                sql = "select ProblemID from Problem where OJID = " + postFormModel.OJID + " and Title ='" + postFormModel.ProblemTitle + "'" + subSql;
                res = new DBHelper().getTable(sql);
                postFormModel.ProblemID = Convert.ToInt32(res.Rows[0][0]);
            }
        }
Example #11
0
        public ActionResult Edit(int id, [Bind(Exclude = "Photo")]  PostFormModel model)
        {
            if (!this.postService.UserIsAuthorizedToEdit(id, this.User.Identity.GetUserId()))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Bad request"));
            }
            byte[] imageData = null;
            if (Request.Files.Count > 0)
            {
                HttpPostedFileBase poImgFile = Request.Files["Photo"];
                using (var binary = new BinaryReader(poImgFile.InputStream))
                {
                    imageData = binary.ReadBytes(poImgFile.ContentLength);
                }
            }

            this.postService.Edit(id, model.Feeling, model.Text, imageData, model.AlbumId);

            return(RedirectToAction("AccountDetails", "Users", new { id = this.User.Identity.GetUserId() }));
        }
Example #12
0
        public async Task <ActionResult <List <string> > > Get(PostFormModel formModel)
        {
            if (string.IsNullOrEmpty(formModel.url) ||
                formModel.url.Length != 6)
            {
                return(BadRequest());
            }
            var form = await _form.Get(formModel.url);

            var uId  = User.Claims.First(c => c.Type == "UserID").Value;
            var user = await _user.GetId(uId);

            var uf = await _uf.Get(user.Id, form.Id);

            if (uf == null)
            {
                return(NotFound());
            }
            if (!uf.Can_edit)
            {
                return(BadRequest());
            }
            var str = new List <string> {
                form.Name, !form.Anonym ? "Public" : "Anonym", form.Jform
            };
            var answers = await _uf.Get(form.Id);

            foreach (var asnw in answers)
            {
                if (!form.Anonym)
                {
                    var u = await _user.GetId(asnw.User_id);

                    str.Add(u != null ? u.FullName : "");
                }

                str.Add(asnw.jsonAnswer);
            }

            return(str);
        }
Example #13
0
        public ActionResult Edit(int id)
        {
            if (!this.postService.Exists(id))
            {
                throw new HttpException(404, "Not found");
            }

            var postInfo = this.postService.PostById(id);

            ViewData["PostPhoto"] = postInfo.Photo;

            var postFormModel = new PostFormModel
            {
                Text    = postInfo.Text,
                Feeling = postInfo.Feeling
            };

            postFormModel.Albums = this.albumService.AlbumsByUserForDD(User.Identity.GetUserId());

            return(View(postFormModel));
        }
Example #14
0
        public ActionResult Create([Bind(Exclude = "Photo")]  PostFormModel model)
        {
            byte[] imageData = null;
            if (Request.Files.Count > 0)
            {
                HttpPostedFileBase poImgFile = Request.Files["Photo"];
                using (var binary = new BinaryReader(poImgFile.InputStream))
                {
                    imageData = binary.ReadBytes(poImgFile.ContentLength);
                }
            }

            if (imageData.Length > DataConstants.MaxPhotoLength)
            {
                ModelState.AddModelError(string.Empty, "Your photo should be a valid image file with max size 5MB!");
                return(View(model));
            }

            int postId = this.postService.Create(this.User.Identity.GetUserId(), model.Feeling, model.Text, imageData, model.AlbumId);

            this.albumService.AddPost(model.AlbumId, postId);
            return(Redirect("/"));
        }