public IHttpActionResult Create([FromBody] List <Tags> tags, int questionId)
        {
            List <ITagsDTO> tagsDTO = new List <ITagsDTO>();

            foreach (var tag in tags)
            {
                ITagsDTO tagDTO = (ITagsDTO)DTOFactory.Instance.Create(DTOType.TagsDTO);
                EntityConverter.FillDTOFromEntity(tag, tagDTO);
                tagsDTO.Add(tagDTO);
            }
            ITagFacade             tagsFacade = (ITagFacade)FacadeFactory.Instance.Create(FacadeType.TagFacade);
            OperationResult <bool> result     = tagsFacade.Create(tagsDTO, questionId);

            if (result.ResultType == OperationResultType.Failure)
            {
                string failed = JsonConvert.SerializeObject(new { success = false, data = result.Message });
                return(BadRequest(failed));
            }

            if (result.IsValid())
            {
                string success = JsonConvert.SerializeObject(new { success = true, data = true });
                return(Ok(success));
            }

            string jsonObj = JsonConvert.SerializeObject(new { success = false, data = result.Message });

            return(BadRequest(jsonObj));
        }
Esempio n. 2
0
        public OperationResult <List <IQuestionDTO> > SearchQuestion(ITagsDTO tagDTO)
        {
            OperationResult <List <IQuestionDTO> > retVal = null;

            try
            {
                ITagDAC             tagDAC    = (ITagDAC)DACFactory.Instance.Create(DACType.UserDAC);
                List <IQuestionDTO> resultDTO = tagDAC.SearchQuestion(tagDTO);
                if (resultDTO != null)
                {
                    retVal = OperationResult <List <IQuestionDTO> > .CreateSuccessResult(resultDTO);
                }
                else
                {
                    retVal = OperationResult <List <IQuestionDTO> > .CreateFailureResult("Not found!");
                }
            }
            catch (DACException dacEx)
            {
                retVal = OperationResult <List <IQuestionDTO> > .CreateErrorResult(dacEx.Message, dacEx.StackTrace);
            }
            catch (Exception ex)
            {
                ExceptionManager.HandleException(ex);
                retVal = OperationResult <List <IQuestionDTO> > .CreateErrorResult(ex.Message, ex.StackTrace);
            }

            return(retVal);
        }
        public IEnumerable <QuestionsDTO> SearchQuestion(string tags)
        {
            ITagsDTO tag = (ITagsDTO)DTOFactory.Instance.Create(DTOType.TagsDTO);

            tag.Tag = tags;
            ITagFacade questionFacade = (ITagFacade)FacadeFactory.Instance.Create(FacadeType.TagFacade);
            OperationResult <List <IQuestionDTO> > result = questionFacade.SearchQuestion(tag);

            return((IEnumerable <QuestionsDTO>)result.Data);
        }
Esempio n. 4
0
        /// <summary>
        /// Method to get all questions
        /// </summary>
        /// <returns></returns>
        public List <IDataDTO> GetQuestions()
        {
            using (var context = new BufferOverflowDBEntities())
            {
                List <IDataDTO> listOfQuestions    = null;
                var             questionEntityList = context.Questions.OrderByDescending(e => e.Created).ToList();

                if (questionEntityList != null)
                {
                    listOfQuestions = new List <IDataDTO>();
                    foreach (var questionEntity in questionEntityList)
                    {
                        IQuestionDTO questionDTO = (IQuestionDTO)DTOFactory.Instance.Create(DTOType.QuestionDTO);
                        EntityConverter.FillDTOFromEntity(questionEntity, questionDTO);

                        // Getting Question tags
                        var tagsEntityList = context.TagRelation.Where(t => t.QuestionId == questionEntity.Id).ToList();


                        List <ITagsDTO> tagName = new List <ITagsDTO>();
                        foreach (var tags in tagsEntityList)
                        {
                            ITagsDTO tagDTO = (ITagsDTO)DTOFactory.Instance.Create(DTOType.TagsDTO);
                            var      tag    = context.Tags.SingleOrDefault(t => t.Id == tags.TagId);
                            EntityConverter.FillDTOFromEntity(tag, tagDTO);
                            tagName.Add(tagDTO);
                        }

                        // Getting User
                        IUserDTO userDTO    = (IUserDTO)DTOFactory.Instance.Create(DTOType.UserDTO);
                        var      userEntity = context.User.SingleOrDefault(u => u.Id == questionEntity.UserId);
                        EntityConverter.FillDTOFromEntity(userEntity, userDTO);

                        IDataDTO dataDTO = (IDataDTO)DTOFactory.Instance.Create(DTOType.DataDTO);
                        dataDTO.QuestionDetail = questionDTO;
                        dataDTO.TagDetail      = tagName;
                        dataDTO.UserDetail     = userDTO;

                        listOfQuestions.Add(dataDTO);
                    }
                }

                return(listOfQuestions);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Method to search question with given tag
        /// </summary>
        /// <param name="tagDTO"></param>
        /// <returns></returns>
        public List <IQuestionDTO> SearchQuestion(ITagsDTO tagDTO)
        {
            using (var context = new BufferOverflowDBEntities())
            {
                var questionIds = context.TagRelation.Where(t => t.Id == tagDTO.Id).ToList();
                List <IQuestionDTO> listOfQuestions = null;

                if (questionIds != null)
                {
                    foreach (var question in questionIds)
                    {
                        var          questionEntity = context.Questions.SingleOrDefault(q => q.Id == question.QuestionId);
                        IQuestionDTO questionDTO    = (IQuestionDTO)DTOFactory.Instance.Create(DTOType.QuestionDTO);
                        EntityConverter.FillDTOFromEntity(questionEntity, questionDTO);
                        listOfQuestions.Add(questionDTO);
                    }
                }

                return(listOfQuestions);
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Method get all tags in table
        /// </summary>
        /// <returns></returns>
        public List <ITagsDTO> GetTags()
        {
            using (var context = new BufferOverflowDBEntities())
            {
                var tagsEntity = context.Tags.ToList();

                List <ITagsDTO> listOfTags = null;

                if (tagsEntity != null)
                {
                    foreach (var tags in tagsEntity)
                    {
                        ITagsDTO tagsDTO = (ITagsDTO)DTOFactory.Instance.Create(DTOType.TagsDTO);
                        EntityConverter.FillDTOFromEntity(tagsEntity, tagsDTO);
                        listOfTags.Add(tagsDTO);
                    }
                }

                return(listOfTags);
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Method to get question detail
        /// </summary>
        /// <param name="questionDTO"></param>
        /// <returns></returns>
        public IDataDTO Details(IQuestionDTO questionDTO)
        {
            using (var context = new BufferOverflowDBEntities())
            {
                IDataDTO dataDTO        = (IDataDTO)DTOFactory.Instance.Create(DTOType.DataDTO);
                var      questionDetail = context.Questions.SingleOrDefault(q => q.Id == questionDTO.Id);

                if (questionDetail != null)
                {
                    dataDTO.QuestionDetail = (IQuestionDTO)DTOFactory.Instance.Create(DTOType.QuestionDTO);
                    EntityConverter.FillDTOFromEntity(questionDetail, dataDTO.QuestionDetail);

                    // Geting Question tags
                    var             tagRelationEntity = context.TagRelation.Where(t => t.QuestionId == questionDetail.Id).ToList();
                    List <ITagsDTO> tags = new List <ITagsDTO>();
                    foreach (var tag in tagRelationEntity)
                    {
                        var      tagEntity = context.Tags.SingleOrDefault(t => t.Id == tag.TagId);
                        ITagsDTO tagsDTO   = (ITagsDTO)DTOFactory.Instance.Create(DTOType.TagsDTO);
                        EntityConverter.FillDTOFromEntity(tagEntity, tagsDTO);
                        tags.Add(tagsDTO);
                    }
                    dataDTO.TagDetail = tags;

                    // Getting User Detail
                    var userEntity = context.User.SingleOrDefault(u => u.Id == questionDetail.UserId);
                    dataDTO.UserDetail = (IUserDTO)DTOFactory.Instance.Create(DTOType.UserDTO);
                    EntityConverter.FillDTOFromEntity(userEntity, dataDTO.UserDetail);
                }
                else
                {
                    dataDTO.QuestionDetail.Id = 0;
                }

                return((dataDTO.QuestionDetail.Id != 0) ? dataDTO : null);
            }
        }
Esempio n. 8
0
        public OperationResult <List <IQuestionDTO> > SearchQuestion(ITagsDTO tagDTO)
        {
            ITagBDC userBDC = (ITagBDC)BDCFactory.Instance.Create(BDCType.TagBDC);

            return(userBDC.SearchQuestion(tagDTO));
        }