private async void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(vm.curp))
            {
                lblErrorCurp.Content    = "El CURP no puede ser vacio";
                lblErrorCurp.Visibility = Visibility.Visible;
                return;
            }

            if (vm.curp.Length != 18)
            {
                lblErrorCurp.Content    = "El CURP debe ser a 18 digitos";
                lblErrorCurp.Visibility = Visibility.Visible;
                return;
            }

            if (!InputValidators.validateCURP(vm.curp))
            {
                lblErrorCurp.Content    = "Ingresa un CURP valido";
                lblErrorCurp.Visibility = Visibility.Visible;
                return;
            }

            using (var ctx = new EmployeeEntity())
            {
                var result = ctx.employees.Where(x => x.curp == vm.curp).Select(x => x.curp).FirstOrDefault();
                if (result != null)
                {
                    lblErrorCurp.Content    = "Ya existe un empleado registrado con ese CURP";
                    lblErrorCurp.Visibility = Visibility.Visible;
                    return;
                }
            }

            vm.fecha_nacimiento = DataCalc.getBirthDate(vm.curp);
            DateTime fecha_nacimiento = DataCalc.getBirthDate(vm.curp);
            int      livedDays        = DataCalc.daysLived(fecha_nacimiento);

            if (livedDays < 0)
            {
                lblErrorCurp.Content    = "Error: La edad maxima 100";
                lblErrorCurp.Visibility = Visibility.Visible;
                return;
            }

            var createCommand = new CreateEmployeeCommand(vm.curp, vm.fecha_nacimiento, tbFechaAccidente.SelectedDate);

            try
            {
                await _mediator.Send(createCommand);
            }
            catch (Exception)
            {
                MessageBox.Show("Ha ocurrido un error al registrar al empleado");
                return;
            }

            if (tbFechaAccidente.SelectedDate != null)
            {
                vm.fecha_accidente = tbFechaAccidente.SelectedDate ?? DateTime.Now;
                var biorritmoFisico      = CalcularBiorritmo(livedDays, BiorytmDays.biorritmo_fisico);
                var biorritmoEmocional   = CalcularBiorritmo(livedDays, BiorytmDays.biorritmo_emocional);
                var biorritmoIntelectual = CalcularBiorritmo(livedDays, BiorytmDays.biorritmo_intelectual);
                var biorritmoIntuicional = CalcularBiorritmo(livedDays, BiorytmDays.biorritmo_intuicional);

                var registerAccident = new RegisterAccidentCommand(vm.curp, vm.fecha_accidente, biorritmoFisico, biorritmoEmocional, biorritmoIntelectual, biorritmoIntuicional);
                await _mediator.Send(registerAccident);
            }
            var response = $"{vm.curp} registrado con exito";

            MessageBox.Show(response);
            Close();
        }
        /*private async void registerall()
         * {
         *  var accidents = new List<accident>();
         *
         *  using (var ctx = new EmployeeEntity())
         *      accidents = ctx.accidents.ToList();
         *
         *  foreach(var item in accidents)
         *  {
         *      var birthDate = DataCalc.getBirthDate(item.curp);
         *      int dias = DataCalc.daysLived(birthDate, item.fecha_accidente);
         *      var biorritmoFisico = CalcularBiorritmo(dias, BiorytmDays.biorritmo_fisico);
         *      var biorritmoEmocional = CalcularBiorritmo(dias, BiorytmDays.biorritmo_emocional);
         *      var biorritmoIntelectual = CalcularBiorritmo(dias, BiorytmDays.biorritmo_intelectual);
         *      var biorritmoIntuicional = CalcularBiorritmo(dias, BiorytmDays.biorritmo_intuicional);
         *
         *      using (var ctx = new EmployeeEntity())
         *      {
         *          var some = ctx.accidents.Where(x => x.curp == item.curp).First();
         *          some.residuo_fisico = biorritmoFisico;
         *          some.residuo_emocional = biorritmoEmocional;
         *          some.residuo_intelectual = biorritmoIntelectual;
         *          some.residuo_intuicional = biorritmoIntuicional;
         *          ctx.SaveChanges();
         *      }
         *
         *  }
         *
         *
         * }*/

        private async void btnRegister_Click(object sender, RoutedEventArgs e)
        {
            bool errors = false;

            if (string.IsNullOrEmpty(vm.curp))
            {
                lblErrorCurp.Content    = "El CURP no puede ser vacio";
                lblErrorCurp.Visibility = Visibility.Visible;
                errors = true;
            }

            if (vm.curp.Length != 18)
            {
                lblErrorCurp.Content    = "El CURP debe ser a 18 digitos";
                lblErrorCurp.Visibility = Visibility.Visible;
                errors = true;
            }

            if (tbFechaAccidente.SelectedDate == null)
            {
                lblErrorDate.Content    = "La fecha del accidente no puede ser vacia";
                lblErrorDate.Visibility = Visibility.Visible;
                errors = true;
            }

            if (!InputValidators.validateCURP(vm.curp))
            {
                lblErrorCurp.Content    = "Ingresa un CURP valido";
                lblErrorCurp.Visibility = Visibility.Visible;
                errors = true;
            }

            if (errors)
            {
                return;
            }

            employee empleado = new employee();

            using (var ctx = new EmployeeEntity())
                empleado = ctx.employees.Where(x => x.curp == vm.curp).FirstOrDefault();

            if (empleado == null)
            {
                lblErrorCurp.Content    = "No hay un empleado registrado con ese CURP";
                lblErrorCurp.Visibility = Visibility.Visible;
                return;
            }

            DateTime fecha_nacimiento     = DataCalc.getBirthDate(vm.curp);
            int      dias                 = DataCalc.daysLived(fecha_nacimiento);
            var      biorritmoFisico      = CalcularBiorritmo(dias, 23);
            var      biorritmoEmocional   = CalcularBiorritmo(dias, 28);
            var      biorritmoIntelectual = CalcularBiorritmo(dias, 33);
            var      biorritmoIntuicional = CalcularBiorritmo(dias, 38);

            try
            {
                var createCommand = new RegisterAccidentCommand(vm.curp, vm.fecha_accidente, biorritmoFisico, biorritmoEmocional, biorritmoIntelectual, biorritmoIntuicional);
                await _mediator.Send(createCommand);

                MessageBox.Show("Accidente registrado con exito");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ha ocurrido un error al registrar el accidente" + ex.Message);
                return;
            }
            Close();
        }