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); }