Пример #1
0
        public OperationResult <IDataDTO> CreateVote(IVoteDTO voteDTO)
        {
            OperationResult <IDataDTO> retVal = null;

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

            return(retVal);
        }
Пример #2
0
        public IDataDTO CreateVote(IVoteDTO voteDTO)
        {
            using (var context = new BufferOverflowDBEntities())
            {
                var voteEntity = context.Votes.SingleOrDefault(v => v.UserId == voteDTO.UserId && v.AnswerId == voteDTO.AnswerId);
                //context.Votes.Where(v => v.Id == voteDTO.Id).Distinct();
                if (voteEntity == null)
                {
                    Votes vote = new Votes();
                    EntityConverter.FillEntityFromDTO(voteDTO, vote);
                    context.Votes.Add(vote);
                    context.SaveChanges();
                }
                else if (voteEntity.Vote != voteDTO.Vote)
                {
                    voteEntity.Vote = voteDTO.Vote;
                    context.SaveChanges();
                }

                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.TotalVote  = totalVotes;
                dataDTO.VoteDetail = voteDTO;

                return(dataDTO);
            }
        }
Пример #3
0
        public IHttpActionResult CreateVote([FromBody] Votes vote)
        {
            IVoteDTO votesDTO = (IVoteDTO)DTOFactory.Instance.Create(DTOType.VoteDTO);

            EntityConverter.FillDTOFromEntity(vote, votesDTO);
            IAnswerFacade answerFacade        = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade);
            OperationResult <IDataDTO> result = answerFacade.CreateVote(votesDTO);

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

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

            return(BadRequest(jsonObj));
        }
Пример #4
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);
            }
        }
Пример #5
0
        public OperationResult <IDataDTO> CreateVote(IVoteDTO voteDTO)
        {
            IAnswerBDC answerBDC = (IAnswerBDC)BDCFactory.Instance.Create(BDCType.AnswerBDC);

            return(answerBDC.CreateVote(voteDTO));
        }