Esempio n. 1
0
 private static TipoDecisionRowViewModel ConvertToTipoDecisionRowViewModel(this TipoDecision decision)
 {
     return(new TipoDecisionRowViewModel()
     {
         Decision = decision.Decision,
         TipoDecisionId = decision.TipoDecisionId,
         TipoEtapaCandidaturaId = decision.TipoEtapaCandidaturaId,
     });
 }
        public GenerateBitacoraResponse GenerateBitacoraCambioEstadoCandidatura(int candidaturaId, int estadoAnteriorId, int estadoNuevoId, int etapaAnteriorId, int etapaNuevaId, int?decisionId = null)
        {
            var response = new GenerateBitacoraResponse()
            {
                IsValid = true
            };

            try
            {
                var userInfo      = (UsuarioRolPermisoViewModel)HttpContext.Current.Session["Usuario"];
                var nCandidaturas = _candidaturaRepository.CountByCriteria(x => x.CandidaturaId == candidaturaId);

                var          estadoAnterior = _tipoEstadoCandidaturaRepository.GetOne(x => x.TipoEstadoCandidaturaId == estadoAnteriorId);
                var          estadoNuevo    = _tipoEstadoCandidaturaRepository.GetOne(x => x.TipoEstadoCandidaturaId == estadoNuevoId);
                var          etapaAnterior  = _tipoEtapaCandidaturaRepository.GetOne(x => x.TipoEtapaCandidaturaId == etapaAnteriorId);
                var          etapaNueva     = _tipoEtapaCandidaturaRepository.GetOne(x => x.TipoEtapaCandidaturaId == etapaNuevaId);
                TipoDecision decision       = null;
                if (decisionId.HasValue)
                {
                    decision = _tipoDecisionRepository.GetOne(x => x.TipoDecisionId == decisionId.Value);
                }

                if ((userInfo == null) || (nCandidaturas != 1) ||
                    (estadoAnterior == null) || (estadoNuevo == null) ||
                    (etapaAnterior == null) || (etapaNueva == null))
                {
                    response.IsValid      = false;
                    response.ErrorMessage = ERROR_MESSAGE;
                    return(response);
                }

                var str = new StringBuilder();
                str.AppendLine(string.Format("La candidatura con referencia {0} ha pasado del estado '{1}' y etapa '{2}' a estado '{3}' y etapa '{4}'.",
                                             candidaturaId, estadoAnterior.EstadoCandidatura, etapaAnterior.EtapaCandidatura, estadoNuevo.EstadoCandidatura, etapaNueva.EtapaCandidatura));

                str.Append(string.Format("Decision tomada por el usuario: '{0}' en la fecha: '{1}'", userInfo.Usuario, DateTime.Now));

                if (decision != null)
                {
                    str.Append(string.Format(" ==> '{0}'.", decision.Decision));
                }

                var message     = str.ToString();
                var newBitacora = new Bitacora()
                {
                    CandidaturaId    = candidaturaId,
                    TipoBitacora     = (int)TipoBitacoraEnum.CambioEstado,
                    Observaciones    = "",
                    MensajeSistema   = message,
                    EstadoAnteriorId = estadoAnteriorId,
                    EtapaAnteriorId  = etapaAnteriorId,
                    EstadoNuevoId    = estadoNuevoId,
                    EtapaNuevaId     = etapaNuevaId,
                    IsActivo         = true,
                    CreatedBy        = userInfo.UsuarioId,
                    Created          = DateTime.Now,
                    Revertible       = true,
                };

                _bitacoraRepository.Create(newBitacora);
            }
            catch
            {
                response.IsValid      = false;
                response.ErrorMessage = ERROR_MESSAGE;
            }

            return(response);
        }