Esempio n. 1
0
        /// <summary>
        /// Method to delete answer
        /// </summary>
        /// <param name="answerDTO"></param>
        /// <returns></returns>
        public IAnswerDTO Delete(IAnswerDTO answerDTO)
        {
            using (var context = new BufferOverflowDBEntities())
            {
                var deleteAnswer = context.Answers
                                   .SingleOrDefault(a => a.Id == answerDTO.Id);

                if (deleteAnswer != null)
                {
                    // Delete Vote
                    var deleteVote = context.Votes.Where(v => v.AnswerId == answerDTO.Id).ToList();
                    foreach (var vote in deleteVote)
                    {
                        context.Votes.Remove(vote);
                        context.SaveChanges();
                    }

                    // Delete Answer
                    var answer = context.Answers.Remove(deleteAnswer);
                    context.SaveChanges();
                    var question = context.Questions.SingleOrDefault(q => q.Id == answer.QuestionId);
                    question.AnswerCount--;
                    context.SaveChanges();
                    EntityConverter.FillDTOFromEntity(answer, answerDTO);
                }
                return(answerDTO);
            }
        }
Esempio n. 2
0
        public OperationResult <IAnswerDTO> Edit(IAnswerDTO answerDTO)
        {
            OperationResult <IAnswerDTO> retVal = null;

            try
            {
                IAnswerDAC answerDAC = (IAnswerDAC)DACFactory.Instance.Create(DACType.AnswerDAC);
                IAnswerDTO resultDTO = answerDAC.Edit(answerDTO);
                if (resultDTO != null)
                {
                    retVal = OperationResult <IAnswerDTO> .CreateSuccessResult(resultDTO);
                }
                else
                {
                    retVal = OperationResult <IAnswerDTO> .CreateFailureResult("Failed to edit!");
                }
            }
            catch (DACException dacEx)
            {
                retVal = OperationResult <IAnswerDTO> .CreateErrorResult(dacEx.Message, dacEx.StackTrace);
            }
            catch (Exception ex)
            {
                ExceptionManager.HandleException(ex);
                retVal = OperationResult <IAnswerDTO> .CreateErrorResult(ex.Message, ex.StackTrace);
            }

            return(retVal);
        }
Esempio n. 3
0
        public IHttpActionResult Create([FromBody] Answers answer)
        {
            answer.Created = DateTime.Now;
            IAnswerDTO answerDTO = (IAnswerDTO)DTOFactory.Instance.Create(DTOType.AnswerDTO);

            EntityConverter.FillDTOFromEntity(answer, answerDTO);

            IAnswerFacade answerFacade          = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade);
            OperationResult <IAnswerDTO> result = answerFacade.Create(answerDTO);

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

            if (result.IsValid())
            {
                //Answers answerEntity = new Answers();
                EntityConverter.FillEntityFromDTO(result.Data, answer);
                string success = JsonConvert.SerializeObject(new { success = true, data = answer });
                return(Ok(success));
            }

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

            return(BadRequest(jsonObj));
        }
Esempio n. 4
0
        public IHttpActionResult Delete(int id)
        {
            IAnswerDTO answer = (IAnswerDTO)DTOFactory.Instance.Create(DTOType.AnswerDTO);

            answer.Id = id;
            IAnswerFacade answerFacade          = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade);
            OperationResult <IAnswerDTO> result = answerFacade.Delete(answer);

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

            if (result.IsValid())
            {
                Answers answerModel = new Answers();
                EntityConverter.FillEntityFromDTO(result.Data, answerModel);
                string success = JsonConvert.SerializeObject(new { success = true, data = answerModel });
                return(Ok(success));
            }
            string jsonObj = JsonConvert.SerializeObject(new { success = false, data = result.Message });

            return(BadRequest(jsonObj));
        }
Esempio n. 5
0
        public List <IDataDTO> GetAnswers(IAnswerDTO answerDTO)
        {
            using (var context = new BufferOverflowDBEntities())
            {
                List <IDataDTO> listOfAnswers    = null;
                var             answerEntityList = context.Answers.Where(a => a.QuestionId == answerDTO.QuestionId).ToList();

                if (answerEntityList != null)
                {
                    listOfAnswers = new List <IDataDTO>();
                    foreach (var answerEntity in answerEntityList)
                    {
                        IAnswerDTO ansDTO = (IAnswerDTO)DTOFactory.Instance.Create(DTOType.AnswerDTO);
                        EntityConverter.FillDTOFromEntity(answerEntity, ansDTO);

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

                        // Getting  votes
                        var      voteEntity = context.Votes.SingleOrDefault(v => v.UserId == userEntity.Id && v.AnswerId == answerEntity.Id);
                        IVoteDTO voteDTO    = (IVoteDTO)DTOFactory.Instance.Create(DTOType.VoteDTO);
                        if (voteEntity != null)
                        {
                            EntityConverter.FillDTOFromEntity(voteEntity, voteDTO);
                        }
                        else
                        {
                            voteDTO.Vote = 0;
                        }

                        var countUp   = context.Votes.Where(c => c.Vote == 1 && c.AnswerId == voteDTO.AnswerId).Count();
                        var countDown = context.Votes.Where(c => c.Vote == 2 && c.AnswerId == voteDTO.AnswerId).Count();

                        int totalVotes = countUp - countDown;

                        IDataDTO dataDTO = (IDataDTO)DTOFactory.Instance.Create(DTOType.DataDTO);
                        dataDTO.AnswerDetail = ansDTO;
                        dataDTO.UserDetail   = userDTO;
                        dataDTO.VoteDetail   = voteDTO;
                        dataDTO.TotalVote    = totalVotes;
                        listOfAnswers.Add(dataDTO);
                    }
                }
                Console.WriteLine("Hello hi " + listOfAnswers[0].TotalVote);
                return(listOfAnswers);
            }
        }
Esempio n. 6
0
        public IAnswerDTO Edit(IAnswerDTO answerDTO)
        {
            using (var context = new BufferOverflowDBEntities())
            {
                var answerEntity = context.Answers.SingleOrDefault(a => a.Id == answerDTO.Id);

                if (answerEntity != null)
                {
                    EntityConverter.FillEntityFromDTO(answerDTO, answerEntity);
                }

                return(answerDTO);
            }
        }
Esempio n. 7
0
        public IHttpActionResult Edit([FromBody] IAnswerDTO answer)
        {
            answer.Created = DateTime.Now;
            IAnswerFacade answerFacade          = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade);
            OperationResult <IAnswerDTO> result = answerFacade.Edit(answer);

            if (result.ResultType == OperationResultType.Failure)
            {
                return(BadRequest(result.Message));
            }

            if (result.IsValid())
            {
                return(Ok(result.Data));
            }
            return(BadRequest(result.Message));
        }
Esempio n. 8
0
        /// <summary>
        /// Method to create answer
        /// </summary>
        /// <param name="answerDTO"></param>
        /// <returns></returns>
        public IAnswerDTO Create(IAnswerDTO answerDTO)
        {
            using (var context = new BufferOverflowDBEntities())
            {
                Answers answerEntity = new Answers();
                EntityConverter.FillEntityFromDTO(answerDTO, answerEntity);

                var answer = context.Answers.Add(answerEntity);
                context.SaveChanges();

                if (answer != null)
                {
                    var question = context.Questions.SingleOrDefault(q => q.Id == answer.QuestionId);
                    question.AnswerCount++;
                    context.SaveChanges();
                    EntityConverter.FillDTOFromEntity(answer, answerDTO);
                }

                return((answerDTO.Id != 0) ? answerDTO : null);;
            }
        }
Esempio n. 9
0
        public IHttpActionResult GetAnswers([FromUri] int questionId)
        {
            IAnswerDTO answer = (IAnswerDTO)DTOFactory.Instance.Create(DTOType.AnswerDTO);

            answer.QuestionId = questionId;
            IAnswerFacade answerFacade = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade);
            OperationResult <List <IDataDTO> > result = answerFacade.GetAnswers(answer);

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

            if (result.IsValid())
            {
                List <Data> dataList = new List <Data>();

                foreach (var dataDTO in result.Data)
                {
                    Data data = new Data();

                    EntityConverter.FillEntityFromDTO(dataDTO.AnswerDetail, data.AnswerDetail);

                    EntityConverter.FillEntityFromDTO(dataDTO.UserDetail, data.UserDetail);

                    EntityConverter.FillEntityFromDTO(dataDTO.VoteDetail, data.VoteDetail);

                    data.TotalVote = dataDTO.TotalVote;

                    dataList.Add(data);
                }
                string success = JsonConvert.SerializeObject(new { success = true, data = dataList });
                return(Ok(success));
            }

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

            return(BadRequest(jsonObj));
        }
Esempio n. 10
0
        public OperationResult <List <IDataDTO> > GetAnswers(IAnswerDTO answerDTO)
        {
            IAnswerBDC answerBDC = (IAnswerBDC)BDCFactory.Instance.Create(BDCType.AnswerBDC);

            return(answerBDC.GetAnswers(answerDTO));
        }
Esempio n. 11
0
        public OperationResult <IAnswerDTO> Edit(IAnswerDTO answerDTO)
        {
            IAnswerBDC answerBDC = (IAnswerBDC)BDCFactory.Instance.Create(BDCType.AnswerBDC);

            return(answerBDC.Edit(answerDTO));
        }