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