示例#1
0
        public ActionResult GetListBlogPost()
        {
            IRepositryBase <Fly_BlogPost> repository = new BlogPostDAO();
            BlogPostVm vm = new  BlogPostVm();

            try
            {
                vm.ListBlogPost = repository.getAllItems().Where(x => x.Published == true).ToList();
            }
            catch (Exception ex)
            {
                return(Json(new { result = ex.Message, Message = ex.Message }));
            }

            var rs = vm.ListBlogPost.Select(x => new
            {
                id           = x.BlogPostID,
                title        = x.BlogPostTitle,
                date         = x.CreatedOn.GetValueOrDefault().ToString("dd-MM-yy"),
                imglink      = x.ImageUrl,
                shortcontent = x.BlogPostShortContent,
                typeblog     = x.Fly_BlogPostType.Title,
                videolink    = x.VideoLink
            });

            return(Json(new { result = rs }, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        public PartialViewResult CreateCategory(BlogPostVm model)
        {
            model.CategoryList = CategoryListVm();
            if (ModelState.IsValid)
            {
                if (_entities.BlogPostCategories.Where(x => x.CategoryName.ToLower().Trim() == model.PostCategory.CategoryName.ToLower().Trim()).Any())
                {
                    TempData["ErrorMsg"] = "There is already a Category on same name";
                    return(PartialView("_categories_partial", model));
                }
                BlogPostCategory category = new BlogPostCategory();
                category.CategoryName = model.PostCategory.CategoryName;
                _entities.BlogPostCategories.Add(category);
                _entities.SaveChanges();

                ModelState.Clear();
                model.PostCategory = new BlogPostCategoryVm();

                model.CategoryList = CategoryListVm();
            }
            else
            {
                TempData["ErrorMsg"] = "Please enter Category name";
            }
            return(PartialView("_categories_partial", model));
        }
示例#3
0
        public ActionResult Create()
        {
            var blogPostVm = new BlogPostVm();

            blogPostVm.CategoryList = CategoryListVm();
            return(View(blogPostVm));
        }
示例#4
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                TempData["ErrorMsg"] = "Plese select corectly";
                return(RedirectToAction("Index"));
            }
            var details = _entities.BlogPosts
                          .Include(x => x.BlogPostsPostCategories)
                          .Include(x => x.BlogPostsPostTags)
                          .SingleOrDefault(x => x.Id == id);

            if (details == null)
            {
                TempData["ErrorMsg"] = "No Information found";
                return(RedirectToAction("Index"));
            }

            var blogVm = new BlogPostVm();

            blogVm.Id                = details.Id;
            blogVm.PostTitle         = details.PostTitle;
            blogVm.PostContent       = details.PostContent;
            blogVm.IsDrafted         = details.IsDrafted;
            blogVm.IsPublished       = details.IsPublished;
            blogVm.IsApproved        = details.IsApproved;
            blogVm.ExcerptText       = details.ExcerptText;
            blogVm.YoutudeUrlCodec   = details.YoutubeVedioCodec;
            blogVm.CreatedDate       = details.CreatedDate.ToString();
            blogVm.CreatedBy         = details.CreatedBy;
            blogVm.UpdatedDate       = details.UpdatedDate.ToString();
            blogVm.UpdatedBy         = details.UpdatedBy;
            blogVm.BlogPostsImageUrl = details.BlogPostsImageUrl;
            blogVm.IsDeleted         = details.IsDeleted;
            blogVm.TagText           =
                details.BlogPostsPostTags.Select(x => x.BlogPostTag.TagName).Aggregate((i, j) => i + "," + j);
            blogVm.CategoryList = CategoryListVm();
            foreach (var initCategory in blogVm.CategoryList)
            {
                foreach (var category in details.BlogPostsPostCategories)
                {
                    if (category.CategoryId == initCategory.Id)
                    {
                        var blogPostCategoryVm = blogVm.CategoryList.FirstOrDefault(x => x.Id == initCategory.Id);
                        if (blogPostCategoryVm != null)
                        {
                            blogPostCategoryVm.IsChecked = true;
                        }
                    }
                }
            }

            return(View(blogVm));
        }
示例#5
0
 public ActionResult Edit(int id, BlogPostVm obj)
 {
     try
     {
         // TODO: Add update logic here
         if (obj.IsVideo == 1)
         {
             obj.Blogpost.VideoLink = "";
         }
         obj.Blogpost.Published = obj.IsPublish;
         obj.Blogpost.CreatedOn = DateTime.Now;
         _repos.Edit(obj.Blogpost);
         return(RedirectToAction("Index"));
     }
     catch (Exception ex)
     {
         return(View());
     }
 }
示例#6
0
        public ActionResult GetDetailBlogPost(int id)
        {
            IRepositryBase <Fly_BlogPost> repository = new BlogPostDAO();
            BlogPostVm vm = new BlogPostVm();

            try
            {
                vm.Blogpost = repository.getItem(id);
            }
            catch (Exception ex)
            {
                return(Json(new { result = ex.Message, Message = ex.InnerException.Message }));
            }

            if (vm.Blogpost != null && vm.Blogpost.Published != true)
            {
                vm.Blogpost = null;
            }
            if (vm.Blogpost != null)
            {
                var rs = new
                {
                    id           = vm.Blogpost.BlogPostID,
                    description  = vm.Blogpost.BlogPostBody,
                    title        = vm.Blogpost.BlogPostTitle,
                    date         = vm.Blogpost.CreatedOn.GetValueOrDefault().ToString("dd-MM-yy"),
                    imglink      = vm.Blogpost.ImageUrl,
                    shortcontent = vm.Blogpost.BlogPostShortContent,
                    videolink    = vm.Blogpost.VideoLink
                };
                return(Json(new { result = rs }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { result = "null" }, JsonRequestBehavior.AllowGet));
            }
        }
示例#7
0
        public ActionResult Create(BlogPostVm obj)
        {
            try
            {
                // TODO: Add insert logic here
                obj.Blogpost.BlogPostTypeID = 1;
                obj.Blogpost.Published      = obj.IsPublish;
                obj.Blogpost.CreatedOn      = DateTime.Now;
                obj.Blogpost.Tags           = "";


                if (Session["idxu"] != null && Session["idxu"].ToString().Length > 0)
                {
                    obj.Blogpost.CreatedByID = int.Parse(Session["idxu"].ToString());
                }

                _repos.Add(obj.Blogpost);
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View(ex.Message));
            }
        }
示例#8
0
 public BlogPostController()
 {
     _repos     = new BlogPostDAO();
     _reposType = new BlogPostTypeDAO();
     _vm        = new BlogPostVm();
 }
示例#9
0
        public ActionResult Create(BlogPostVm model, HttpPostedFileBase file, string submit)
        {
            try
            {
                string imageName = "";
                if (model.PostFormat == null)
                {
                    TempData["ErrorMsg"] = "Please select your post format";
                    return(View(model));
                }

                if (string.IsNullOrEmpty(model.PostTitle))
                {
                    TempData["ErrorMsg"] = "Please enter Post Title";
                    return(View(model));
                }
                if (model.PostFormat == 1)
                {
                    if (string.IsNullOrEmpty(model.PostContent))
                    {
                        TempData["ErrorMsg"] = "Please enter Post Description";
                        return(View(model));
                    }
                }

                if (string.IsNullOrEmpty(model.ExcerptText))
                {
                    TempData["ErrorMsg"] = "Please enter Excerpt Text";
                    return(View(model));
                }

                if (!model.CategoryList.Select(x => x.IsChecked).Any())
                {
                    TempData["ErrorMsg"] = "Please select at least one category";
                    return(View(model));
                }

                if (file != null)
                {
                    long fileSize = file.ContentLength;
                    if (fileSize > 640000)
                    {
                        TempData["ErrorMsg"] = "Image file size can not be more that 512 Kb.";
                        return(View(model));
                    }

                    string extension = Path.GetExtension(file.FileName);

                    if (extension != null && (extension.ToLower() == ".jpg" || extension.ToLower() == ".jpeg" ||
                                              extension.ToLower() == ".png"))
                    {
                        Guid   imageId  = Guid.NewGuid();
                        string location = Server.MapPath("~/BlogImages/");
                        var    completeImageLocation = location + imageId + extension.ToLower();
                        imageName = imageId + extension.ToLower();
                        if (!Directory.Exists(location))
                        {
                            Directory.CreateDirectory(location);
                            file.SaveAs(completeImageLocation);
                        }
                        else
                        {
                            file.SaveAs(completeImageLocation);
                        }
                    }
                }

                switch (submit.ToLower())
                {
                case "save draft":
                {
                    model.IsDrafted   = true;
                    model.IsApproved  = false;
                    model.IsPublished = false;
                    model.IsDeleted   = false;
                    break;
                }

                case "publish":
                {
                    model.IsDrafted   = false;
                    model.IsApproved  = false;
                    model.IsPublished = true;
                    model.IsDeleted   = false;
                    break;
                }

                default:
                {
                    TempData["ErrorMsg"] = "Do you wanna publish this post or just save this post as a draft";
                    return(View(model));
                }
                }
                var      userId = WebSecurity.GetUserId(User.Identity.Name);
                BlogPost post   = new BlogPost();
                post.PostTitle         = model.PostTitle;
                post.PostContent       = model.PostContent;
                post.IsDrafted         = model.IsDrafted;
                post.IsApproved        = model.IsApproved;
                post.IsDeleted         = model.IsDeleted;
                post.IsPublished       = model.IsPublished;
                post.CreatedBy         = userId;
                post.CreatedDate       = DateTime.Today;
                post.UpdatedBy         = userId;
                post.UpdatedDate       = DateTime.Today;
                post.BlogPostsImageUrl = imageName;
                post.ExcerptText       = model.ExcerptText;
                post.YoutubeVedioCodec = model.YoutudeUrlCodec;
                post.PostFormat        = model.PostFormat;
                using (var dbContextTransactions = _entities.Database.BeginTransaction())
                {
                    try
                    {
                        _entities.BlogPosts.Add(post);
                        _entities.SaveChanges();

                        int postId = post.Id;

                        foreach (var category in model.CategoryList.Where(x => x.IsChecked))
                        {
                            BlogPostsPostCategory postCategory = new BlogPostsPostCategory();
                            postCategory.PostId     = postId;
                            postCategory.CategoryId = category.Id;

                            _entities.BlogPostsPostCategories.Add(postCategory);
                            _entities.SaveChanges();
                        }

                        string[] allTagText = model.TagText.Split(',');
                        int      tagId;
                        foreach (var tag in allTagText)
                        {
                            var tagDetails = _entities.BlogPostTags.FirstOrDefault(x => x.TagName == tag);
                            if (tagDetails == null)
                            {
                                BlogPostTag blogNewTag = new BlogPostTag();
                                blogNewTag.TagName = tag;
                                _entities.BlogPostTags.Add(blogNewTag);
                                _entities.SaveChanges();

                                tagId = blogNewTag.Id;
                            }
                            else
                            {
                                tagId = tagDetails.Id;
                            }

                            BlogPostsPostTag blogPostTag = new BlogPostsPostTag();
                            blogPostTag.TagId  = tagId;
                            blogPostTag.PostId = postId;

                            _entities.BlogPostsPostTags.Add(blogPostTag);
                            _entities.SaveChanges();
                        }
                        dbContextTransactions.Commit();
                    }
                    catch (Exception)
                    {
                        dbContextTransactions.Rollback();
                        throw;
                    }
                }

                if (model.IsDrafted && !model.IsPublished)
                {
                    TempData["SuccessMsg"] = "Post Successfully drafted";
                    return(RedirectToAction("Create"));
                }
                if (!model.IsDrafted && model.IsPublished)
                {
                    TempData["SuccessMsg"] = "Post Successfully published";
                    return(RedirectToAction("Create"));
                }
                return(View(model));
            }
            catch (Exception ex)
            {
                TempData["ErrorMsg"] = ex.ToString();
                return(View(model));
            }
        }