public ActionResult Create()
        {
            var user = _ctx.UserProfiles.Where(u => u.UserName == (HttpContext.User.Identity.Name)).SingleOrDefault();
            var outModel = new CreatePostViewModel();
            var post = new PostModel
            {
                User = user,
                IsDeleted = false,
                IsCompleted = 0

            };

            outModel.UserId = user.UserId;
            outModel.StreetSuffixList = streetSuffixList;
            outModel.StreetPrefixList = streetPrefixList;
            _ctx.Post.Add(post);
            _ctx.SaveChanges();
            outModel.Id = post.Id;

            return View(outModel);
        }
        public ActionResult Create(CreatePostViewModel inModel, IEnumerable<HttpPostedFileBase> files)
        {
            var user = _ctx.UserProfiles.Where(u => u.UserId == inModel.UserId).SingleOrDefault();
            var post = _ctx.Post.Where(m => m.Id == inModel.Id).SingleOrDefault();
            var images = _ctx.Image.Where(m => m.Post.Id == post.Id).ToList<ImageModel>();
            inModel.StreetSuffixList = streetSuffixList;
            inModel.StreetPrefixList = streetPrefixList;
            //Check for use of back button after cancel was pressed
            if (post.IsDeleted)
            {
                ModelState.AddModelError("", "This Post has previously been deleted");
            }

            if (!post.Rating.HasValue)
            {
                ModelState.AddModelError("", "Please provide a rating");
                ModelState.AddModelError("", "Any pictures Upload are already saved.");

                return View(inModel);
            }

            if (!ModelState.IsValid)
            {
                return View(inModel);
            }

            RecaptchaVerificationHelper recaptchaHelper = this.GetRecaptchaVerificationHelper();

            if (String.IsNullOrEmpty(recaptchaHelper.Response))
            {
                ModelState.AddModelError("", "Captcha answer cannot be empty.");
                ModelState.AddModelError("", "Any pictures Upload are already saved.");
                return View(inModel);
            }

            RecaptchaVerificationResult recaptchaResult = recaptchaHelper.VerifyRecaptchaResponse();

            if (recaptchaResult != RecaptchaVerificationResult.Success)
            {
                ModelState.AddModelError("", "Incorrect captcha answer.");
                ModelState.AddModelError("", "Any pictures Upload are already saved.");
                return View(inModel);
            }

            post.User = user;
            post.Title = inModel.Title;
            post.LandLord = inModel.LandLord;
            post.LeaseYear = inModel.LeaseYear;
            post.LLemail = inModel.LLemail;
            post.Post = inModel.Post;
            post.DatePosted = DateTime.Now.ToShortDateString();
            post.Rent = inModel.Rent;
            post.Deposit = inModel.Deposit;
            post.AmountKept = inModel.AmountKept;
            post.Street = inModel.Street;
            post.IsDeleted = false;
            post.AptNumber = inModel.AptNumber;
            post.BuildingNumber = inModel.BuildingNumber;
            post.StreetSuffix = inModel.StreetSuffix;
            post.StreetPrefix = inModel.StreetPrefix;
            post.IsCompleted = 1;
            post.City = inModel.City;
            post.ZipCode = inModel.Zip;

            var errors = _ctx.GetValidationErrors();

            var err = errors;
            _ctx.SaveChanges();

            return RedirectToAction("Manage", "Post", new { needStatusUpdate = true, statusMessage = 4 });
        }
        public ActionResult Edit(CreatePostViewModel inModel)
        {
            var post = _ctx.Post.Where(p => p.Id == inModel.Id).SingleOrDefault();
            var user = _ctx.UserProfiles.Where(u => u.UserId == inModel.UserId).SingleOrDefault();
            var images = _ctx.Image.Where(m => m.Post.Id == post.Id  && m.IsThumbnail == false).ToList<ImageModel>();

            var currentUserId = _ctx.UserProfiles.Where(m => m.UserName == HttpContext.User.Identity.Name).SingleOrDefault().UserId;

            if (post.User.UserId != currentUserId)
            {
                return View("Error");
            }

            if (!ModelState.IsValid)
            {
                return View(inModel);
            }

            RecaptchaVerificationHelper recaptchaHelper = this.GetRecaptchaVerificationHelper();

            if (String.IsNullOrEmpty(recaptchaHelper.Response))
            {
                ModelState.AddModelError("", "Captcha answer cannot be empty.");
                ModelState.AddModelError("", "Any pictures Upload are already saved.");
                return View("Create", inModel);
            }

            RecaptchaVerificationResult recaptchaResult = recaptchaHelper.VerifyRecaptchaResponse();

            if (recaptchaResult != RecaptchaVerificationResult.Success)
            {
                ModelState.AddModelError("", "Incorrect captcha answer.");
                ModelState.AddModelError("", "Any pictures Upload are already saved.");
                return View("Create", inModel);
            }

            post.User = user;
            post.Title = inModel.Title;
            post.LandLord = inModel.LandLord;
            post.LeaseYear = inModel.LeaseYear;
            post.LLemail = inModel.LLemail;
            post.Post = inModel.Post;
            post.DatePosted = DateTime.Now.ToShortDateString();
            post.Rent = inModel.Rent;
            post.Deposit = inModel.Deposit;
            post.AmountKept = inModel.AmountKept;
            post.Street = inModel.Street;
            post.StreetSuffix = inModel.StreetSuffix;
            post.StreetPrefix = inModel.StreetPrefix;
            post.IsDeleted = false;
            post.AptNumber = inModel.AptNumber;
            post.BuildingNumber = inModel.BuildingNumber;
            post.City = inModel.City;
            post.ZipCode = inModel.Zip;

             _ctx.SaveChanges();

             return RedirectToAction("Manage", "Post", new { needStatusUpdate = true, statusMessage = 2 });
        }
        //[SessionExpireFilter]
        public ActionResult Edit(int? id)
        {
            var post = _ctx.Post.Where(p => p.Id == id).SingleOrDefault();
            var postId = post.Id;
            var images = _ctx.Image.Where(m => m.Post.Id == post.Id && m.IsThumbnail == false && m.IsDeleted == false).ToList<ImageModel>();
            var commentz = _ctx.Comment.Where(m => m.PostId == postId).ToList<Comment>();
            var currentUserId = _ctx.UserProfiles.Where(m => m.UserName == HttpContext.User.Identity.Name).SingleOrDefault().UserId;

            if (post.User.UserId != currentUserId)
            {
                return View("Error");
            }

            var outModel = new CreatePostViewModel
            {

                Title = post.Title,
                LandLord = post.LandLord,
                LeaseYear = post.LeaseYear,
                LLemail = post.LLemail,
                Post = post.Post,
                Rent = post.Rent,
                Deposit = post.Deposit,
                AmountKept = post.AmountKept,
                IsDeleted = post.IsDeleted,
                Id = post.Id,
                AptNumber = post.AptNumber,
                Images = images,
                IsEDitMode = true,
                BuildingNumber = post.BuildingNumber,
                StreetSuffix = post.StreetSuffix,
                StreetPrefix = post.StreetPrefix,
                StreetSuffixList = streetSuffixList,
                StreetPrefixList = streetPrefixList,
                Street = post.Street,
                Comments = commentz,
                Rating = post.Rating,
                City = post.City,
                Zip = post.ZipCode,
                UserId = post.User.UserId

            };

            return View("Create", outModel);
        }