private List <E_NECESIDADES_CAPACITACION> ObtenerSeleccionados(E_SELECTOR_NECESIDADES pSeleccionados)
        {
            List <E_NECESIDADES_CAPACITACION> vListaSeleccionados = new List <E_NECESIDADES_CAPACITACION>();

            int vIdCompetencia;
            int vIdEmpleado;

            int vIndexCompetencia;
            int vIndexEmpleado;

            //string[] vListaCE = vListaEmpleadoCompetencia.Split(',');

            foreach (E_SELECTOR_SELECCION item in pSeleccionados.oSeleccion)
            {
                if (item.control != "")
                {
                    vIndexCompetencia = item.control.IndexOf('C');
                    vIndexEmpleado    = item.control.IndexOf("E");

                    vIdCompetencia = int.Parse(item.control.Substring(vIndexCompetencia + 1, vIndexEmpleado - 1));
                    vIdEmpleado    = int.Parse(item.control.Substring(vIndexEmpleado + 1, item.control.Length - (vIndexEmpleado + 1)));

                    E_NECESIDADES_CAPACITACION oSel = vLstDnc.Where(t => t.ID_EMPLEADO == vIdEmpleado & t.ID_COMPETENCIA == vIdCompetencia).FirstOrDefault();

                    if (oSel != null)
                    {
                        vListaSeleccionados.Add(oSel);
                    }
                    else
                    {
                        E_NECESIDADES_CAPACITACION oNecesidadNueva = new E_NECESIDADES_CAPACITACION();

                        oNecesidadNueva.ID_COMPETENCIA               = vIdCompetencia;
                        oNecesidadNueva.ID_EMPLEADO                  = vIdEmpleado;
                        oNecesidadNueva.PR_RESULTADO                 = 0;
                        oNecesidadNueva.CL_CLASIFICACION             = "";
                        oNecesidadNueva.CL_COLOR                     = "";
                        oNecesidadNueva.CL_DEPARTAMENTO              = "";
                        oNecesidadNueva.CL_EVALUADO                  = "";
                        oNecesidadNueva.CL_PUESTO                    = "";
                        oNecesidadNueva.CL_TIPO_COMPETENCIA          = "";
                        oNecesidadNueva.DS_COMPETENCIA               = "";
                        oNecesidadNueva.ID_PERIODO                   = vIdPeriodo;
                        oNecesidadNueva.ID_PUESTO                    = 0;
                        oNecesidadNueva.NB_CLASIFICACION_COMPETENCIA = "";
                        oNecesidadNueva.NB_COMPETENCIA               = "";
                        oNecesidadNueva.NB_DEPARTAMENTO              = "";
                        oNecesidadNueva.NB_EVALUADO                  = "";
                        oNecesidadNueva.NB_PRIORIDAD                 = "ALTA";
                        oNecesidadNueva.NB_PUESTO                    = "";
                        oNecesidadNueva.NB_TIPO_COMPETENCIA          = "";


                        vListaSeleccionados.Add(oNecesidadNueva);
                    }
                }
            }

            return(vListaSeleccionados);
        }
        private void ActualizarPrograma(E_SELECTOR_NECESIDADES pSeleccionados)
        {
            vIdPrograma = pSeleccionados.idPrograma;
            List <E_NECESIDADES_CAPACITACION> vListaSeleccion = ObtenerSeleccionados(pSeleccionados);

            NecesidadesCapacitacionNegocio neg = new NecesidadesCapacitacionNegocio();

            xmlCapacitaciones = new XElement("CAPACITACIONES");

            foreach (E_NECESIDADES_CAPACITACION item in vListaSeleccion)
            {
                xmlCapacitaciones.Add(new XElement("CAPACITACION",
                                                   new XAttribute("ID_EMPLEADO", item.ID_EMPLEADO),
                                                   new XAttribute("NB_EMPLEADO", item.NB_EVALUADO),
                                                   new XAttribute("CL_EMPLEADO", item.CL_EVALUADO),
                                                   new XAttribute("CL_PUESTO", item.CL_PUESTO),
                                                   new XAttribute("NB_PUESTO", item.NB_PUESTO),
                                                   new XAttribute("NB_DEPARTAMENTO", item.NB_DEPARTAMENTO),
                                                   new XAttribute("ID_COMPETENCIA", item.ID_COMPETENCIA),
                                                   new XAttribute("NB_COMPETENCIA", item.NB_COMPETENCIA),
                                                   new XAttribute("NB_CLASIFICACION", item.CL_CLASIFICACION),
                                                   new XAttribute("NB_CATEGORIA", item.CL_TIPO_COMPETENCIA),
                                                   new XAttribute("CL_PRIORIDAD", item.NB_PRIORIDAD),
                                                   new XAttribute("PR_RESULTADO", item.PR_RESULTADO)));
            }

            E_RESULTADO res      = neg.InsertaActualizaProgramaDesdeDNC(vIdPrograma, xmlCapacitaciones.ToString(), vClUsuario, vNbPrograma);
            string      vMensaje = res.MENSAJE.Where(w => w.CL_IDIOMA.Equals(vClIdioma.ToString())).FirstOrDefault().DS_MENSAJE;

            UtilMensajes.MensajeResultadoDB(rnMensaje, vMensaje, res.CL_TIPO_ERROR);
        }
        protected void ramNecesidades_AjaxRequest(object sender, AjaxRequestEventArgs e)
        {
            string pParameter = e.Argument;
            E_SELECTOR_NECESIDADES vSeleccion = new E_SELECTOR_NECESIDADES();

            if (pParameter != null)
            {
                vSeleccion = JsonConvert.DeserializeObject <E_SELECTOR_NECESIDADES>(pParameter);

                if (vSeleccion.clTipoAccion.Equals("INSERTAR"))
                {
                    GuardarPrograma(vSeleccion);
                }
                else
                {
                    ActualizarPrograma(vSeleccion);
                }
            }
        }