public async Task <ActionResult> Crear(SolicitudViewModel solicitudVacaciones) { var solicitante = userService.ObtenerUsuarioPorId(solicitudVacaciones.Id); if (!ModelState.IsValid) { return(View(solicitudVacaciones)); } if (solicitudVacaciones.CantidadDiasSolicitados > solicitudVacaciones.SaldoDiasDisponibles) { ModelState.AddModelError("", "La cantidad de días solicitados no puede ser mayor al saldo de días disponibles."); return(View(solicitudVacaciones)); } try { var guid = Guid.NewGuid(); var rowsAffected = await solicitudService.CrearSolicitudVacaciones(solicitudVacaciones, guid); if (rowsAffected <= 0) { ModelState.AddModelError("", "Hubo un problema al tratar de agregar la solicitud. Favor intente de nuevo más tarde."); return(View(solicitudVacaciones)); } var role = roleService.ObtenerRolPorNombre("Director"); if (role.Id == solicitante.Role.Id) { solicitudVacaciones.SolicitudId = guid; await EnviarCorreo(solicitudVacaciones, solicitante); } return(RedirectToAction("Index", "Solicitud")); } catch (Exception ex) { ModelState.AddModelError("", "Hubo un problema al tratar de agregar la solicitud. Favor intente de nuevo más tarde."); return(View(solicitudVacaciones)); } }