Beispiel #1
0
        private void combBuscMedico_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (combBuscMedico.ItemsSource != null)
            {
                return;
            }
            List <dynamic> medicoDynamicList = GetLista("Medico");
            List <ConsultorioSagradaFamilia.Models.Medico> medicoList = new List <ConsultorioSagradaFamilia.Models.Medico>();

            ConsultorioSagradaFamilia.Models.Medico medicoNulo = new ConsultorioSagradaFamilia.Models.Medico();
            medicoNulo.Nombre = "[Ninguno]";

            medicoList.Add(medicoNulo);

            foreach (var medicoDynamic in medicoDynamicList)
            {
                ConsultorioSagradaFamilia.Models.Medico medico = new ConsultorioSagradaFamilia.Models.Medico
                {
                    Nombre   = medicoDynamic.Nombre,
                    IdMedico = medicoDynamic.IdMedico,
                    Apellido = medicoDynamic.Apellido
                };

                medicoList.Add(medico);
            }

            combBuscMedico.ItemsSource       = medicoList;
            combBuscMedico.DisplayMemberPath = "ApellidoNombre";
            combBuscMedico.SelectedValuePath = "IdMedico";
        }
Beispiel #2
0
        private void Ganancias_Click(object sender, RoutedEventArgs e)
        {
            if (!Validar())
            {
                return;
            }

            if (DatosUsuario.IdUsuario == 0)
            {
                MessageBox.Show("No se esta logueado como médico");
                return;
            }

            int idMedico = DatosUsuario.IdUsuario;

            ConsultorioSagradaFamilia.Models.Medico medico = DbContextSingleton.dbContext.GetMedicoById(idMedico);

            List <PagosPorFormaPago> pagos = DbContextSingleton.dbContext.GetPagosByMedicoByFecha(idMedico, FechaDesde.SelectedDate.GetValueOrDefault(),
                                                                                                  FechaHasta.SelectedDate.GetValueOrDefault());

            string content = string.Empty;

            decimal total = 0;

            foreach (var pago in pagos)
            {
                total  += pago.Monto;
                content = content +
                          @"<tr>
                    <td>" + pago.FechaString + @"</td>
                    <td>" + pago.NombrePaciente + @"</td>
                    <td>" + pago.NombreObraSocial + @"</td>
                    <td>" + pago.FormaPago + @"</td>
                    <td>" + pago.Monto.ToString("c2") + @"</td>
                </tr>
                <tr>";
            }
            string filename = string.Empty;

            string html = GetBaseHtml(@"SagradaFamilia3._0.Windows.Views.Reportes.Ganancias.html", ref filename);

            html = html.Replace("[NombreMedico]", medico.Apellido + ", " + medico.Nombre);
            html = html.Replace("[Datos]", content);
            html = html.Replace("[MontoTotal]", total.ToString("c2"));

            string tempPath = System.IO.Path.GetTempPath();

            File.WriteAllText(tempPath + @"Body.html", html);

            Process.Start(@".\wkhtmltopdf.exe", tempPath + @"Body.html" + " --header-html " + tempPath + @"Header.html" + " " + filename);

            MessageBox.Show("Reporte Creado");
        }
Beispiel #3
0
        private void TurnosPorMedico_Click(object sender, RoutedEventArgs e)
        {
            if (!Validar())
            {
                return;
            }

            int idMedico = DatosUsuario.IdUsuario;

            if (idMedico == 0)
            {
                idMedico = (int)MedicosCombobox.SelectedValue;
            }

            ConsultorioSagradaFamilia.Models.Medico medico = DbContextSingleton.dbContext.GetMedicoById(idMedico);

            List <TurnosPorPaciente> items = DbContextSingleton.dbContext.GetTurnosByMedicoByFecha(idMedico, FechaDesde.SelectedDate.GetValueOrDefault(),
                                                                                                   FechaHasta.SelectedDate.GetValueOrDefault());
            string content = string.Empty;

            foreach (var item in items)
            {
                content = content +
                          @"<tr>
                    <td>" + item.FechaString + @"</td>
                    <td>" + item.NombrePaciente + @"</td>
                </tr>
                <tr>";
            }
            string filename = string.Empty;

            string html = GetBaseHtml(@"SagradaFamilia3._0.Windows.Views.Reportes.Turnos.html", ref filename);

            html = html.Replace("[NombreMedico]", medico.Apellido + ", " + medico.Nombre);
            html = html.Replace("[Datos]", content);

            string tempPath = System.IO.Path.GetTempPath();

            File.WriteAllText(tempPath + @"Body.html", html);

            Process.Start(@".\wkhtmltopdf.exe", tempPath + @"Body.html" + " --header-html " + tempPath + @"Header.html" + " " + filename);

            MessageBox.Show("Reporte Creado");
        }
Beispiel #4
0
        private void FillMedicos()
        {
            List <dynamic> medicoDynamicList = GetLista("Medico", "idEspecialidad",
                                                        Especialidad.SelectedValue != null ? (int?)Especialidad.SelectedValue : null,
                                                        "idPaciente",
                                                        Paciente.SelectedValue != null ? (int?)Paciente.SelectedValue : null);
            List <ConsultorioSagradaFamilia.Models.Medico> medicoList = new List <ConsultorioSagradaFamilia.Models.Medico>();

            foreach (var medicoDynamic in medicoDynamicList)
            {
                ConsultorioSagradaFamilia.Models.Medico medico = new ConsultorioSagradaFamilia.Models.Medico
                {
                    Nombre   = medicoDynamic.Nombre,
                    IdMedico = medicoDynamic.IdMedico,
                    Apellido = medicoDynamic.Apellido
                };

                medicoList.Add(medico);
            }

            Medico.ItemsSource       = medicoList;
            Medico.DisplayMemberPath = "ApellidoNombre";
            Medico.SelectedValuePath = "IdMedico";
        }
Beispiel #5
0
        private void butBuscar_Click(object sender, RoutedEventArgs e)
        {
            DateTime?fechaDesde = null;
            DateTime?fechaHasta = null;
            int?     idMedico   = null;
            int?     idPaciente = null;
            double   totalWidth = 0;
            string   nombre     = string.Empty;
            string   apellido   = string.Empty;

            switch (mostrando)
            {
            case 1:
                nombre   = busqNombreBox.Text == string.Empty ? null : busqNombreBox.Text;
                apellido = busqApellidoBox.Text == string.Empty ? null : busqApellidoBox.Text;

                List <dynamic> medicosDynamicList = GetLista("Medico", nombre: nombre, apellido: apellido);

                List <ConsultorioSagradaFamilia.Models.Medico> medicos = new List <ConsultorioSagradaFamilia.Models.Medico>();

                foreach (var medicoDynamic in medicosDynamicList)
                {
                    ConsultorioSagradaFamilia.Models.Medico medico = new ConsultorioSagradaFamilia.Models.Medico
                    {
                        Apellido  = medicoDynamic.Apellido,
                        DNI       = medicoDynamic.DNI,
                        CUIL      = medicoDynamic.CUIL,
                        IdMedico  = medicoDynamic.IdMedico,
                        Matricula = medicoDynamic.Matricula,
                        Monto     = medicoDynamic.Monto,
                        Nombre    = medicoDynamic.Nombre
                    };

                    medicos.Add(medico);
                }

                lista.IsReadOnly    = true;
                lista.SelectionMode = DataGridSelectionMode.Single;

                totalWidth                  = lista.ActualWidth;
                lista.ItemsSource           = medicos;
                lista.Columns[1].Width      = totalWidth / 5;
                lista.Columns[4].Width      = totalWidth / 5;
                lista.Columns[5].Width      = totalWidth / 5;
                lista.Columns[6].Width      = totalWidth / 5;
                lista.Columns[7].Width      = totalWidth / 5;
                lista.Columns[0].Visibility = Visibility.Collapsed;
                lista.Columns[2].Visibility = Visibility.Collapsed;
                lista.Columns[3].Visibility = Visibility.Collapsed;
                lista.Columns[4].Header     = "Apellido y Nombre";
                break;

            case 2:
                nombre   = busqNombreBox.Text == string.Empty ? null : busqNombreBox.Text;
                apellido = busqApellidoBox.Text == string.Empty ? null : busqApellidoBox.Text;

                List <dynamic> pacientesDynamicList = GetLista("Paciente", nombre: nombre, apellido: apellido);

                List <Paciente> pacientes = new List <Paciente>();

                foreach (var pacienteDynamic in pacientesDynamicList)
                {
                    Paciente paciente = new Paciente
                    {
                        Apellido        = pacienteDynamic.Apellido,
                        DNI             = pacienteDynamic.DNI,
                        IdPaciente      = pacienteDynamic.IdPaciente,
                        Nombre          = pacienteDynamic.Nombre,
                        Direccion       = pacienteDynamic.Direccion,
                        FechaNacimiento = pacienteDynamic.FechaNacimiento
                    };

                    pacientes.Add(paciente);
                }

                lista.IsReadOnly    = true;
                lista.SelectionMode = DataGridSelectionMode.Single;

                totalWidth                  = lista.ActualWidth;
                lista.ItemsSource           = pacientes;
                lista.Columns[1].Width      = totalWidth / 4;
                lista.Columns[4].Width      = totalWidth / 4;
                lista.Columns[6].Width      = totalWidth / 4;
                lista.Columns[7].Width      = totalWidth / 4;
                lista.Columns[0].Visibility = Visibility.Collapsed;
                lista.Columns[5].Visibility = Visibility.Collapsed;
                lista.Columns[2].Visibility = Visibility.Collapsed;
                lista.Columns[3].Visibility = Visibility.Collapsed;
                lista.Columns[4].Header     = "Apellido y Nombre";
                lista.Columns[7].Header     = "Fecha de Nacimiento";
                break;

            case 3:

                if (dateBusqDesde.SelectedDate != null)
                {
                    fechaDesde = dateBusqDesde.SelectedDate;
                }
                if (dateBusqHasta.SelectedDate != null)
                {
                    fechaHasta = dateBusqHasta.SelectedDate;
                }
                if (combBuscMedico.SelectedValue != null)
                {
                    idMedico = (int)combBuscMedico.SelectedValue;
                    if (idMedico == 0)
                    {
                        idMedico = null;
                    }
                }
                if (combBuscPaciente.SelectedValue != null)
                {
                    idPaciente = (int)combBuscPaciente.SelectedValue;
                    if (idPaciente == 0)
                    {
                        idPaciente = null;
                    }
                }

                List <dynamic> turnosDynamicList = GetLista("TurnosPorPaciente", "idMedico", idMedico, "idPaciente",
                                                            idPaciente, fechaDesde, fechaHasta);

                List <TurnosPorPaciente> turnos = new List <TurnosPorPaciente>();

                foreach (var turnodynamic in turnosDynamicList)
                {
                    string[] fechaSplit = turnodynamic.FechaString.ToString().Split('-');
                    string   fechaReal  = fechaSplit[2] + "/" + fechaSplit[1] + "/" + fechaSplit[0];

                    string[] horaSplit  = turnodynamic.HoraString.ToString().Split('.');
                    string[] horaSplit2 = horaSplit[0].ToString().Split(':');
                    string   horaReal   = horaSplit2[0] + ":" + horaSplit2[1];

                    TurnosPorPaciente turno = new TurnosPorPaciente
                    {
                        CUILMedico      = turnodynamic.CUILMedico,
                        DNIMedico       = turnodynamic.DNIMedico,
                        Fecha           = turnodynamic.Fecha,
                        FechaString     = fechaReal,
                        HoraString      = horaReal != "00:00" ? horaReal : "En espera",
                        IdMedico        = turnodynamic.IdMedico,
                        IdPaciente      = turnodynamic.IdPaciente,
                        MatriculaMedico = turnodynamic.MatriculaMedico,
                        NombreMedico    = turnodynamic.NombreMedico,
                        NombrePaciente  = turnodynamic.NombrePaciente,
                        Atendido        = turnodynamic.Atendido,
                        IdTurno         = turnodynamic.IdTurno
                    };

                    turnos.Add(turno);
                }

                lista.IsReadOnly    = true;
                lista.SelectionMode = DataGridSelectionMode.Single;

                totalWidth                   = lista.ActualWidth;
                lista.ItemsSource            = turnos;
                lista.Columns[1].Width       = totalWidth / 5;
                lista.Columns[4].Width       = totalWidth / 5;
                lista.Columns[8].Width       = totalWidth / 5;
                lista.Columns[9].Width       = totalWidth / 5;
                lista.Columns[11].Width      = totalWidth / 5;
                lista.Columns[1].Header      = "Paciente";
                lista.Columns[4].Header      = "Médico";
                lista.Columns[8].Header      = "Fecha";
                lista.Columns[9].Header      = "Hora";
                lista.Columns[11].Header     = "Atendido";
                lista.Columns[0].Visibility  = Visibility.Collapsed;
                lista.Columns[2].Visibility  = Visibility.Collapsed;
                lista.Columns[3].Visibility  = Visibility.Collapsed;
                lista.Columns[5].Visibility  = Visibility.Collapsed;
                lista.Columns[6].Visibility  = Visibility.Collapsed;
                lista.Columns[7].Visibility  = Visibility.Collapsed;
                lista.Columns[10].Visibility = Visibility.Collapsed;

                break;

            case 4:

                if (dateBusqDesde.SelectedDate != null)
                {
                    fechaDesde = dateBusqDesde.SelectedDate;
                }
                if (dateBusqHasta.SelectedDate != null)
                {
                    fechaHasta = dateBusqHasta.SelectedDate;
                }
                if (combBuscMedico.SelectedValue != null)
                {
                    idMedico = (int)combBuscMedico.SelectedValue;
                    if (idMedico == 0)
                    {
                        idMedico = null;
                    }
                }
                if (combBuscPaciente.SelectedValue != null)
                {
                    idPaciente = (int)combBuscPaciente.SelectedValue;
                    if (idPaciente == 0)
                    {
                        idPaciente = null;
                    }
                }

                List <dynamic> pagosDynamicList = GetLista("PagosPorFormaPago", "idMedico", idMedico, "idPaciente",
                                                           idPaciente, fechaDesde, fechaHasta);

                List <PagosPorFormaPago> pagos = new List <PagosPorFormaPago>();

                foreach (var pagoDynamic in pagosDynamicList)
                {
                    PagosPorFormaPago pago = new PagosPorFormaPago
                    {
                        FormaPago        = pagoDynamic.FormaPago,
                        IdFormaPago      = pagoDynamic.IdFormaPago,
                        IdObraSocial     = pagoDynamic.IdObraSocial,
                        Monto            = pagoDynamic.Monto,
                        NombreObraSocial = pagoDynamic.NombreObraSocial,
                        Fecha            = pagoDynamic.Fecha,
                        IdMedico         = pagoDynamic.IdMedico,
                        IdPaciente       = pagoDynamic.IdPaciente,
                        NombreMedico     = pagoDynamic.NombreMedico,
                        NombrePaciente   = pagoDynamic.NombrePaciente
                    };

                    pagos.Add(pago);
                }

                lista.IsReadOnly    = true;
                lista.SelectionMode = DataGridSelectionMode.Single;

                totalWidth        = lista.ActualWidth;
                lista.ItemsSource = pagos;

                lista.Columns[0].Header     = "Fecha";
                lista.Columns[0].Width      = totalWidth / 5;
                lista.Columns[1].Width      = totalWidth / 5;
                lista.Columns[3].Visibility = Visibility.Collapsed;

                lista.Columns[4].Header = "Médico";
                lista.Columns[4].Width  = totalWidth / 5;
                lista.Columns[5].Header = "Paciente";
                lista.Columns[5].Width  = totalWidth / 5;

                lista.Columns[6].Visibility = Visibility.Collapsed;
                lista.Columns[7].Visibility = Visibility.Collapsed;

                lista.Columns[8].Header = "Obra Social";
                lista.Columns[8].Width  = totalWidth / 5;

                lista.Columns[9].Visibility  = Visibility.Collapsed;
                lista.Columns[10].Visibility = Visibility.Collapsed;

                break;
            }
        }
Beispiel #6
0
        private void ButtonCrear_Click(object sender, RoutedEventArgs e)
        {
            if (Apellido.Text == "")
            {
                MessageBox.Show("Debe indicar el Apellido");
                return;
            }
            if (CUIL.Text == "")
            {
                MessageBox.Show("Debe indicar el CUIL");
                return;
            }
            if (DNI.Text == "")
            {
                MessageBox.Show("Debe indicar el DNI");
                return;
            }
            if (Domicilio.Text == "")
            {
                MessageBox.Show("Debe indicar el Domicilio");
                return;
            }
            if (FechaNacimiento.SelectedDate == null)
            {
                MessageBox.Show("Debe indicar la Fecha de Nacimiento");
                return;
            }
            if (Mail.Text == "")
            {
                MessageBox.Show("Debe indicar el Email");
                return;
            }
            if (Matricula.Text == "")
            {
                MessageBox.Show("Debe indicar la Matrícula");
                return;
            }
            if (Monto.Text == "")
            {
                MessageBox.Show("Debe indicar el Monto");
                return;
            }
            if (Nombre.Text == "")
            {
                MessageBox.Show("Debe indicar el Nombre");
                return;
            }
            if (Telefono.Text == "")
            {
                MessageBox.Show("Debe indicar el Teléfono");
                return;
            }

            if (Contraseña.Password != Confirmacion.Password)
            {
                MessageBox.Show("La confirmación y la contraseña deben ser iguales");
                return;
            }

            ConsultorioSagradaFamilia.Models.Usuario usuario = new ConsultorioSagradaFamilia.Models.Usuario
            {
                Email    = Mail.Text,
                Password = Contraseña.Password
            };

            var client  = new RestClient("http://consultoriosagradafamilia.azurewebsites.net/api/Account/Register");
            var request = new RestRequest(Method.POST);

            request.AddHeader("postman-token", "ff0920db-2463-74a8-8bf4-0bf3969e4083");
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("content-type", "application/x-www-form-urlencoded");

            string body = "Email=" + usuario.Email +
                          "&Password="******"&ConfirmPassword="******"&Roles[0]=Médico";

            request.AddParameter("application/x-www-form-urlencoded", body, ParameterType.RequestBody);

            IRestResponse response = client.Execute(request);

            var content = response.Content;

            if (content != "")
            {
                dynamic stuff = JObject.Parse(content);

                if (stuff.Message.ToString() == "La solicitud no es válida.")
                {
                    foreach (var error in stuff.ModelState)
                    {
                        MessageBox.Show(error.ToString());
                    }
                    return;
                }
                else if (stuff.error == null)
                {
                    //MessageBox.Show("Usuario creado.");
                }
                else
                {
                    MessageBox.Show("Hubo un problema al registrar el usuario");
                    return;
                }
            }
            else
            {
                //MessageBox.Show("Usuario creado");
            }

            ConsultorioSagradaFamilia.Models.Medico medico = new ConsultorioSagradaFamilia.Models.Medico
            {
                Apellido        = Apellido.Text,
                CUIL            = CUIL.Text,
                DNI             = int.Parse(DNI.Text),
                Domicilio       = Domicilio.Text,
                FechaNacimiento = FechaNacimiento.SelectedDate.Value.Date,
                Mail            = Mail.Text,
                Matricula       = int.Parse(Matricula.Text),
                Monto           = decimal.Parse(Monto.Text),
                Nombre          = Nombre.Text,
                Telefono        = int.Parse(Telefono.Text),
                Habilitado      = true
            };

            StatusMessage statusMessage = DbContextSingleton.dbContext.GuardarMedico(medico);

            MessageBox.Show(statusMessage.Mensaje);

            if (statusMessage.Status == 0)
            {
                ConsultorioSagradaFamilia.Models.Medico medicoConId = DbContextSingleton.dbContext.GetLastMedico();

                foreach (var item in EspecialidadesGrid.Items)
                {
                    ConsultorioSagradaFamilia.Models.Especialidad especialidad = (ConsultorioSagradaFamilia.Models.Especialidad)item;

                    MedicoEspecialidad medicoEspecialidad = new MedicoEspecialidad();
                    medicoEspecialidad.IdMedico       = medicoConId.IdMedico;
                    medicoEspecialidad.IdEspecialidad = especialidad.IdEspecialidad;

                    DbContextSingleton.dbContext.GuardarMedicoEspecialidad(medicoEspecialidad);
                }

                foreach (var item in ObrasSocialesGrid.Items)
                {
                    ConsultorioSagradaFamilia.Models.ObraSocial obraSocial = (ConsultorioSagradaFamilia.Models.ObraSocial)item;

                    ObraSocialMedico obraSocialMedico = new ObraSocialMedico();
                    obraSocialMedico.IdMedico     = medicoConId.IdMedico;
                    obraSocialMedico.IdObraSocial = obraSocial.IdObraSocial;

                    DbContextSingleton.dbContext.GuardarObraSocialMedico(obraSocialMedico);
                }

                foreach (var item in HorariosGrid.Items)
                {
                    HorarioAtencion horarioAtencion = (HorarioAtencion)item;
                    horarioAtencion.IdMedico = medicoConId.IdMedico;

                    DbContextSingleton.dbContext.GuardarHorarioAtencion((HorarioAtencion)item);
                }

                Medicos medicos2 = new Medicos();
                Layout.Frame.Navigate(medicos2);
            }
        }
Beispiel #7
0
        public EditarMedico(ConsultorioSagradaFamilia.Models.Medico medico)
        {
            InitializeComponent();
            Medico = medico;

            Apellido.Text  = medico.Apellido;
            CUIL.Text      = medico.CUIL;
            DNI.Text       = medico.DNI.ToString();
            Domicilio.Text = medico.Domicilio;
            FechaNacimiento.SelectedDate = medico.FechaNacimiento;
            Mail.Text            = medico.Mail;
            Matricula.Text       = medico.Matricula.ToString();
            Monto.Text           = medico.Monto.ToString("n2");
            Nombre.Text          = medico.Nombre;
            Telefono.Text        = medico.Telefono.ToString();
            Habilitado.IsChecked = medico.Habilitado;

            Especialidades   = new List <ConsultorioSagradaFamilia.Models.Especialidad>();
            ObrasSociales    = new List <ConsultorioSagradaFamilia.Models.ObraSocial>();
            HorariosAtencion = new List <HorarioAtencion>();

            EspecialidadesGrid.ItemsSource = Especialidades;
            ObrasSocialesGrid.ItemsSource  = ObrasSociales;

            Dia Lunes = new Dia {
                Id = 1, Nombre = "Lunes"
            };
            Dia Martes = new Dia {
                Id = 2, Nombre = "Martes"
            };
            Dia Miércoles = new Dia {
                Id = 3, Nombre = "Miércoles"
            };
            Dia Jueves = new Dia {
                Id = 4, Nombre = "Jueves"
            };
            Dia Viernes = new Dia {
                Id = 5, Nombre = "Viernes"
            };
            Dia Sábado = new Dia {
                Id = 6, Nombre = "Sábado"
            };
            Dia Domingo = new Dia {
                Id = 7, Nombre = "Domingo"
            };

            List <Dia> Dias = new List <Dia> {
                Lunes, Martes, Miércoles, Jueves, Viernes, Sábado, Domingo
            };

            DiasCombobox.ItemsSource       = Dias;
            DiasCombobox.DisplayMemberPath = "Nombre";
            DiasCombobox.SelectedValuePath = "Id";

            List <int> Horas = new List <int> {
                8, 9, 10, 11, 12, 16, 17, 18, 19, 20
            };

            HorasInicioCombobox.ItemsSource   = Horas;
            MinutosInicioCombobox.ItemsSource = Minutos;

            HorasFinalCombobox.ItemsSource   = Horas;
            MinutosFinalCombobox.ItemsSource = Minutos;

            HorariosGrid.ItemsSource = HorariosAtencion;

            Especialidades   = DbContextSingleton.dbContext.GetEspecialidadesPorMedico(Medico.IdMedico);
            ObrasSociales    = DbContextSingleton.dbContext.GetObraSocialesPorMedico(Medico.IdMedico);
            HorariosAtencion = DbContextSingleton.dbContext.GetHorariosAtencionPorMedico(Medico.IdMedico);

            EspecialidadesOriginales = DbContextSingleton.dbContext.GetEspecialidadesPorMedico(Medico.IdMedico);
            ObrasSocialesOriginales  = DbContextSingleton.dbContext.GetObraSocialesPorMedico(Medico.IdMedico);

            EspecialidadesGrid.ItemsSource = Especialidades;
            ObrasSocialesGrid.ItemsSource  = ObrasSociales;
            HorariosGrid.ItemsSource       = HorariosAtencion;
        }
Beispiel #8
0
        private void ButtonEditar_Click(object sender, RoutedEventArgs e)
        {
            ConsultorioSagradaFamilia.Models.Medico medico = new ConsultorioSagradaFamilia.Models.Medico
            {
                IdMedico        = Medico.IdMedico,
                Apellido        = Apellido.Text,
                CUIL            = CUIL.Text,
                DNI             = int.Parse(DNI.Text),
                Domicilio       = Domicilio.Text,
                FechaNacimiento = FechaNacimiento.SelectedDate.Value.Date,
                Mail            = Mail.Text,
                Matricula       = int.Parse(Matricula.Text),
                Monto           = decimal.Parse(Monto.Text),
                Nombre          = Nombre.Text,
                Telefono        = int.Parse(Telefono.Text),
                Habilitado      = Habilitado.IsChecked.GetValueOrDefault()
            };

            StatusMessage statusMessage = DbContextSingleton.dbContext.EditarMedico(medico);

            MessageBox.Show(statusMessage.Mensaje);

            if (statusMessage.Status == 0)
            {
                foreach (var item in EspecialidadesGrid.Items)
                {
                    if (EspecialidadesOriginales.Where(es => es.IdEspecialidad ==
                                                       ((ConsultorioSagradaFamilia.Models.Especialidad)item).IdEspecialidad).Count() == 0)
                    {
                        ConsultorioSagradaFamilia.Models.Especialidad especialidad = (ConsultorioSagradaFamilia.Models.Especialidad)item;

                        MedicoEspecialidad medicoEspecialidad = new MedicoEspecialidad();
                        medicoEspecialidad.IdMedico       = Medico.IdMedico;
                        medicoEspecialidad.IdEspecialidad = especialidad.IdEspecialidad;

                        DbContextSingleton.dbContext.GuardarMedicoEspecialidad(medicoEspecialidad);
                    }
                }

                foreach (var item in EspecialidadesOriginales)
                {
                    if (Especialidades.Where(es => es.IdEspecialidad ==
                                             item.IdEspecialidad).Count() == 0)
                    {
                        ConsultorioSagradaFamilia.Models.Especialidad especialidad = item;

                        MedicoEspecialidad medicoEspecialidad = new MedicoEspecialidad();
                        medicoEspecialidad.IdMedico       = Medico.IdMedico;
                        medicoEspecialidad.IdEspecialidad = especialidad.IdEspecialidad;

                        DbContextSingleton.dbContext.BorrarMedicoEspecialidad(medicoEspecialidad);
                    }
                }

                foreach (var item in ObrasSocialesGrid.Items)
                {
                    if (ObrasSocialesOriginales.Where(es => es.IdObraSocial ==
                                                      ((ConsultorioSagradaFamilia.Models.ObraSocial)item).IdObraSocial).Count() == 0)
                    {
                        ConsultorioSagradaFamilia.Models.ObraSocial obraSocial = (ConsultorioSagradaFamilia.Models.ObraSocial)item;

                        ObraSocialMedico medicoObraSocial = new ObraSocialMedico();
                        medicoObraSocial.IdMedico     = Medico.IdMedico;
                        medicoObraSocial.IdObraSocial = obraSocial.IdObraSocial;

                        DbContextSingleton.dbContext.GuardarObraSocialMedico(medicoObraSocial);
                    }
                }

                foreach (var item in ObrasSocialesOriginales)
                {
                    if (ObrasSociales.Where(es => es.IdObraSocial ==
                                            item.IdObraSocial).Count() == 0)
                    {
                        ConsultorioSagradaFamilia.Models.ObraSocial obraSocial = item;

                        ObraSocialMedico medicoObraSocial = new ObraSocialMedico();
                        medicoObraSocial.IdMedico     = Medico.IdMedico;
                        medicoObraSocial.IdObraSocial = obraSocial.IdObraSocial;

                        DbContextSingleton.dbContext.BorrarObraSocialMedico(medicoObraSocial);
                    }
                }

                foreach (var item in HorariosGrid.Items)
                {
                    HorarioAtencion horarioAtencion = (HorarioAtencion)item;
                    horarioAtencion.IdMedico = Medico.IdMedico;
                    if (horarioAtencion.IdHorarioAtencion == 0)
                    {
                        horarioAtencion.Habilitado = true;
                        DbContextSingleton.dbContext.GuardarHorarioAtencion((HorarioAtencion)item);
                    }
                    else
                    {
                        DbContextSingleton.dbContext.EditarHorarioAtencion((HorarioAtencion)item);
                    }
                }

                Medicos medicos = new Medicos();
                Layout.Frame.Navigate(medicos);
            }
        }