示例#1
0
        private void MuestraPreview(InformacionConsulta datos)
        {
            try
            {
                IdInformacionconsulta = datos.Id;

                TextPreview.InnerHtml  = datos.InformacionConsultaDatos.First().Datos;
                rptArchivos.DataSource = datos.InformacionConsultaDocumentos;
                rptArchivos.DataBind();
                int idUsuario = 0;
                if (Session["UserData"] != null)
                {
                    idUsuario = ((Usuario)Session["UserData"]).Id;
                    InformacionConsultaRate rate = datos.InformacionConsultaRate.SingleOrDefault(s => s.IdUsuario == idUsuario);
                    if (rate != null)
                    {
                        MeGusta = rate.MeGusta;
                    }
                    divEvaluacion.Visible = MuestraEvaluacion;
                }
                else
                {
                    divEvaluacion.Visible = false;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
示例#2
0
        protected void btnGuardar_OnClick(object sender, EventArgs e)
        {
            try
            {
                if (ValidaCaptura())
                {
                    InformacionConsulta informacion = ObtenerInformacionCapturada();
                    List <HelperFiles>  lstArchivos = (List <HelperFiles>)Session["selectedFiles"];
                    if (EsAlta)
                    {
                        informacion = _servicioInformacionConsulta.GuardarInformacionConsulta(informacion, lstArchivos.Select(s => s.NombreArchivo).ToList());
                        RenombraArchivos(lstArchivos.Select(s => s.NombreArchivo).ToList(), informacion.Id);
                    }
                    else
                    {
                        informacion = _servicioInformacionConsulta.ActualizarInformacionConsulta(IdInformacionConsulta, informacion, lstArchivos.Select(s => s.NombreArchivo).ToList());
                    }

                    LimpiarCampos();
                    if (OnAceptarModal != null)
                    {
                        OnAceptarModal();
                    }
                }
            }
            catch (Exception ex)
            {
                if (_lstError == null)
                {
                    _lstError = new List <string>();
                }
                _lstError.Add(ex.Message);
                AlertaGeneral = _lstError;
            }
        }
示例#3
0
        private InformacionConsulta ObtenerInformacionCapturada()
        {
            InformacionConsulta result;

            try
            {
                result = new InformacionConsulta
                {
                    Descripcion                   = txtDescripcion.Text.Trim(),
                    Habilitado                    = true,
                    IdTipoInfConsulta             = IdTipoInformacion,
                    IdUsuarioAlta                 = ((Usuario)Session["UserData"]).Id,
                    InformacionConsultaDatos      = new List <InformacionConsultaDatos>(),
                    InformacionConsultaDocumentos = new List <InformacionConsultaDocumentos>()
                };

                InformacionConsultaDatos datos = new InformacionConsultaDatos
                {
                    Datos      = txtSummerEditor.Text,
                    Busqueda   = txtBusqueda.Text.Trim().ToUpper(),
                    Tags       = txtTags.Text.Trim().ToUpper(),
                    Habilitado = true
                };
                result.InformacionConsultaDatos.Add(datos);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(result);
        }
示例#4
0
        public void ActualizarInformacionConsulta(int idInformacionConsulta, InformacionConsulta informacion)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.LazyLoadingEnabled = true;
                InformacionConsulta info = db.InformacionConsulta.SingleOrDefault(s => s.Id == idInformacionConsulta);
                if (info == null)
                {
                    return;
                }
                info.Descripcion       = informacion.Descripcion.Trim().ToUpper();
                info.IdTipoInfConsulta = informacion.IdTipoInfConsulta;
                info.IdTipoDocumento   = informacion.IdTipoDocumento;
                //TODO: Cambiar habilitado por el embebido
                info.Habilitado = true;
                switch (informacion.IdTipoInfConsulta)
                {
                case (int)BusinessVariables.EnumTiposInformacionConsulta.EditorDeContenido:
                    for (int i = 0; i < info.InformacionConsultaDatos.Count; i++)
                    {
                        info.InformacionConsultaDatos[i].Descripcion = informacion.InformacionConsultaDatos[i].Descripcion;
                    }
                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.Documento:
                    for (int i = 0; i < info.InformacionConsultaDatos.Count; i++)
                    {
                        info.InformacionConsultaDatos[i].Descripcion = informacion.InformacionConsultaDatos[i].Descripcion;
                    }
                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.PaginaHtml:
                    for (int i = 0; i < info.InformacionConsultaDatos.Count; i++)
                    {
                        if (!informacion.InformacionConsultaDatos.First().Descripcion.StartsWith("http://"))
                        {
                            info.InformacionConsultaDatos.First().Descripcion = "http://" + informacion.InformacionConsultaDatos.First().Descripcion;
                        }
                    }
                    break;

                default:
                    throw new Exception("Seleccione un tipo de información");
                }

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
示例#5
0
 public void ActualizarInformacionConsulta(int idInformacionConsulta, InformacionConsulta informacion)
 {
     try
     {
         using (BusinessInformacionConsulta negocio = new BusinessInformacionConsulta())
         {
             negocio.ActualizarInformacionConsulta(idInformacionConsulta, informacion);
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
示例#6
0
 public void GuardarInformacionConsulta(InformacionConsulta informacion)
 {
     try
     {
         using (BusinessInformacionConsulta negocio = new BusinessInformacionConsulta())
         {
             negocio.GuardarInformacionConsulta(informacion);
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
示例#7
0
 private void MuestraPreview(InformacionConsulta datos)
 {
     try
     {
         lblTitle.Text          = datos.Descripcion;
         TextPreview.InnerHtml  = datos.InformacionConsultaDatos.First().Datos;
         rptArchivos.DataSource = Session["selectedFiles"];
         rptArchivos.DataBind();
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
示例#8
0
 public InformacionConsulta GuardarInformacionConsulta(InformacionConsulta informacion, List <string> documentosDescarga)
 {
     try
     {
         using (BusinessInformacionConsulta negocio = new BusinessInformacionConsulta())
         {
             return(negocio.GuardarInformacionConsulta(informacion, documentosDescarga));
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
示例#9
0
        public void GuardarInformacionConsulta(InformacionConsulta informacion)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                informacion.Descripcion = informacion.Descripcion.Trim().ToUpper();
                switch (informacion.IdTipoInfConsulta)
                {
                case (int)BusinessVariables.EnumTiposInformacionConsulta.EditorDeContenido:

                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.Documento:

                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.PaginaHtml:
                    if (!informacion.InformacionConsultaDatos.First().Descripcion.StartsWith("http://"))
                    {
                        informacion.InformacionConsultaDatos.First().Descripcion = "http://" + informacion.InformacionConsultaDatos.First().Descripcion;
                    }
                    break;

                default:
                    throw new Exception("Seleccione un tipo de información");
                }
                //TODO: Cambiar habilitado por el embebido
                informacion.Habilitado = true;
                if (informacion.Id == 0)
                {
                    db.InformacionConsulta.AddObject(informacion);
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
示例#10
0
        public InformacionConsulta GuardarInformacionConsulta(InformacionConsulta informacion, List <string> documentosDescarga)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                if (db.InformacionConsulta.Any(a => a.Descripcion == informacion.Descripcion))
                {
                    throw new Exception("Este Artículo ya existe.");
                }
                informacion.Descripcion = informacion.Descripcion.Trim();
                informacion.Habilitado  = true;
                informacion.FechaAlta   = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                if (informacion.Id == 0)
                {
                    db.InformacionConsulta.AddObject(informacion);
                }
                db.SaveChanges();
                informacion = db.InformacionConsulta.Single(s => s.Id == informacion.Id);
                foreach (string s in documentosDescarga)
                {
                    informacion.InformacionConsultaDocumentos.Add(new InformacionConsultaDocumentos
                    {
                        IdTipoDocumento = ObtenerTipoDocumento(s),
                        Archivo         = informacion.Id + s,
                        FechaAlta       = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                        IdUsuarioAlta   = informacion.IdUsuarioAlta,
                    });
                }
                db.SaveChanges();

                BusinessFile.MoverTemporales(BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta, BusinessVariables.Directorios.RepositorioInformacionConsulta, documentosDescarga);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(informacion);
        }
示例#11
0
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         if (Session["PreviewAltaDataConsulta"] != null && Request.QueryString["evaluacion"] != null)
         {
             InformacionConsulta info        = (InformacionConsulta)Session["PreviewAltaDataConsulta"];
             List <HelperFiles>  lstArchivos = new List <HelperFiles>();
             foreach (InformacionConsultaDocumentos docto in info.InformacionConsultaDocumentos)
             {
                 if (!File.Exists(BusinessVariables.Directorios.RepositorioInformacionConsulta + docto.Archivo))
                 {
                     Alerta = new List <string> {
                         string.Format("El archivo {0} no esta disponible.", docto.Archivo)
                     };
                     continue;
                 }
                 HelperFiles hf = new HelperFiles
                 {
                     NombreArchivo = docto.Archivo,
                     Tamaño        = BusinessFile.ConvertirTamaño(new FileInfo(BusinessVariables.Directorios.RepositorioInformacionConsulta + docto.Archivo).Length.ToString())
                 };
                 BusinessFile.CopiarArchivoDescarga(BusinessVariables.Directorios.RepositorioInformacionConsulta, docto.Archivo, BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta);
                 lstArchivos.Add(hf);
             }
             Session["selectedFiles"] = lstArchivos;
             MuestraPreview(info);
             divEvaluacion.Visible = bool.Parse(Request.QueryString["evaluacion"]);
         }
     }
     catch (Exception ex)
     {
         if (_lstError == null)
         {
             _lstError = new List <string>();
         }
         _lstError.Add(ex.Message);
         Alerta = _lstError;
     }
 }
示例#12
0
        public void HabilitarInformacion(int idInformacion, bool habilitado)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                InformacionConsulta inf = db.InformacionConsulta.SingleOrDefault(w => w.Id == idInformacion);
                if (inf != null)
                {
                    inf.Habilitado = habilitado;
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
示例#13
0
        public InformacionConsulta ActualizarInformacionConsulta(int idInformacionConsulta, InformacionConsulta informacion, List <string> documentosDescarga)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                if (db.InformacionConsulta.Any(a => a.Descripcion == informacion.Descripcion && a.Id != idInformacionConsulta))
                {
                    throw new Exception("Este Artículo ya existe.");
                }
                db.ContextOptions.LazyLoadingEnabled = true;
                InformacionConsulta info = db.InformacionConsulta.SingleOrDefault(s => s.Id == idInformacionConsulta);
                if (info == null)
                {
                    return(null);
                }
                info.Descripcion       = informacion.Descripcion.Trim();
                info.IdUsuarioModifico = informacion.IdUsuarioAlta;
                info.FechaModificacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                info.Habilitado        = true;
                info.InformacionConsultaDatos.First().Datos      = informacion.InformacionConsultaDatos.First().Datos;
                info.InformacionConsultaDatos.First().Busqueda   = informacion.InformacionConsultaDatos.First().Busqueda;
                info.InformacionConsultaDatos.First().Tags       = informacion.InformacionConsultaDatos.First().Tags;
                info.InformacionConsultaDatos.First().Habilitado = informacion.InformacionConsultaDatos.First().Habilitado;

                List <InformacionConsultaDocumentos> documentosEliminar = new List <InformacionConsultaDocumentos>();
                List <string> archivosNuevos = new List <string>();



                foreach (InformacionConsultaDocumentos doctoExist in info.InformacionConsultaDocumentos)
                {
                    //if (!documentosDescarga.Any(a => a.Contains(doctoExist.Archivo) || (info.Id + a).Contains(doctoExist.Archivo)))
                    //{
                    documentosEliminar.Add(doctoExist);
                    //}
                }

                foreach (string doctoNuevo in documentosDescarga)
                {
                    if (!info.InformacionConsultaDocumentos.Any(a => a.Archivo == doctoNuevo))
                    {
                        info.InformacionConsultaDocumentos.Add(new InformacionConsultaDocumentos
                        {
                            Archivo         = info.Id + doctoNuevo,
                            FechaAlta       = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                            IdTipoDocumento = ObtenerTipoDocumento(doctoNuevo),
                            IdUsuarioAlta   = informacion.IdUsuarioAlta
                        });
                        archivosNuevos.Add(doctoNuevo);
                    }
                    else
                    {
                        documentosEliminar.RemoveAll(r => r.Archivo == doctoNuevo);
                    }
                }

                foreach (InformacionConsultaDocumentos documentos in documentosEliminar)
                {
                    db.InformacionConsultaDocumentos.DeleteObject(documentos);
                }



                db.SaveChanges();
                foreach (InformacionConsultaDocumentos documentos in documentosEliminar)
                {
                    BusinessFile.EliminarArchivo(BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta, documentos.Archivo);
                    BusinessFile.EliminarArchivo(BusinessVariables.Directorios.RepositorioInformacionConsulta, documentos.Archivo);
                }

                BusinessFile.MoverTemporales(BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta, BusinessVariables.Directorios.RepositorioInformacionConsulta, documentosDescarga);
                BusinessFile.RenombrarArchivosConsulta(archivosNuevos, info.Id);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(informacion);
        }
示例#14
0
        protected void btnGuardar_OnClick(object sender, EventArgs e)
        {
            try
            {
                InformacionConsulta informacion = new InformacionConsulta
                {
                    Descripcion              = txtDescripcion.Text.Trim(),
                    Habilitado               = true,
                    IdTipoInfConsulta        = Convert.ToInt32(ddlTipoInformacion.SelectedValue),
                    InformacionConsultaDatos = new List <InformacionConsultaDatos>()
                };
                switch (Convert.ToInt32(ddlTipoInformacion.SelectedValue))
                {
                case (int)BusinessVariables.EnumTiposInformacionConsulta.EditorDeContenido:
                    ValidaCaptura(BusinessVariables.EnumTiposInformacionConsulta.EditorDeContenido);
                    informacion.InformacionConsultaDatos.Add(new InformacionConsultaDatos
                    {
                        Descripcion = txtEditor.Text,
                        Orden       = 1
                    });
                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.Documento:
                    ValidaCaptura(BusinessVariables.EnumTiposInformacionConsulta.Documento);
                    informacion.IdTipoDocumento = Convert.ToInt32(ddlTipoDocumento.SelectedValue);
                    informacion.InformacionConsultaDatos.Add(new InformacionConsultaDatos
                    {
                        Descripcion = afuArchivo.FileName,
                        Orden       = 1
                    });
                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.PaginaHtml:
                    ValidaCaptura(BusinessVariables.EnumTiposInformacionConsulta.PaginaHtml);
                    informacion.InformacionConsultaDatos.Add(new InformacionConsultaDatos
                    {
                        Descripcion = txtDescripcionUrl.Text.Trim(),
                        Orden       = 1
                    });
                    break;

                default:
                    throw new Exception("Seleccione un tipo de información");
                }
                if (EsAlta)
                {
                    _servicioInformacionConsulta.GuardarInformacionConsulta(informacion);
                }
                else
                {
                    _servicioInformacionConsulta.ActualizarInformacionConsulta(IdInformacionConsulta, informacion);
                }
                LimpiarCampos();
                if (OnAceptarModal != null)
                {
                    OnAceptarModal();
                }
            }
            catch (Exception ex)
            {
                if (_lstError == null)
                {
                    _lstError = new List <string>();
                }
                _lstError.Add(ex.Message);
                AlertaGeneral = _lstError;
            }
        }
示例#15
0
        protected void btnInformacion_OnClick(object sender, EventArgs e)
        {
            try
            {
                Button btn = (Button)sender;
                if (btn != null)
                {
                    InformacionConsulta ic = _servicioInformacionConsulta.ObtenerInformacionConsultaById(Convert.ToInt32(btn.CommandArgument));
                    switch (ic.IdTipoInfConsulta)
                    {
                    case (int)BusinessVariables.EnumTiposInformacionConsulta.EditorDeContenido:
                        lblContenido.Text = string.Empty;
                        foreach (InformacionConsultaDatos contenindo in ic.InformacionConsultaDatos.OrderBy(o => o.Orden))
                        {
                            lblContenido.Text += contenindo.Descripcion;
                        }
                        divPropuetario.Visible = true;
                        divInfoDocto.Visible   = false;
                        if (btn.CommandName == "0")
                        {
                            _servicioInformacionConsulta.GuardarHit(IdArbol, ((Usuario)Session["UserData"]).Id);
                            btn.CommandName = "1";
                        }
                        ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", "MostrarPopup(\"#modalMuestraInformacion\");", true);
                        break;

                    case (int)BusinessVariables.EnumTiposInformacionConsulta.Documento:
                        string nombreDocto = ic.InformacionConsultaDatos.OrderBy(o => o.Orden).Aggregate(string.Empty, (current, contenindo) => current + contenindo.Descripcion);
                        ifDoctos.Attributes.Add("src", string.Format("../General/FrmMostrarDocumento.aspx?NombreDocumento={0}&TipoDocumento={1}", nombreDocto, ic.IdTipoDocumento));
                        divPropuetario.Visible = false;
                        divInfoDocto.Visible   = true;
                        if (btn.CommandName == "0")
                        {
                            _servicioInformacionConsulta.GuardarHit(IdArbol, ((Usuario)Session["UserData"]).Id);
                            btn.CommandName = "1";
                        }
                        ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", "MostrarPopup(\"#modalMuestraInformacion\");", true);
                        break;

                    case (int)BusinessVariables.EnumTiposInformacionConsulta.PaginaHtml:
                        string url = ic.InformacionConsultaDatos.OrderBy(o => o.Orden).Aggregate(string.Empty, (current, contenindo) => current + contenindo.Descripcion);
                        if (btn.CommandName == "0")
                        {
                            _servicioInformacionConsulta.GuardarHit(IdArbol, ((Usuario)Session["UserData"]).Id);
                            btn.CommandName = "1";
                        }
                        ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", "OpenWindow(\"" + url + "\");", true);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                if (_lstError == null)
                {
                    _lstError = new List <string>();
                }
                _lstError.Add(ex.Message);
                AlertaGeneral = _lstError;
            }
        }
示例#16
0
        public void ActualizardArbol(int idArbolAcceso, ArbolAcceso arbolAccesoActualizar, string descripcion)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.LazyLoadingEnabled = true;
                ArbolAcceso arbol = db.ArbolAcceso.SingleOrDefault(s => s.Id == idArbolAcceso);
                if (arbol != null)
                {
                    List <GrupoUsuarioInventarioArbol> gpoToRemove = arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Where(gpo => !arbolAccesoActualizar.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Any(a => a.IdGrupoUsuario == gpo.IdGrupoUsuario && a.IdRol == gpo.IdRol && a.IdSubGrupoUsuario == gpo.IdSubGrupoUsuario)).ToList();

                    foreach (GrupoUsuarioInventarioArbol gpo in gpoToRemove)
                    {
                        db.GrupoUsuarioInventarioArbol.DeleteObject(gpo);
                    }

                    foreach (GrupoUsuarioInventarioArbol gpo in arbolAccesoActualizar.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Where(gpo => !arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Any(a => a.IdGrupoUsuario == gpo.IdGrupoUsuario && a.IdRol == gpo.IdRol && a.IdSubGrupoUsuario == gpo.IdSubGrupoUsuario)))
                    {
                        arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Add(gpo);
                    }

                    foreach (InventarioInfConsulta infConsulta in arbolAccesoActualizar.InventarioArbolAcceso.First().InventarioInfConsulta)
                    {
                        InformacionConsulta info = db.InformacionConsulta.Single(s => s.Id == infConsulta.IdInfConsulta);
                        arbol.InventarioArbolAcceso.First().InventarioInfConsulta.Single(w => w.InformacionConsulta.IdTipoInfConsulta == info.IdTipoInfConsulta).IdInfConsulta = infConsulta.IdInfConsulta;
                    }

                    if (arbol.IdTipoUsuario != (int)BusinessVariables.EnumTipoArbol.Consultas)
                    {
                        arbol.InventarioArbolAcceso.First().Sla.Dias =
                            arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Dias;
                        arbol.InventarioArbolAcceso.First().Sla.Horas =
                            arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Horas;
                        arbol.InventarioArbolAcceso.First().Sla.Minutos =
                            arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Minutos;
                        arbol.InventarioArbolAcceso.First().Sla.Segundos =
                            arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Segundos;
                        arbol.InventarioArbolAcceso.First().Sla.TiempoHoraProceso =
                            arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.TiempoHoraProceso;
                        arbol.InventarioArbolAcceso.First().Sla.Detallado =
                            arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Detallado;
                        List <SlaDetalle> slaDetalleRemove = new List <SlaDetalle>();
                        foreach (SlaDetalle detRemove in arbol.InventarioArbolAcceso.First().Sla.SlaDetalle)
                        {
                        }
                        if (arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Detallado)
                        {
                            if (arbol.InventarioArbolAcceso.First().Sla.SlaDetalle == null)
                            {
                                arbol.InventarioArbolAcceso.First().Sla.SlaDetalle = new List <SlaDetalle>();
                            }
                        }

                        if (arbol.TiempoInformeArbol.Count > 0)
                        {
                            foreach (TiempoInformeArbol informeArbol in arbolAccesoActualizar.TiempoInformeArbol.Distinct())
                            {
                                switch (informeArbol.IdTipoGrupo)
                                {
                                case (int)BusinessVariables.EnumTiposGrupos.ResponsableDeInformaciónPublicada:
                                    TiempoInformeArbol tInformeMto = db.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo);
                                    tInformeMto = arbol.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo);
                                    if (tInformeMto != null)
                                    {
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Dias               = informeArbol.Dias;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Horas              = informeArbol.Horas;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Minutos            = informeArbol.Minutos;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Segundos           = informeArbol.Segundos;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).IdTipoNotificacion = informeArbol.IdTipoNotificacion;
                                    }
                                    break;

                                case (int)BusinessVariables.EnumTiposGrupos.ResponsableDeDesarrollo:
                                    TiempoInformeArbol tInformeDev = db.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo);
                                    tInformeDev = arbol.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo);
                                    if (tInformeDev != null)
                                    {
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Dias               = informeArbol.Dias;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Horas              = informeArbol.Horas;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Minutos            = informeArbol.Minutos;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Segundos           = informeArbol.Segundos;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).IdTipoNotificacion = informeArbol.IdTipoNotificacion;
                                    }
                                    break;

                                case (int)BusinessVariables.EnumTiposGrupos.EspecialDeConsulta:
                                    TiempoInformeArbol tInformeCons = db.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo);
                                    tInformeCons = arbol.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo);
                                    if (tInformeCons != null)
                                    {
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Dias               = informeArbol.Dias;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Horas              = informeArbol.Horas;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Minutos            = informeArbol.Minutos;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Segundos           = informeArbol.Segundos;
                                        arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).IdTipoNotificacion = informeArbol.IdTipoNotificacion;
                                    }
                                    break;
                                }
                            }
                        }
                    }

                    arbol.IdImpacto = arbolAccesoActualizar.IdImpacto;
                    arbol.InventarioArbolAcceso.First().IdMascara  = arbolAccesoActualizar.InventarioArbolAcceso.First().IdMascara;
                    arbol.InventarioArbolAcceso.First().IdEncuesta = arbolAccesoActualizar.InventarioArbolAcceso.First().IdEncuesta;

                    if (arbol.Nivel7 != null)
                    {
                        arbol.Nivel7.Descripcion = descripcion.Trim().ToUpper();
                    }
                    else if (arbol.Nivel6 != null)
                    {
                        arbol.Nivel6.Descripcion = descripcion.Trim().ToUpper();
                    }
                    else if (arbol.Nivel5 != null)
                    {
                        arbol.Nivel5.Descripcion = descripcion.Trim().ToUpper();
                    }
                    else if (arbol.Nivel4 != null)
                    {
                        arbol.Nivel4.Descripcion = descripcion.Trim().ToUpper();
                    }
                    else if (arbol.Nivel3 != null)
                    {
                        arbol.Nivel3.Descripcion = descripcion.Trim().ToUpper();
                    }
                    else if (arbol.Nivel2 != null)
                    {
                        arbol.Nivel2.Descripcion = descripcion.Trim().ToUpper();
                    }
                    else if (arbol.Nivel1 != null)
                    {
                        arbol.Nivel1.Descripcion = descripcion.Trim().ToUpper();
                    }

                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }