private static string GetPassWordUsingId(string id)
 {
     var guidId = Guid.Parse(id);
     using (var entities = new Medics()){
         var personas = entities.Personas.FirstOrDefault(x => x.idPersona == guidId);
         return personas == null ? Notificaciones.ErrorUsuarioContrasena.Value : personas.Password;
     }
 }
        public JsonResult Get()
        {
            List<Instituciones> instituciones;
            using (var entities = new Medics()) instituciones = entities.Instituciones.ToList();

            var personasView = instituciones.Select(x => x.ToObject());
            return Json(personasView, JsonRequestBehavior.AllowGet);
        }
 public ActionResult GetDetails(Guid id)
 {
     List<Examenes> examenes;
     using (var entities = new Medics()){
         examenes = entities.Examenes.Where(x => x.IdPersona == id).ToList();
     }
     var ExamenesView = examenes.Select(x => x.ToObject());
     return Json(ExamenesView, JsonRequestBehavior.AllowGet);
 }
 public ActionResult Get()
 {
     List<Examenes> examenes;
     using (var entities = new Medics()){
         examenes = entities.Examenes.ToList();
     }
     var ExamenesView = examenes.Select(x => x.ToObject());
     return Json(ExamenesView, JsonRequestBehavior.AllowGet);
 }
 public JsonResult GetInstitucion([FromUri] string Username)
 {
     var id = 0;
     using (var entities = new Medics()){
         var administradores = entities.Administradores.FirstOrDefault(x => x.Username == Username);
         if (administradores == null) return  Json(Notificaciones.ErrorUsuario.Value, JsonRequestBehavior.AllowGet);
         if (administradores.idInstitucion != null) id = (int) administradores.idInstitucion;
     }
     return GetDetails(id);
 }
 public ActionResult Get()
 {
     List<Analisis> analisis;
     using (var entities = new Medics())
     {
         analisis = entities.Analisis.ToList();
     }
     var AnalisisView = analisis.Select( x=> x.ToObject());
     return Json(AnalisisView, JsonRequestBehavior.AllowGet);
 }
 private static string GetPassWordUsingUser(string user)
 {
     using (var entities = new Medics()){
         var personas = entities.Personas.FirstOrDefault(x => x.Username == user);
         if (personas == null){
             var admin = entities.Administradores.FirstOrDefault(x => x.Username == user);
             return admin == null ? Notificaciones.ErrorUsuarioContrasena.Value : admin.Password;
         }
         return personas.Password;
     }
 }
        public JsonResult GetDetails(int id)
        {
            Instituciones instituciones;
            using (var entities = new Medics()){
                instituciones = entities.Instituciones.FirstOrDefault(x => x.IdInstitucion == id);
            }
            if (instituciones == null) return Json(Notificaciones.ErrorUsuario.Value, JsonRequestBehavior.AllowGet);

            var personasView = instituciones.ToObject();
            return Json(personasView, JsonRequestBehavior.AllowGet);
        }
 public string Put(Guid id, [FromUri] ExamenesEditCreateModel Examene)
 {
     using (var entities = new Medics()){
         try{
             var oldExamene = entities.Examenes.FirstOrDefault( x => x.IdPersona == id && x.idAnalisis == Examene.idAnalisis && x.Fecha == Examene.Fecha);
             if (oldExamene != null) oldExamene.Update(Examene);
             entities.SaveChanges();
         }
         catch (Exception e){
             return e.Message;
         }
     }
     return Notificaciones.EdicionCorrecta.Value;
 }
 public string Delete(Guid id)
 {
     using (var entities = new Medics()){
         var persona = entities.Personas.FirstOrDefault(x => x.idPersona == id);
         if (persona == null) return Notificaciones.ErrorUsuario.Value;
         try{
             entities.Personas.DeleteObject(persona);
             entities.SaveChanges();
         }
         catch (Exception e){
             return e.Message;
         }
     }
     return Notificaciones.EliminacionCorrecta.Value;
 }
 public string Post([FromUri] ExamenesEditCreateModel examenes)
 {
     examenes.Fecha = DateTime.Now;
     Mapper.CreateMap<ExamenesEditCreateModel, Examenes>();
     var examen = Mapper.Map<ExamenesEditCreateModel, Examenes>(examenes);
     using (var entities = new Medics()){
         try{
             entities.AddToExamenes(examen);
             entities.SaveChanges();
         }
         catch (Exception e){
             return e.Message;
         }
     }
     return Notificaciones.CreacionCorrecta.Value;
 }
 public string PutResultadoAnalisis([FromUri] ResultadoAnalisisConsultaViewModel resultado)
 {
     Mapper.CreateMap <ResultadoAnalisisConsultaViewModel, ResultadoAnalisisConsulta>();
     var resultados = Mapper.Map<ResultadoAnalisisConsultaViewModel, ResultadoAnalisisConsulta>(resultado);
     resultados.FechaRealizado = DateTime.Now;
     using (var entities = new Medics()){
         try{
             entities.AddToResultadoAnalisisConsulta(resultados);
             entities.SaveChanges();
         }
         catch (Exception e){
             return e.Message;
         }
     }
     return Notificaciones.CreacionCorrecta.Value;
 }
        public string AddPaciente([FromUri] Guid idMedico, [FromUri] Guid idPaciente)
        {
            using (var entities = new Medics()){
                var medico = entities.Medicos.FirstOrDefault(x => x.idPersona == idMedico);
                var paciente = entities.Personas.FirstOrDefault(x => x.idPersona == idPaciente);

                if (medico == null || paciente == null) return Notificaciones.ErrorUsuario.Value;
                try{
                    medico.Personas1.Add(paciente);
                    entities.SaveChanges();
                }
                catch (Exception e){
                    return e.Message;
                }
            }
            return Notificaciones.AgregacionCorrecta.Value;
        }
        public string AddPariente([FromUri] Guid idPersona, [FromUri] Guid idPariente, [FromUri] String Familiar)
        {
            using (var entities = new Medics()){
                var persona = entities.Personas.FirstOrDefault(x => x.idPersona == idPersona);
                var pariente = entities.Personas.FirstOrDefault(x => x.idPersona == idPariente);

                if (persona == null || pariente == null) return Notificaciones.ErrorUsuario.Value;
                try{
                    persona.Personas2.Add(pariente);
                    pariente.Personas2.Add(persona);
                    var relacion = Tools.getFamiliaRelacion(Familiar, persona.sexo);

                    foreach (var enfermedadesDiagnostico in persona.Diagnostico.SelectMany(
                        diagnostico => diagnostico.EnfermedadesDiagnostico.Where(
                            enfermedadesDiagnostico => enfermedadesDiagnostico.Enfermedades.EsHereditaria == true))){
                                pariente.EnfermedadesHereditariasPaciente.Add(
                                    new EnfermedadesHereditariasPaciente(){
                                            Personas = persona,
                                            Enfermedades = enfermedadesDiagnostico.Enfermedades,
                                            Familiar = Familiar
                                        });
                    }

                    foreach (var enfermedadesDiagnostico in pariente.Diagnostico.SelectMany(
                        diagnostico => diagnostico.EnfermedadesDiagnostico.Where(
                            enfermedadesDiagnostico => enfermedadesDiagnostico.Enfermedades.EsHereditaria == true))){
                                persona.EnfermedadesHereditariasPaciente.Add(
                                    new EnfermedadesHereditariasPaciente(){
                                            Personas = pariente,
                                            Enfermedades = enfermedadesDiagnostico.Enfermedades,
                                            Familiar = relacion
                                        });
                    }
                    entities.SaveChanges();
                }
                catch (Exception e){
                    return e.Message;
                }

            }
            return Notificaciones.AgregacionCorrecta.Value;
        }
        public JsonResult GetDetails(Guid id)
        {
            Personas persona;
            using (var entities = new Medics()){
                persona = entities.Personas.FirstOrDefault(x => x.idPersona == id);
            }
            if (persona == null) return Json(Notificaciones.ErrorUsuario.Value, JsonRequestBehavior.AllowGet);

            var personasView = persona.ToObject();
            return Json(personasView, JsonRequestBehavior.AllowGet);
        }
 public JsonResult GetMedico([FromUri] Guid idMedico)
 {
     using (var entities = new Medics()){
         var medico = entities.Medicos.FirstOrDefault(x => x.idPersona == idMedico);
         if (medico != null) return Json(medico.ToObject(), JsonRequestBehavior.AllowGet);
     }
     return Json(Notificaciones.ErrorUsuario.Value, JsonRequestBehavior.AllowGet);
 }
        public JsonResult GetMedicos(Guid id)
        {
            using (var entities = new Medics()){
                var persona = entities.Personas.FirstOrDefault(x => x.idPersona == id);
                if (persona == null) return Json(Notificaciones.ErrorUsuario.Value, JsonRequestBehavior.AllowGet);

                var historial = persona.Medicos1.Select(x => x.ToObject()).ToList();
                return Json(historial, JsonRequestBehavior.AllowGet);
            }
        }
        public JsonResult GetPacientes(Guid id)
        {
            using (var entities = new Medics()){
                var medico = entities.Medicos.FirstOrDefault(x => x.idPersona == id);
                if (medico == null) return Json(Notificaciones.ErrorUsuario.Value, JsonRequestBehavior.AllowGet);

                var personas = medico.Personas1.Select(x => x.ToObject()).ToList();
                return Json(personas, JsonRequestBehavior.AllowGet);
            }
        }
 public JsonResult GetAnalisisPendientes(Guid id)
 {
     using (var entities = new Medics()){
         var persona = entities.Personas.FirstOrDefault(x => x.idPersona == id);
         if (persona == null) return Json(Notificaciones.ErrorUsuario.Value, JsonRequestBehavior.AllowGet);
         var analisis_pendientes = persona.AnalisisPendientes();
         return Json(analisis_pendientes, JsonRequestBehavior.AllowGet);
     }
 }
 public string Put(Guid id, [FromUri] PersonasEditModel persona)
 {
     using (var entities = new Medics()){
         var oldPersona = entities.Personas.FirstOrDefault(x => x.idPersona == id);
         if (oldPersona == null) return Notificaciones.ErrorUsuario.Value;
         try{
             oldPersona.Update(persona);
             entities.SaveChanges();
         }
         catch (Exception e){
             return e.Message;
         }
     }
     return Notificaciones.EdicionCorrecta.Value;
 }
        public string Post([FromUri] PersonasEditCreateModel persona)
        {
            Mapper.CreateMap <PersonasEditCreateModel, Personas>();
            var personas = Mapper.Map<PersonasEditCreateModel, Personas>(persona);

            using (var entities = new Medics()){
                try{
                    entities.AddToPersonas(personas);
                    entities.SaveChanges();
                }
                catch (Exception e){
                    return e.Message;
                }
            }
            return Notificaciones.CreacionCorrecta.Value;
        }
 public JsonResult GetPersona([FromUri] string Username)
 {
     Guid id;
     using (var entities = new Medics()){
         var personas = entities.Personas.FirstOrDefault(x => x.Username == Username);
         if (personas == null) return  Json(Notificaciones.ErrorUsuario.Value, JsonRequestBehavior.AllowGet);
         id = personas.idPersona;
     }
     var json = GetMedico(id);
     if (Equals(json.Data, Notificaciones.ErrorUsuario.Value)) json = GetDetails(id);
     return json;
 }
        public string DeleteMedico([FromUri] Guid id, [FromUri] Guid idMedico)
        {
            using (var entities = new Medics()){
                var persona = entities.Personas.FirstOrDefault(x => x.idPersona == id);
                var medico = entities.Medicos.FirstOrDefault(x => x.idPersona == idMedico);

                if (medico == null || persona == null) return Notificaciones.ErrorUsuario.Value;
                try{
                    persona.Medicos1.Remove(medico);
                    entities.SaveChanges();
                }
                catch (Exception e){
                    return e.Message;
                }
            }
            return Notificaciones.RemovidoCorrecta.Value;
        }
        public JsonResult Get()
        {
            List<Personas> personas;
            using (var entities = new Medics()) personas = entities.Personas.ToList();

            var personasView = personas.Select(x => x.ToObject());
            return Json(personasView, JsonRequestBehavior.AllowGet);
        }