Ejemplo n.º 1
0
        public ActionResult Create(PostViewModel viewModel)
        {
            PrepareDropdownList(viewModel);
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var post = new Post
            {
                DateCreated = DateTime.Now,
                Views       = 0,
                Slug        = SlugHelper.ToUnsignString(viewModel.Title)
            };

            post.Modify(viewModel.Title, viewModel.Descriptions,
                        viewModel.Content, viewModel.CategoryId,
                        viewModel.MetaDescription, viewModel.MetaKeyword, viewModel.IsPopularPost);

            _unitOfWork.Posts.Add(post);

            _unitOfWork.Complete();

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
 public PostViewModel()
 {
     if (Title != null)
     {
         Slug = SlugHelper.ToUnsignString(Title);
     }
 }
Ejemplo n.º 3
0
        public ActionResult Create(PageViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("Create", viewModel));
            }

            var page = new Page
            {
                Id              = SlugHelper.ToUnsignString(viewModel.Name),
                Name            = viewModel.Name,
                BackgroundImage = viewModel.BackgroundImage,
                Content         = viewModel.Content
            };

            _unitOfWork.Pages.Add(page);
            _unitOfWork.Complete();

            SetAlert("Bạn đã thêm " + viewModel.Name + " thành công", "success");

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 4
0
        public ActionResult Update(PostViewModel viewModel)
        {
            PrepareDropdownList(viewModel);
            if (!ModelState.IsValid)
            {
                return(View("Edit", viewModel));
            }

            var post = _unitOfWork.Posts.Get(viewModel.Id);

            if (post == null)
            {
                return(NotFoundResult());
            }

            post.DateUpdated = DateTime.Now;
            post.Slug        = SlugHelper.ToUnsignString(viewModel.Title);
            post.Modify(viewModel.Title, viewModel.Descriptions,
                        viewModel.Content, viewModel.CategoryId,
                        viewModel.MetaDescription, viewModel.MetaKeyword, viewModel.IsPopularPost);

            _unitOfWork.Complete();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 5
0
        public void ImportCategoriesFromXlsx(Stream stream)
        {
            #region properties
            var properties = new[]
            {
                new PropertyByName <PostCategory>("Id"),
                new PropertyByName <PostCategory>("Name"),
                new PropertyByName <PostCategory>("DisplayOrder"),
                new PropertyByName <PostCategory>("ImageUrl"),
                new PropertyByName <PostCategory>("BackgroundImage"),
                new PropertyByName <PostCategory>("ShortDescriptions"),
                new PropertyByName <PostCategory>("Descriptions")
            };
            #endregion

            var manager = new PropertyManager <PostCategory>(properties);
            using (var xlPackage = new ExcelPackage(stream))
            {
                var worksheet = xlPackage.Workbook.Worksheets.FirstOrDefault();
                if (worksheet == null)
                {
                    throw new WorkSheetNotFoundException("No worksheet found");
                }

                var iRow = 2;

                while (true)
                {
                    var allColumnsAreEmpty = manager.GetProperties
                                             .Select(property => worksheet.Cells[iRow, property.PropertyOrderPosition])
                                             .All(cell => string.IsNullOrEmpty(cell?.Value?.ToString()));

                    if (allColumnsAreEmpty)
                    {
                        break;
                    }

                    manager.ReadFromXlsx(worksheet, iRow);
                    var id       = manager.GetProperty("Id").StringValue;
                    var category = _unitOfWork.Categories.Get(id);

                    var isNew = category == null;
                    category = category ?? new PostCategory();

                    category.Name              = manager.GetProperty("Name").StringValue;
                    category.ImageUrl          = manager.GetProperty("ImageUrl").StringValue;
                    category.BackgroundImage   = manager.GetProperty("BackgroundImage").StringValue;
                    category.ShortDescriptions = manager.GetProperty("ShortDescriptions").StringValue;
                    category.Descriptions      = manager.GetProperty("Descriptions").StringValue;
                    category.DisplayOrder      = manager.GetProperty("DisplayOrder").ByteValue;

                    if (isNew)
                    {
                        try
                        {
                            category.Id = SlugHelper.ToUnsignString(category.Name);
                            _unitOfWork.Categories.Add(category);
                        }
                        catch (Exception e)
                        {
                            throw new Exception(e.Message);
                        }
                    }
                    else
                    {
                        category.Modify(category.Name, category.DisplayOrder, category.ImageUrl, category.BackgroundImage, category.ShortDescriptions, category.Descriptions);
                    }

                    iRow++;
                    _unitOfWork.Complete();
                }
            }
        }
Ejemplo n.º 6
0
 public static void MappingConfig()
 {
     Mapper.Initialize(mapper =>
     {
         //Domain to view Model
         mapper.CreateMap <Menu, MenuViewModel>();
         mapper.CreateMap <Page, PageViewModel>();
         mapper.CreateMap <PostCategory, PostCategoryViewModel>();
         // View Model to Domain
         mapper.CreateMap <MenuViewModel, Menu>();
         mapper.CreateMap <PostCategoryViewModel, PostCategory>().ForMember(pc => pc.Id, opt => opt.MapFrom(x => SlugHelper.ToUnsignString(x.Name)));
     });
 }