示例#1
0
        public async Task <IActionResult> Create(NewsCreateViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            try
            {
                var news = _mapper.Map <NewsCreateViewModel, News>(model);

                if (model.ImageUpload != null)
                {
                    string imageString = await GetImageBase64FromFile(model.ImageUpload);

                    if (!String.IsNullOrEmpty(imageString))
                    {
                        news.Image = imageString;
                    }
                    else
                    {
                        return(View(model));
                    }
                }
                news.IdAutor = GetUserId();
                _newsService.AddNews(news);
                SetSuccess($"Pomyślnie utworzono news '{model.Title}'");
            }
            catch (Exception ex)
            {
                SetError(ex);
            }
            return(RedirectToAction("Index"));
        }
示例#2
0
 public static NewsCreateDto ToDto(this NewsCreateViewModel source, string fileName)
 {
     return new NewsCreateDto
     {
         Description = source.Description,
         Title = source.Title,
         PrimaryPicture = fileName,
         Type = source.Type
     };
 }
示例#3
0
        public async Task <IActionResult> Create(NewsCreateViewModel model)
        {
            var userId = this.userManager.GetUserId(User);

            await this.news.CreateAsync(userId, model.Title, model.Description, model.ImageUrl);

            TempData.AddSuccessMessage($"News created successfully!");

            return(RedirectToAction(nameof(All)));
        }
示例#4
0
        public async Task <IActionResult> Post([FromForm] NewsCreateViewModel newsModel)
        {
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap <NewsCreateViewModel, NewsCreateDto>())
                         .CreateMapper();

            var newsDto = mapper.Map <NewsCreateDto>(newsModel);

            await _newsService.AddNews(newsDto);

            return(Ok());
        }
示例#5
0
        public ActionResult Create(NewsCreateViewModel newsCreateViewModel)
        {
            //Create Map
            var config = new MapperConfiguration(cfg => cfg.CreateMap <NewsCreateViewModel, News>());
            var mapper = config.CreateMapper();

            News news = mapper.Map <News>(newsCreateViewModel);

            news.UserId = Convert.ToInt32(Session["UserId"]);
            _newsContext.Insert(news);
            return(RedirectToAction("Index", "News"));
        }
        public NewsClass CreateNews(NewsCreateViewModel inputModel, string authorId)
        {
            var news = new NewsClass
            {
                Title       = inputModel.Title,
                Content     = inputModel.Content,
                PublishedOn = DateTime.Now,
                AuthorId    = authorId
            };

            this.db.News.Add(news);
            this.db.SaveChanges();

            return(news);
        }
示例#7
0
        public IActionResult Create(NewsCreateViewModel inputModel)
        {
            if (!this.ModelState.IsValid)
            {
                var model = this.newsService.GetErrorViewModel(Constants.InvalidNewsInputModelMessage);

                return(this.View(Constants.ErrorView, model));
            }

            var userId = this.userManager.GetUserId(HttpContext.User);

            var news = this.newsService.CreateNews(inputModel, userId);

            return(this.RedirectToAction(Constants.AllNewsView, Constants.NewsController, new { area = string.Empty }));
        }
示例#8
0
        public async Task <IActionResult> CreateNews(NewsCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var news = _mapper.Map <News>(model);
                news.DateOfCreating = DateTime.Now;
                await _newsService.CreateNewsAsync(news);

                return(RedirectToAction("NewsCollection"));
            }
            else
            {
                if (string.IsNullOrEmpty(model.Text))
                {
                    ModelState.AddModelError("", "Text required");
                }
                return(View(model));
            }
        }
示例#9
0
        public async Task <IActionResult> Create(NewsCreateViewModel newsFromView) //[Bind("Title,Content,SourseURL")]
        {
            if (ModelState.IsValid)
            {
                NewsDTO newsDTO = new NewsDTO()
                {
                    Id            = Guid.NewGuid(),
                    Title         = newsFromView.Title,
                    Body          = newsFromView.Body,
                    SourseURL     = newsFromView.SourseURL,
                    CreatedOnDate = DateTime.Now,
                    EditedOnDate  = DateTime.Now,
                };

                await _newsService.AddAsync(newsDTO);

                return(RedirectToAction("Index", "Home"));
            }
            return(View(newsFromView));
        }
示例#10
0
        public async Task <IActionResult> Create(NewsCreateViewModel obj)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = UploadedFile(obj);
                var    user           = await userManager.FindByNameAsync(User.Identity.Name);

                News news = new News
                {
                    Title           = obj.Title,
                    Content         = obj.Content,
                    PublicationDate = DateTime.Now,
                    AuthorID        = user.Id,
                    Tags            = obj.Tags,
                    ImagePath       = uniqueFileName,
                };

                _db.News.Add(news);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(obj));
        }
示例#11
0
        public IActionResult Create(NewsCreateViewModel model)
        {
            var uploadResult = _fileService.Upload(model.PrimaryPicture, "News", 1024 * 500);

            var serviceResult = new ServiceResult();

            if (uploadResult.IsSuccess)
            {
                serviceResult = _adminService.CreateNews(model.ToDto(uploadResult.Data));

                if (serviceResult.IsSuccess)
                {
                    Swal(true, "یک خبر با موفقیت اضافه شد");
                    return(RedirectToAction(nameof(Create)));
                }
            }
            else
            {
                serviceResult.Errors    = uploadResult.Errors;
                serviceResult.IsSuccess = false;
            }

            AddErrors(serviceResult);

            List <SelectListItem> typeSelector = new List <SelectListItem>();

            typeSelector.Add(new SelectListItem("نوع خبر", ""));
            typeSelector.Add(new SelectListItem("اخبار محله", NewsType.Mahal.ToString(), model.Type == NewsType.Mahal));
            typeSelector.Add(new SelectListItem("سیاسی", NewsType.Siasi.ToString(), model.Type == NewsType.Siasi));
            typeSelector.Add(new SelectListItem("اقتصادی", NewsType.Eghtesadi.ToString(), model.Type == NewsType.Eghtesadi));
            typeSelector.Add(new SelectListItem("فرهنگی", NewsType.Farhangi.ToString(), model.Type == NewsType.Farhangi));

            ViewBag.TypeSelector = typeSelector;

            return(View(model));
        }
示例#12
0
        public async Task <IActionResult> Create([FromForm] NewsCreateViewModel vmItem)
        {
            ViewData["ControllerNameForImageBrowser"] = nameof(ImageBrowserNewController).Replace("Controller", "");

            // Invalid model
            if (!ModelState.IsValid)
            {
                // Get list master of foreign property and set to view data
                await PrepareListMasterForeignKey(vmItem);

                return(View(vmItem));
            }

            // Get time stamp for table to handle concurrency conflict
            var tableName    = nameof(News);
            var tableVersion = await _context.TableVersion.FirstOrDefaultAsync(h => h.Id == tableName);

            // Trim white space
            vmItem.SlugTitle = $"{vmItem.SlugTitle}".Trim();
            if (vmItem.AutoSlug)
            {
                vmItem.SlugTitle = NormalizeSlug($"{vmItem.Title}");
            }
            else
            {
                vmItem.SlugTitle = NormalizeSlug($"{vmItem.SlugTitle}");
            }

            // Check slug is existed => if existed auto get next slug
            var listExistedSlug = await _context.News.AsNoTracking()
                                  .Where(h => h.SlugTitle.StartsWith(vmItem.SlugTitle))
                                  .Select(h => h.SlugTitle).ToListAsync();

            var slug = CheckAndGenNextSlug(vmItem.SlugTitle, listExistedSlug);

            // Create save db item
            var dbItem = new News
            {
                Id = Guid.NewGuid().ToString(),

                CreatedBy   = _loginUserId,
                CreatedDate = DateTime.Now,
                UpdatedBy   = null,
                UpdatedDate = null,
                RowStatus   = (int)AtRowStatus.Normal,
                RowVersion  = null,

                FkNewsTypeId         = vmItem.FkNewsTypeId,
                Title                = vmItem.Title,
                SlugTitle            = vmItem.SlugTitle,
                AutoSlug             = vmItem.AutoSlug,
                ShortDescriptionHtml = vmItem.ShortDescriptionHtml,
                LongDescriptionHtml  = vmItem.LongDescriptionHtml,
                Tags      = vmItem.Tags,
                KeyWord   = vmItem.KeyWord,
                MetaData  = vmItem.MetaData,
                Note      = vmItem.Note,
                ImageSlug = vmItem.ImageSlug,
            };

            _context.Add(dbItem);

            // Set time stamp for table to handle concurrency conflict
            if (tableVersion != null)
            {
                tableVersion.LastModify = DateTime.Now;
            }
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Details), new { id = dbItem.SlugTitle }));
        }