Пример #1
0
 /// <summary>
 /// Devuelve el listado de encuestas "generales" / "on the fly".
 /// </summary>
 /// <returns></returns>
 public List<Poll> GetPollsForReport(bool instant)
 {
     PollMapper pollMapper = new PollMapper();
     List<Poll> polls = pollMapper.GetPollsForReport(instant);
     foreach (Poll poll in polls) PopulatePoll(poll);
     return polls;
 }
Пример #2
0
        /// <summary>
        /// Guarda los cambios del recurso existente.
        /// </summary>
        /// <param name="map"></param>
        /// <returns></returns>
        public bool Edit(Poll poll)
        {
            PollAnswerManager pollAnswerManager = new PollAnswerManager();
            PollQuestionManager pollQuestionManager = new PollQuestionManager();
            PollMapper pollMapper = new PollMapper();

            if (!IsValideForEdit(poll)) return false;

            //Si fue respondida, no es posible la edición.
            //Notar que a menos que se editen las preguntas, Questions estará vacío
            bool hasQuestions = poll.Questions != null && poll.Questions.Count > 0;
            if (hasQuestions && pollAnswerManager.HasAnswers(poll))
            {
                string errorDescription = "La encuesta no puede ser editada porque al menos una persona contestó.";
                log.AddLogInfo("Edit", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return false;
            }

            if (!pollMapper.Edit(poll))
            {
                string errorDescription = "No se ha podido modificar la encuesta.";
                log.AddLogCritical("Edit", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return false;
            }

            if (hasQuestions && !pollQuestionManager.Edit(poll))
            {
                AddError(pollQuestionManager.Errors);
                return false;
            }

            return true;
        }
Пример #3
0
 /// <summary>
 /// Recupera la encuesta de satisfacción (activa)
 /// </summary>
 /// <returns></returns>
 public Poll GetSatisfactionPoll()
 {
     PollQuestionManager pollQuestionManager = new PollQuestionManager();
     PollMapper pollMapper = new PollMapper();
     Poll poll = pollMapper.GetSatisfactionPoll();
     PopulatePoll(poll);
     return poll;
 }
Пример #4
0
 /// <summary>
 /// Recupera una encuesta en base a su id.
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public Poll Get(int id)
 {
     PollQuestionManager pollQuestionManager = new PollQuestionManager();
     PollMapper pollMapper = new PollMapper();
     Poll poll = pollMapper.Get(id);
     PopulatePoll(poll);
     return poll;
 }
Пример #5
0
        /// <summary>
        /// Devuelve una encuesta aleatoria válida apara ser mostrada en el sitio.
        /// </summary>
        /// <returns></returns>
        public Poll GetInstantPoll()
        {
            PollMapper pollMapper = new PollMapper();
            List<Poll> polls = pollMapper.GetInstantPolls();
            Poll poll = null;
            if (polls != null && polls.Count > 0) { 
                poll = polls[new Random().Next(0, polls.Count)];
                PopulatePoll(poll);
            }

            return poll;
        }
Пример #6
0
        /// <summary>
        /// Elimina el elemento cuyo id es pasado por parámetro.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool Delete(int id)
        {
            PollMapper pollMapper = new PollMapper();

            if (!pollMapper.Delete(id))
            {
                string errorDescription = "No se ha podido eliminar la encuesta con id " + id + ".";
                log.AddLogCritical("Delete", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return false;
            }

            return true;
        }
Пример #7
0
        /// <summary>
        /// Persiste el elemento.
        /// </summary>
        /// <param name="Poll"></param>
        /// <returns></returns>
        public bool Save(Poll poll)
        {
            if (!IsValid(poll)) return false;

            PollMapper pollMapper = new PollMapper();
            PollQuestionManager pollQuestionManager = new PollQuestionManager();

            if (!pollMapper.Save(poll))
            {
                string errorDescription = "No se ha podido guardar la encuesta.";
                log.AddLogCritical("Save", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return false;
            }

            if (!pollQuestionManager.Save(poll))
            {
                AddError(pollQuestionManager.Errors);
                return false;
            }

            return true;
        }
Пример #8
0
 public PollServiceImpl(PollMapper pollMapper)
 {
     this._pollMapper = pollMapper;
 }
Пример #9
0
 /// <summary>
 /// Recupera el listado de todos los items.
 /// </summary>
 /// <returns></returns>
 public List<Poll> Get()
 {
     PollMapper pollMapper = new PollMapper();
     return pollMapper.Get();
 }
Пример #10
0
 public AutoMapperProfile()
 {
     PollMapper.Map(this);
 }
Пример #11
0
 public VoteServiceImpl(VoteMapper voteMapper, OptionMapper optionMapper, PollMapper pollMapper)
 {
     this._voteMapper   = voteMapper;
     this._optionMapper = optionMapper;
     this._pollMapper   = pollMapper;
 }