public async Task <BaseModel> EditCommentAsync(ArticleCommentViewMoldel model)
        {
            try
            {
                if (model.Id != 0)
                {
                    var _result = await _unitOfWork.ArticleCommentsRepository.FindAllBy(c => c.Id == model.Id && c.CommentedBy.Id == model.UserId);

                    UserArticleCommentsDataModel userArticleCommentsModel = _result[0];
                    if (userArticleCommentsModel.Id != 0)
                    {
                        userArticleCommentsModel.CommentText = model.CommentText;
                        userArticleCommentsModel.CommentedBy = await _unitOfWork.UserLoginRepository.GetByID(model.UserId);

                        await _unitOfWork.ArticleCommentsRepository.Update(userArticleCommentsModel);

                        return(new BaseModel {
                            Status = true, Messsage = UMessagesInfo.RecordSaved
                        });
                    }
                }
                return(new BaseModel {
                    Status = false, Messsage = UMessagesInfo.Error
                });
            }
            catch (System.Exception)
            {
                throw;
            }
        }
        public async Task <BaseModel> DeleteCommentAsync(ArticleCommentViewMoldel model)
        {
            try
            {
                if (model.Id != 0)
                {
                    var _result = await _unitOfWork.ArticleCommentsRepository.FindAllBy(c => c.Id == model.Id && c.CommentedBy.Id == model.UserId);

                    UserArticleCommentsDataModel userArticleCommentsModel = _result[0];
                    if (userArticleCommentsModel.Id != 0)
                    {
                        userArticleCommentsModel.IsDeletedMessage   = true;
                        userArticleCommentsModel.DeletedBy          = model.UserId;
                        userArticleCommentsModel.MessageDeletedDate = DateTime.Now;
                        await _unitOfWork.ArticleCommentsRepository.Update(userArticleCommentsModel);

                        return(new BaseModel {
                            Status = true, Messsage = UMessagesInfo.RecordDeleted
                        });
                    }
                }
                return(new BaseModel {
                    Status = false, Messsage = UMessagesInfo.Error
                });
            }
            catch (System.Exception)
            {
                throw;
            }
        }
        public async Task <ArticleCommentsList> AddCommentAsync(ArticleCommentViewMoldel model)
        {
            try
            {
                UserArticleCommentsDataModel userArticleCommentsData = new UserArticleCommentsDataModel
                {
                    CommentText = model.CommentText,
                    CommentedBy = await _unitOfWork.UserLoginRepository.GetByID(model.UserId),
                    Article     = await _unitOfWork.UserCommunityArticlesRepository.GetByID(model.ArticleId),
                    ParentId    = model.ParentId,
                    IsActive    = true
                };
                await _unitOfWork.ArticleCommentsRepository.Insert(userArticleCommentsData);

                var _userProfile = await _unitOfWork.UserProfileRepository.FindAllBy(c => c.User.Id == model.UserId);

                ArticleCommentsList articleComments = new ArticleCommentsList
                {
                    Id = userArticleCommentsData.Id
                    ,
                    CommentedDate = userArticleCommentsData.CommentedDate.ToString()
                    ,
                    CommentText = model.CommentText
                    ,
                    CommentedById = model.UserId
                    ,
                    ParentId = userArticleCommentsData.ParentId
                    ,
                    UserName       = _userProfile[0].FirstName,
                    LoggedInUserId = model.UserId
                };

                return(articleComments);
            }
            catch (System.Exception)
            {
                throw;
            }
        }