Example #1
0
        public Article CreateArticle(CreateArticleBindingModel createArticleBindingModel, string authorName)
        {
            var  author             = this.context.Users.Single(u => u.UserName == authorName);
            var  roleId             = this.context.UserRoles.First(ur => ur.UserId == author.Id).RoleId;
            var  role               = this.context.Roles.First(r => r.Id == roleId).Name;
            bool isAuthorSuperAdmin = role == "Super-admin";


            var article = new Article
            {
                Title             = createArticleBindingModel.Title,
                Content           = createArticleBindingModel.Content,
                Author            = author,
                PostDate          = DateTime.UtcNow,
                IsApproved        = isAuthorSuperAdmin,
                IsRejected        = false,
                IsSentForApproval = !isAuthorSuperAdmin
            };

            this.context.Articles.Add(article);
            this.context.SaveChanges();

            if (createArticleBindingModel.Image != null)
            {
                var articleId = this.context.Articles.First(a => a.Title == createArticleBindingModel.Title).Id;

                var imageLocation = this.imagesService.CreateImage(createArticleBindingModel.Image, this.GetType().Name.Replace("Service", string.Empty), articleId);

                this.context.Articles.First(a => a.Id == articleId).ImageLocation = imageLocation;
                article.ImageLocation = imageLocation;
                context.SaveChanges();
            }

            return(article);
        }
        public async Task <IActionResult> CreateArticle(CreateArticleBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            await this.blogService.CreateArticleAsync(model, this.User.Identity.Name);

            return(this.Redirect(GlobalConstants.TrainerMyArticles));
        }
Example #3
0
        public IActionResult Create_Article(CreateArticleBindingModel model)
        {
            if (this.ModelState.IsValid)
            {
                this.articlesService.CreateArticle(model, this.User.Identity.Name);
                return(RedirectToAction("ArticlesMenu"));
            }

            var reloadModel = this.menuService.GetMenuItems(this.GetType(), typeof(HttpGetAttribute), typeof(AuthorizeAttribute), AreaName, "Create_Article", model);

            return(View("ArticlesMenu", reloadModel));
        }
        public CreateArticleBindingModel GetCreateModel()
        {
            CreateArticleBindingModel model = new CreateArticleBindingModel
            {
                Categories = this.Context
                             .Categories
                             .Select(c => c.Name)
                             .ToList()
            };

            return(model);
        }
        public async Task <IActionResult> CreateArticle(CreateArticleBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            await this.blogService.CreateArticleAsync(model, this.User.Identity.Name);

            var articles = await this.blogService.GetAllArticlesAsync();

            return(this.View("ArticlesAll", articles));
        }
        public ActionResult Create(CreateArticleBindingModel model)
        {
            string author = this.User.Identity.Name;

            if (this.ModelState.IsValid)
            {
                this.articles.Create(model.Title, model.Content, model.Category, author);

                return(this.RedirectToAllArticles());
            }

            return(this.View(model));
        }
Example #7
0
        public async Task <ArticleViewModel> CreateArticleAsync(CreateArticleBindingModel model, string usersName)
        {
            Article articleForDb = null;

            await Task.Run(async() =>
            {
                var user = await this.usersService.GetUserByUsernameAsync(usersName);
                var url  = MyCloudinary.UploadImage(model.ImgUrl, model.Title);

                articleForDb          = this.mapper.Map <Article>(model);
                articleForDb.ImgUrl   = url ?? Constants.CloudinaryInvalidUrl;
                articleForDb.AuthorId = user.Id;

                this.context.Articles.Add(articleForDb);
                this.context.SaveChanges();
            });

            var articleToReturn = this.mapper.Map <ArticleViewModel>(articleForDb);

            return(articleToReturn);
        }
        public ActionResult Create()
        {
            CreateArticleBindingModel model = this.articles.GetCreateModel();

            return(this.View(model));
        }