예제 #1
0
        public async Task <IDataResult <ArticleDto> > Add(ArticleAddDto articleAddDto, string createdByName)
        {
            var article = _mapper.Map <Article>(articleAddDto);

            article.CreatedByName  = createdByName;
            article.ModifiedByName = createdByName;
            article.UserId         = 1;
            var articleStore = await _unitOfWork.Articles.AddAsync(article);

            await _unitOfWork.SaveAsync();

            return(new DataResult <ArticleDto>(ResultStatus.Success, $"{articleAddDto.Title} başlıklı makale başarıyla eklenmiştir.", new ArticleDto
            {
                Article = articleStore,
                Message = $"{articleAddDto.Title} başlıklı makale başarıyla eklenmiştir.",
                ResultStatus = ResultStatus.Success
            }));
        }
예제 #2
0
        public async Task <IDataResult <ArticleDto> > AddAsync(ArticleAddDto articleAddDto, string createdByName, int userId)
        {
            var article = Mapper.Map <Article>(articleAddDto);

            article.CreatedByName  = createdByName;
            article.ModifiedByName = createdByName;
            article.UserId         = userId;
            var addedArticle = await UnitOfWork.Articles.AddAsync(article);

            await UnitOfWork.SaveAsync();

            return(new DataResult <ArticleDto>(ResultStatus.Success, Messages.Article.Add(addedArticle.Title), new ArticleDto
            {
                Article = addedArticle,
                ResultStatus = ResultStatus.Success,
                Message = Messages.Article.Add(addedArticle.Title)
            }));
        }
예제 #3
0
        public async Task <IDataResult <ArticleDto> > Add(ArticleAddDto articleAddDto, string createdByName)
        {
            var article = _mapper.Map <Article>(articleAddDto); //AutoMapper doğrudan articleAddDto degiskenini Article ' a çeviriyor

            article.CreatedByName  = createdByName;
            article.ModifiedbyName = createdByName;
            article.UserId         = 1;
            var addedArticle = await _unitOfWork.Articles.AddAsync(article);

            await _unitOfWork.SaveAsync();

            return(new DataResult <ArticleDto>(ResultStatus.Success, $"{articleAddDto.Title} baslıklı makale basarıyla eklenmistir.", new ArticleDto()
            {
                Article = addedArticle,
                ResultStatus = ResultStatus.Success,
                Message = $"{articleAddDto.Title} baslıklı makale basarıyla eklenmistir."
            }));
        }
예제 #4
0
        public async Task <IActionResult> Add(ArticleAddDto articleAddDto, IFormFile fileImg)
        {
            if (ModelState.IsValid)
            {
                if (fileImg != null)
                {
                    string imgExtension = Path.GetExtension(fileImg.FileName);
                    string imgName      = Guid.NewGuid() + imgExtension;
                    string imgPath      = Path.Combine(Directory.GetCurrentDirectory(), $"wwwroot/uploads/img/{imgName}");
                    using var streamImg = new FileStream(imgPath, FileMode.Create);
                    await fileImg.CopyToAsync(streamImg);

                    articleAddDto.Thumbnail = $"/uploads/img/{imgName}";
                }
                await _articleService.Add(articleAddDto, "Hasan Erdal");

                return(RedirectToAction("Index"));
            }
            var categories = await _categoryService.GetAllByNonDeleteAndActive();

            ViewBag.CategoryList = categories.Data.Categories;
            return(View(articleAddDto));
        }
예제 #5
0
 public ActionResult Put(int id, [FromForm] ArticleAddDto articleDto)
 {
     return(GetStatusCodeResult(_articlesService.Update(articleDto, id, GetCurrentUser())));
 }
예제 #6
0
 public ActionResult Post([FromForm] ArticleAddDto articleDto)
 {
     return(GetStatusCodeResult(_articlesService.Insert(articleDto, GetCurrentUser())));
 }
예제 #7
0
        public ResultMessage Update(ArticleAddDto article, int articleId, IUserDto user)
        {
            _logger.LogInformation($"START: Article.Update: Name:{article.Name}");

            var validationResult = _addValidator.Validate(article);

            if (!validationResult.IsValid)
            {
                _logger.LogInformation($"END: Article.Update: Id:{articleId} -- VALIDATION");
                return(new ResultMessage
                {
                    Status = HttpStatusCode.BadRequest,
                    ValidationMessages = validationResult.GetErrorsList()
                });
            }
            try
            {
                var articleData = _unitOfWork.ArticlesRepository.GetById(articleId);
                if (articleData == null || articleData.IsDraft)
                {
                    _logger.LogInformation($"END: Article.Update: Id:{articleId} -- NOTFOUND");
                    return(new ResultMessage
                    {
                        Status = HttpStatusCode.NotFound,
                    });
                }


                if (user.IsAdmin || (user.Id == articleData.CreatedBy && (!articleData.IsActive.HasValue || !articleData.IsActive.Value)))
                {
                    article.Adapt(articleData, typeof(ArticleAddDto), typeof(DBModels.Articles));
                    articleData.UpdatedAt = DateTime.Now;
                    articleData.UpdatedBy = user.Id;

                    var sliderDto = new SliderDto
                    {
                        attachmentType = AttachmentTypesEnum.Articles,
                        Items          = article.UpdatedImages ?? new List <SliderItemDto>(),
                        SubFolderName  = articleData.SubFolderName,
                        ParentId       = articleId
                    };

                    //check profile picture
                    if (sliderDto.Items.Count > 0)
                    {
                        articleData.ProfilePicture = _sliderManager.GetProfilePicturePath(sliderDto, article.ProfilePicture);
                    }

                    _unitOfWork.ArticlesRepository.Update(articleData);
                    _unitOfWork.Commit();

                    // update files
                    if (sliderDto.Items.Count > 0)
                    {
                        _sliderManager.Update(sliderDto);
                    }

                    _logger.LogInformation($"END: Article.Update: ID:{articleId} --SUCCESS");

                    return(new ResultMessage
                    {
                        Status = HttpStatusCode.OK
                    });
                }
                else
                {
                    _logger.LogInformation($"END: Article.Update: Id:{articleId} -- UNAuthorized");

                    return(new ResultMessage
                    {
                        Status = HttpStatusCode.Unauthorized
                    });
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, string.Empty);
                return(new ResultMessage
                {
                    Status = HttpStatusCode.InternalServerError
                });
            }
        }
예제 #8
0
        public ResultMessage Insert(ArticleAddDto article, IUserDto user)
        {
            _logger.LogInformation($"START: Article.Insert: Name:{article.Name}");

            var validationResult = _addValidator.Validate(article);

            if (!validationResult.IsValid)
            {
                _logger.LogInformation($"END: Article.Insert: Name:{article.Name}  --VALIDATION");
                return(new ResultMessage
                {
                    Status = HttpStatusCode.BadRequest,
                    ValidationMessages = validationResult.GetErrorsList()
                });
            }
            try
            {
                var articleEntity = article.Adapt <DBModels.Articles>();
                articleEntity.CreatedAt = DateTime.Now;
                articleEntity.CreatedBy = user.Id;

                var articleFolderName = Guid.NewGuid().ToString();

                var sliderDto = new SliderDto
                {
                    attachmentType = AttachmentTypesEnum.Articles,
                    Items          = article.UpdatedImages,
                    SubFolderName  = articleFolderName
                };

                if (sliderDto.Items.Count > 0)
                {
                    articleEntity.ProfilePicture = _sliderManager.GetProfilePicturePath(sliderDto);
                }

                articleEntity.SubFolderName = articleFolderName;
                articleEntity.Images        = null;
                articleEntity.IsActive      = null;

                if (user.IsAdmin)
                {
                    articleEntity.IsActive = true;
                }

                _unitOfWork.ArticlesRepository.Insert(articleEntity);
                _unitOfWork.Commit();

                sliderDto.ParentId = articleEntity.Id;
                _sliderManager.Add(sliderDto);

                _logger.LogInformation($"END: Article.Insert: Name:{article.Name}  --SUCCESS");

                return(new ResultMessage
                {
                    Status = HttpStatusCode.OK
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, string.Empty);
                return(new ResultMessage()
                {
                    ErrorCode = (int)ProductsErrorsCodeEnum.ProductsInsertError,
                    Status = HttpStatusCode.InternalServerError
                });
            }
        }
예제 #9
0
        public IActionResult Add(ArticleAddDto dto)
        {
            var list = _articleAppService.Add(dto);

            return(RedirectToAction("Index"));
        }