Exemplo n.º 1
0
        public async Task <IActionResult> SocialMediaAdd(SocialMediaView result)
        {
            if (!ModelState.IsValid)
            {
                return(View(result));
            }

            await _seoService.CreateSocialMedia(SeoHelpers.ConvertToModelSocialMedia(result));

            return(RedirectToAction("SocialMediaList", "Seo"));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> RetrievalLinksAdd(RetrievalLinksView result)
        {
            if (!ModelState.IsValid)
            {
                return(View(result));
            }

            await _seoService.CreateRetrievalLink(SeoHelpers.ConvertToModelRetrievalLink(result));

            return(RedirectToAction("RetrievalLinksList", "Seo"));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> MetaTagsAdd(MetaTagView result)
        {
            if (!ModelState.IsValid)
            {
                return(View(result));
            }

            await _seoService.CreateMetaTag(SeoHelpers.ConvertToModelMetaTag(result));

            return(RedirectToAction("MetaTagsList", "Seo"));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> MetaTagsEdit(MetaTagView result)
        {
            if (!ModelState.IsValid)
            {
                return(View(result));
            }

            var metaTag = await _seoService.GetMetaTag(result.Id);

            await _seoService.UpdateMetaTag(SeoHelpers.MergeViewWithModelMetaTag(metaTag, result));

            return(RedirectToAction("MetaTagsList", "Seo"));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> SocialMediaEdit(SocialMediaView result)
        {
            if (!ModelState.IsValid)
            {
                return(View(result));
            }

            var socialMedia = await _seoService.GetSocialMedia(result.Id);

            await _seoService.UpdateSocialMedia(SeoHelpers.MergeViewWithModelSocialMedia(socialMedia, result));

            return(RedirectToAction("SocialMediaList", "Seo"));
        }
Exemplo n.º 6
0
        public async Task <IActionResult> RetrievalLinksEdit(RetrievalLinksView result)
        {
            if (!ModelState.IsValid)
            {
                return(View(result));
            }

            var retrievalLink = await _seoService.GetRetrievalLink(result.Id);

            await _seoService.UpdateRetrievalLink(SeoHelpers.MergeViewWithModelRetrievalLink(retrievalLink, result));

            return(RedirectToAction("RetrievalLinksList", "Seo"));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> General(GeneralSeoSettingsView result)
        {
            if (!ModelState.IsValid)
            {
                return(View(result));
            }

            var generalSettings = await _seoService.GetSeoSettingsById(result.Id);

            await _seoService.SetSeoSettings(SeoHelpers.MergeViewWithModelGeneralSettings(generalSettings, result));

            return(RedirectToAction("General", "Seo"));
        }
Exemplo n.º 8
0
        public override void CreateMappings(IConfiguration configuration)
        {
            base.CreateMappings(configuration);

            configuration.CreateMap <Post, AddPostViewModel>().ForMember(postModel => postModel.Tags, opt => opt.Ignore()).IncludeBase <Post, MetaTagsViewModel>();

            configuration.CreateMap <AddPostViewModel, Post>()
            .ForMember(postModel => postModel.SlugUrl, opt => opt.ResolveUsing(postModel =>
                                                                               SeoHelpers.GenerateSlug(string.IsNullOrWhiteSpace(postModel.SlugUrl)
                        ? postModel.Title
                        : postModel.SlugUrl)
                                                                               ))

            .ForMember(postModel => postModel.MetaDescription, opt => opt.ResolveUsing(postModel => SeoHelpers.GenerateMetaDescription(!string.IsNullOrWhiteSpace(postModel.MetaDescription) ? postModel.MetaDescription : postModel.Body)))

            .ForMember(postModel => postModel.Tags, opt => opt.Ignore()).IncludeBase <MetaTagsViewModel, Post>();
        }
Exemplo n.º 9
0
        public async Task <bool> InsertAsync(CategoryViewModel viewModel)
        {
            var entity = new Category()
            {
                Id          = viewModel.Id,
                Name        = viewModel.Name,
                Description = viewModel.Description,
                IsShow      = viewModel.IsShow,
                SlugUrl     = SeoHelpers.GenerateSlug(viewModel.Name),
            };

            await _categories.AddAsync(entity);

            var result = await _unitOfWork.SaveChangesAsync();

            return(result != 0);
        }
Exemplo n.º 10
0
        public async Task <bool> UpdateAsync(CategoryViewModel viewModel)
        {
            var entity = await _categories.FirstOrDefaultAsync(p => p.Id == viewModel.Id);

            if (entity != null)
            {
                entity.Name        = viewModel.Name;
                entity.Description = viewModel.Description;
                entity.IsShow      = viewModel.IsShow;
                entity.SlugUrl     = SeoHelpers.GenerateSlug(viewModel.Name);

                var result = await _unitOfWork.SaveChangesAsync();

                return(result != 0);
            }

            return(await Task.FromResult(false));
        }
Exemplo n.º 11
0
        public async Task <int> ImportFromExcelAsync(List <ExcelPageViewModel> list)
        {
            var entities = new List <Page>(list.Count);

            foreach (var viewModel in list)
            {
                int?categoryId = null;

                if (viewModel.CategoryId.HasValue)
                {
                    var category = await _categories.FirstOrDefaultAsync(p => p.Name == viewModel.CategoryName && p.SlugUrl == viewModel.CategorySlugUrl);

                    if (category != null)
                    {
                        categoryId = category.Id;
                    }
                }

                var entity = new Page()
                {
                    Id               = viewModel.Id,
                    Title            = viewModel.Title,
                    BriefDescription = viewModel.BriefDescription,
                    Body             = viewModel.Body,
                    MetaDescription  = viewModel.MetaDescription,
                    SlugUrl          = SeoHelpers.GenerateSlug(viewModel.Title),
                    ViewNumber       = 0,
                    Image            = viewModel.Image,
                    Order            = viewModel.Order,
                    CategoryId       = categoryId,
                    IsShow           = viewModel.IsShow,
                };

                entities.Add(entity);
            }

            await _pages.AddRangeAsync(entities);

            var result = await _unitOfWork.SaveChangesAsync();

            return(result);
        }
Exemplo n.º 12
0
        public virtual async Task <ActionResult> Edit(EditSettingViewModel settingModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(settingModel));
            }

            if (!string.IsNullOrWhiteSpace(settingModel.SiteDescription))
            {
                settingModel.SiteDescription = SeoHelpers.GenerateMetaDescription(settingModel.SiteDescription);
            }

            await _settingService.UpdateSettings(settingModel);

            await _unitOfWork.SaveAllChangesAsync();

            _cacheService.RemoveSiteSettings();

            TempData["message"] = "تنظیمات سایت با موفقیت ویرایش شد";

            return(RedirectToAction(MVC.SiteSetting.Admin.ActionNames.Edit));
        }
Exemplo n.º 13
0
        public int ImportFromExcel(List <ExcelCategoryViewModel> list)
        {
            var entities = new List <Category>(list.Count);

            foreach (var viewModel in list)
            {
                var entity = new Category()
                {
                    Id          = viewModel.Id,
                    Name        = viewModel.Name,
                    Description = viewModel.Description,
                    IsShow      = viewModel.IsShow,
                    SlugUrl     = SeoHelpers.GenerateSlug(viewModel.Name),
                };

                entities.Add(entity);
            }

            _categories.AddRange(entities);
            var result = _unitOfWork.SaveChanges();

            return(result);
        }
Exemplo n.º 14
0
        public async Task <(bool isSuccess, Page page)> InsertTubleAsync(PageViewModel viewModel)
        {
            var entity = new Page()
            {
                Id                  = viewModel.Id,
                Title               = viewModel.Title,
                BriefDescription    = viewModel.BriefDescription,
                Body                = viewModel.Body,
                MetaDescription     = viewModel.MetaDescription,
                SlugUrl             = SeoHelpers.GenerateSlug(viewModel.Title),
                ViewNumber          = 0,
                Image               = viewModel.Image,
                Order               = viewModel.Order,
                CategoryId          = viewModel.CategoryId,
                IsShow              = viewModel.IsShow,
                IsShowInLastContent = viewModel.IsShowInLastContent,
            };

            await _pages.AddAsync(entity);

            var result = await _unitOfWork.SaveChangesAsync();

            return(result != 0, entity);
        }
Exemplo n.º 15
0
        public async Task <bool> UpdateAsync(PageViewModel viewModel)
        {
            var entity = await _pages.FirstOrDefaultAsync(p => p.Id == viewModel.Id);

            if (entity != null)
            {
                entity.Title               = viewModel.Title;
                entity.BriefDescription    = viewModel.BriefDescription;
                entity.Body                = viewModel.Body;
                entity.MetaDescription     = viewModel.MetaDescription;
                entity.SlugUrl             = SeoHelpers.GenerateSlug(viewModel.Title);
                entity.Image               = viewModel.Image;
                entity.Order               = viewModel.Order;
                entity.CategoryId          = viewModel.CategoryId;
                entity.IsShow              = viewModel.IsShow;
                entity.IsShowInLastContent = viewModel.IsShowInLastContent;

                var result = await _unitOfWork.SaveChangesAsync();

                return(result != 0);
            }

            return(await Task.FromResult(false));
        }
Exemplo n.º 16
0
        public void CreateMappings(IConfiguration configuration)
        {
            configuration.CreateMap <Product, AddProductViewModel>()
            .ForMember(productModel => productModel.SeoFields, opt => opt.MapFrom(productModel => new MetaTagsViewModel
            {
                SlugUrl         = productModel.SlugUrl,
                MetaDescription = productModel.MetaDescription,
            }))
            .ForMember(p => p.Categories, opt => opt.MapFrom(x => x.Categories.Select(c => c.Name)))
            .ForMember(productModel => productModel.Name, opt => opt.MapFrom(product => product.Title))
            .ForMember(productModel => productModel.Description, opt => opt.MapFrom(product => product.Body))
            .ForMember(productModel => productModel.Images, opt => opt.MapFrom(product => product.Images.OrderBy(image => image.Order)))

            .ForMember(productModel => productModel.Prices,
                       opt => opt.MapFrom(product => product.Prices.OrderByDescending(price => price.Date)));



            configuration.CreateMap <AddProductViewModel, Product>()
            .ForMember(product => product.Categories,
                       opt => opt.MapFrom(productModel => productModel
                                          .Categories.Select(x => new Category()
            {
                Name = x
            }).ToList()))

            .ForMember(product => product.Title, opt => opt.MapFrom(productModel => productModel.Name))

            .ForMember(product => product.Body, opt => opt.MapFrom(productModel => productModel.Description))
            //.ForMember(product => product.Images, opt => opt.Ignore())
            //.ForMember(product => product.Prices, opt => opt.Ignore())
            .ForMember(product => product.Tags, opt => opt.Ignore())
            .ForMember(product => product.PostedByUser, opt => opt.Ignore())
            .ForMember(product => product.PostedDate, opt => opt.Ignore())
            .ForMember(product => product.EditedDate, opt => opt.Ignore())
            .ForMember(product => product.PostedByUserId, opt => opt.Ignore())
            .ForMember(product => product.EditedDate, opt => opt.Ignore())

            .ForMember(product => product.SlugUrl, opt => opt.ResolveUsing(productModel =>
                                                                           SeoHelpers.GenerateSlug(string.IsNullOrWhiteSpace(productModel.SeoFields.SlugUrl) ?
                                                                                                   productModel.Name :
                                                                                                   productModel.SeoFields.SlugUrl)
                                                                           ))

            .ForMember(product => product.MetaDescription, opt => opt.ResolveUsing(productModel => SeoHelpers.GenerateMetaDescription(!string.IsNullOrWhiteSpace(productModel.SeoFields.MetaDescription) ? productModel.SeoFields.MetaDescription : productModel.Description)))

            .ForMember(product => product.Images, opt => opt.ResolveUsing(productModel =>
            {
                var i = 0;
                productModel.Images.ForEach(image =>
                {
                    image.Order = i++;
                });
                return(productModel.Images);
            }))

            .ForMember(product => product.Prices, opt => opt.ResolveUsing(productModel =>
            {
                if (productModel.Price.HasValue)
                {
                    productModel.Prices.Add(new AddProductPriceViewModel
                    {
                        Price = productModel.Price.Value,
                        Date  = DateTime.Now
                    });
                }
                return(productModel.Prices);
            }))


            .ForMember(product => product.Tags, opt => opt.Ignore());
        }
Exemplo n.º 17
0
        public async Task <IActionResult> SocialMediaEdit(int Id)
        {
            var socialMedia = await _seoService.GetSocialMedia(Id);

            return(View(SeoHelpers.ConvertToViewSocialMedia(socialMedia)));
        }
Exemplo n.º 18
0
        public async Task <IActionResult> MetaTagsEdit(int Id)
        {
            var metaTag = await _seoService.GetMetaTag(Id);

            return(View(SeoHelpers.ConvertToViewMetaTag(metaTag)));
        }
Exemplo n.º 19
0
        public async Task <IActionResult> General()
        {
            var generalSettings = await _seoService.GetSeoSettings();

            return(View(SeoHelpers.ConvertToViewGeneralSettings(generalSettings)));
        }
Exemplo n.º 20
0
        public async Task <IActionResult> RetrievalLinksEdit(int Id)
        {
            var retrievalLink = await _seoService.GetRetrievalLink(Id);

            return(View(SeoHelpers.ConvertToViewRetrievalLink(retrievalLink)));
        }