예제 #1
0
        public async Task <ArticleModel> CreateArticleAsync(ClaimsPrincipal claimsPrincipal, ArticleModel criterias)
        {
            var currentUserId = GetCurrentUserId(claimsPrincipal);
            var article       = new ArticleModifyRequest
            {
                CreatedById       = currentUserId,
                UpdatedById       = currentUserId,
                Content           = criterias.Content,
                Name              = criterias.Name,
                ArticleCategoryId = criterias.ArticleCategoryId
            };

            if (criterias.Picture != null)
            {
                article.Picture = new PictureRequest()
                {
                    Base64Data  = criterias.Picture.Base64Data,
                    ContentType = criterias.Picture.ContentType,
                    FileName    = criterias.Picture.FileName
                };
            }

            var id = await _articleService.CreateAsync(article);

            criterias.Id = id;
            return(criterias);
        }
예제 #2
0
        public async Task <bool> ActiveAsync(ArticleModifyRequest request)
        {
            await _articlePictureRepository.UpdateStatusByArticleIdAsync(new ArticlePictureModifyRequest
            {
                ArticleId   = request.Id,
                UpdatedById = request.UpdatedById
            }, PictureStatus.Actived);

            return(await _articleRepository.ActiveAsync(request));
        }
예제 #3
0
        public async Task <bool> ActiveAsync(ArticleModifyRequest request)
        {
            await _articleRepository.Get(x => x.Id == request.Id)
            .Set(x => x.StatusId, ArticleStatus.Actived.GetCode())
            .Set(x => x.UpdatedById, request.UpdatedById)
            .Set(x => x.UpdatedDate, DateTimeOffset.UtcNow)
            .UpdateAsync();

            return(true);
        }
예제 #4
0
        public async Task <bool> UpdateAsync(ArticleModifyRequest request)
        {
            var exist = _articleRepository.FirstOrDefault(x => x.Id == request.Id);

            exist.Name = request.Name;
            exist.ArticleCategoryId = request.ArticleCategoryId;
            exist.UpdatedById       = request.UpdatedById;
            exist.UpdatedDate       = request.UpdatedDate;
            exist.Content           = request.Content;

            await _articleRepository.UpdateAsync(exist);

            return(true);
        }
예제 #5
0
        public async Task <int> CreateAsync(ArticleModifyRequest request)
        {
            var newArticle = new Article()
            {
                ArticleCategoryId = request.ArticleCategoryId,
                Content           = request.Content,
                CreatedById       = request.CreatedById,
                UpdatedById       = request.UpdatedById,
                CreatedDate       = request.CreatedDate,
                UpdatedDate       = request.UpdatedDate,
                Description       = request.Description,
                Name     = request.Name,
                StatusId = ArticleStatus.Pending.GetCode()
            };

            return(await _articleRepository.AddWithInt32EntityAsync(newArticle));
        }
예제 #6
0
        public async Task <IActionResult> Update(ArticleModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToErrorPage());
            }

            var article = new ArticleModifyRequest
            {
                Id                = model.Id,
                CreatedById       = model.CreatedById,
                ArticleCategoryId = model.ArticleCategoryId,
                Content           = model.Content,
                Description       = model.Description,
                Name              = model.Name,
                Picture           = new PictureRequest
                {
                    Base64Data  = model.Picture,
                    ContentType = model.PictureFileType,
                    FileName    = model.PictureFileName
                },
                UpdatedById = LoggedUserId,
            };

            if (article.Id <= 0)
            {
                return(RedirectToErrorPage());
            }

            var exist = await _articleService.FindAsync(new IdRequestFilter <long>
            {
                Id              = article.Id,
                CanGetDeleted   = true,
                CanGetInactived = true
            });

            if (exist == null)
            {
                return(RedirectToErrorPage());
            }

            await _articleService.UpdateAsync(article);

            return(RedirectToAction(nameof(Detail), new { id = article.Id }));
        }
예제 #7
0
        public async Task <ArticleModel> UpdateArticleAsync(ClaimsPrincipal claimsPrincipal, ArticleModel criterias)
        {
            var exist = await _articleService.FindAsync(new IdRequestFilter <long>
            {
                Id = criterias.Id,
                CanGetInactived = true
            });

            if (exist == null)
            {
                throw new CaminoApplicationException($"The article with id {criterias.Id} has not been found");
            }

            var currentUserId = GetCurrentUserId(claimsPrincipal);

            if (currentUserId != exist.CreatedById)
            {
                throw new UnauthorizedAccessException();
            }

            var article = new ArticleModifyRequest
            {
                Id                = criterias.Id,
                CreatedById       = currentUserId,
                UpdatedById       = currentUserId,
                Content           = criterias.Content,
                Name              = criterias.Name,
                ArticleCategoryId = criterias.ArticleCategoryId
            };

            if (criterias.Picture != null)
            {
                article.Picture = new PictureRequest
                {
                    Base64Data  = criterias.Picture.Base64Data,
                    ContentType = criterias.Picture.ContentType,
                    FileName    = criterias.Picture.FileName,
                    Id          = criterias.Picture.PictureId
                };
            }

            await _articleService.UpdateAsync(article);

            return(criterias);
        }
예제 #8
0
        public async Task <IActionResult> Put([FromBody] ArticleModifyRequest request)
        {
            var foundArticle = await _context.ConsumptionArticles.FirstOrDefaultAsync(c => c.Id == request.Id);

            if (foundArticle == null)
            {
                return(NotFound("Article wasn't found"));
            }

            foundArticle.Name     = request.Name;
            foundArticle.IsActive = request.IsActive;

            _context.ConsumptionArticles.Update(foundArticle);
            await _context.SaveChangesAsync();

            return(Ok(await _context.ConsumptionArticles.ProjectTo <ArticleDetailResponse>(_mapper.ConfigurationProvider)
                      .FirstOrDefaultAsync(x => x.Id == request.Id)));
        }
예제 #9
0
        public async Task <IActionResult> CreateCommon([FromBody] ArticleModifyRequest request)
        {
            var max = await _context.ConsumptionArticles.MaxAsync(x => x.Id);

            var art = _mapper.Map <ConsumptionArticle>(request);

            art.IsActive = true;
            art.IsCommon = true;
            art.Id       = max + 1;

            var res = await _context.ConsumptionArticles.AddAsync(art);

            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(CreateOne),
                                   await _context.ConsumptionArticles.ProjectTo <ArticleDetailResponse>(_mapper.ConfigurationProvider)
                                   .FirstOrDefaultAsync(x => x.Id == res.Entity.Id)));
        }
예제 #10
0
        public async Task <bool> UpdateAsync(ArticleModifyRequest article)
        {
            var modifiedDate = DateTimeOffset.UtcNow;

            article.UpdatedDate = modifiedDate;
            var isUpdated = await _articleRepository.UpdateAsync(article);

            if (isUpdated)
            {
                await _articlePictureRepository.UpdateAsync(new ArticlePictureModifyRequest
                {
                    ArticleId   = article.Id,
                    CreatedById = article.CreatedById,
                    UpdatedById = article.UpdatedById,
                    CreatedDate = modifiedDate,
                    UpdatedDate = modifiedDate,
                    Picture     = article.Picture
                });
            }

            return(true);
        }
예제 #11
0
        public async Task <int> CreateAsync(ArticleModifyRequest article)
        {
            var modifiedDate = DateTimeOffset.UtcNow;

            article.CreatedDate = modifiedDate;
            article.UpdatedDate = modifiedDate;
            var id = await _articleRepository.CreateAsync(article);

            if (article.Picture != null)
            {
                await _articlePictureRepository.CreateAsync(new ArticlePictureModifyRequest
                {
                    ArticleId   = id,
                    CreatedById = article.CreatedById,
                    UpdatedById = article.UpdatedById,
                    CreatedDate = modifiedDate,
                    UpdatedDate = modifiedDate,
                    Picture     = article.Picture
                });
            }

            return(id);
        }