예제 #1
0
        public IDataResult <ChatComment> CreateChatComment(AddChatCommentDto addChatDto)
        {
            var errorResult = BusinessRules.Run(CheckAuthenticatedUserExist(), CheckReceiverIsExist(addChatDto.ReceiverId));

            if (errorResult != null)
            {
                return(ResultConverter.ResultToDataResult <ChatComment>(errorResult));
            }


            var user = _authService.GetAuthenticatedUser().Result.Data;
            var chat = GetChatById(user.Id, addChatDto.ReceiverId).Data;


            if (chat == null)
            {
                var result = CreateChatwithComment(user, addChatDto);
                return(new SuccessDataResult <ChatComment>(GetChatCommentById(result.Data).Data, Message.ChatCommentCreated));
            }


            var chatComment = new ChatComment()
            {
                UserId = user.Id, ChatId = chat.Id, Comment = addChatDto.Content
            };

            _uow.ChatComments.Add(chatComment);
            _uow.Commit();
            return(new SuccessDataResult <ChatComment>(GetChatCommentById(chatComment.Id).Data, Message.ChatCommentCreated));
        }
예제 #2
0
        public IResult CreateArticle(AddArticleDto addArticleDto)
        {
            var errorResult = BusinessRules.Run(CheckAuthenticatedUserExist(), CheckArticleCategoryExist(addArticleDto.ArticleCategoryId));


            if (errorResult != null)
            {
                return(errorResult);
            }


            var user = _authService.GetAuthenticatedUser().Result.Data;


            var article = new Article()
            {
                Title             = addArticleDto.Title,
                Content           = addArticleDto.Content,
                UserId            = user.Id,
                ArticleCategoryId = addArticleDto.ArticleCategoryId
            };

            user.UserHistories.Add(new UserHistory()
            {
                ArticleCategoryId = addArticleDto.ArticleCategoryId
            });
            _uow.Articles.Add(article); //
            _uow.Commit();              //

            return(new SuccessResult(Message.ArticleCreated));
        }
예제 #3
0
        public IDataResult <AccessToken> UpdateUser(UpdateUserDto updateUserDto)
        {
            var errorResult = BusinessRules.Run(CheckAuthenticatedUserExist());

            if (errorResult != null)
            {
                return(ResultConverter.ResultToDataResult <AccessToken>(errorResult));
            }


            var user = _authService.GetAuthenticatedUser().Result.Data;

            user.About = updateUserDto.About;

            _uow.Users.Update(user);
            _uow.Commit();

            return(new SuccessDataResult <AccessToken>(_authService.GetAuthenticatedToken(user).Result.Data));
        }
예제 #4
0
        public IResult CreateFavoriteArticle(AddFavoriteDto addFavoriteDto)
        {
            var errorResult = BusinessRules.Run(CheckAuthenticatedUserExist(), CheckArticleIsExist(addFavoriteDto.ArticleId));

            if (errorResult != null)
            {
                return(errorResult);
            }

            var user = _authService.GetAuthenticatedUser().Result.Data;

            //BU MAKALE ZATEN FAVORİLERİNDE Mİ?
            if (IsArticleAlreadyUsersFavorite(user.Id, addFavoriteDto.ArticleId).ResultType == ResultType.Success)
            {
                //EVET İSE, SİL.
                var favorite = _uow.Favorites.Get(x => x.ArticleId == addFavoriteDto.ArticleId && x.UserId == user.Id);
                var result   = DeleteFavorite(favorite);
                return(result);
            }


            //DEĞİL İSE, EKLE
            var newFavorite = new Favorite()
            {
                ArticleId = addFavoriteDto.ArticleId
            };

            if (!string.IsNullOrEmpty(addFavoriteDto.Description))
            {
                newFavorite.Description = addFavoriteDto.Description;
            }

            user.Favorites.Add(newFavorite);
            _uow.Commit();
            return(new SuccessResult(Message.FavoriteCreated));
        }
        public IResult AddLike(long articleId)
        {
            //LOGIN KULLANICI VAR MI, MAKALE MEVCUT MU
            var errorResult = BusinessRules.Run(CheckAuthenticatedUserExist(), IsArticleExist(articleId));

            if (errorResult != null)
            {
                return(errorResult);
            }


            var user = _authService.GetAuthenticatedUser().Result.Data;


            //KULLANICI BU MAKALEYE LIKE ATMIŞ MI?
            if (IsThereUserLikeOnArticle(articleId, user.Id).ResultType == ResultType.Success)
            {
                //ATMIŞ İSE, KALDIR.
                var userLike = GetUserLikeOnArticle(articleId, user.Id).Data;
                DeleteLike(userLike);
            }


            //LIKE ATMAMIŞ İSE
            else
            {
                //KULLANICI BU MAKALEYE DISSLIKE ATMIŞ MI?
                if (IsThereUserDisslikeOnArticle(articleId, user.Id).ResultType == ResultType.Success)
                {
                    //ATMIŞ İSE KALDIR.
                    var userDisslike = GetUserDisslikeOnArticle(articleId, user.Id).Data;
                    DeleteDisslike(userDisslike);
                }


                _uow.ArticleLikeDisslikes.Add(new ArticleLikeDisslike()
                {
                    UserId = user.Id, ArticleId = articleId, LikeDisslikeType = LikeDisslikeType.Like
                });
            }

            _uow.Commit();
            return(new SuccessResult());
        }
예제 #6
0
        public IResult CreateAuthorizationAppeal(AddAuthorizationAppealDto addAuthorizationAppealDto)
        {
            var user = _authService.GetAuthenticatedUser().Result.Data;

            var errorResult = BusinessRules.Run(CheckAuthenticatedUserExist(), IsThereAnyAppealOnWait(user.Id),
                                                IsThereAnyConfirmedAppeal(user.Id));

            if (errorResult != null)
            {
                return(errorResult);
            }


            user.AuthorizationAppeals.Add(new AuthorizationAppeal()
            {
                AppealDescription = addAuthorizationAppealDto.AppealDescription
            });
            _uow.Commit();
            return(new SuccessResult(Message.AppealCreated));
        }
        public IResult CreateTopic(AddTopicDto addTopicDto)
        {
            var errorResult = BusinessRules.Run(CheckAuthenticatedUserExist());

            if (errorResult != null)
            {
                return(errorResult);
            }

            var user = _authService.GetAuthenticatedUser().Result.Data;

            var topic = new Topic()
            {
                Title = addTopicDto.Title, Content = addTopicDto.Content, UserId = user.Id
            };

            _uow.Topics.Add(topic);
            _uow.Commit();

            return(new SuccessResult(Message.TopicCreated));
        }