public void init()
        {
            int totalRegisters;
            int totalAccidents;
            var accidents  = new List <AccidentsVM>();
            var accidentes = new List <accident>();
            var employees  = new List <employee>();
            var modas      = AccidentAlgorytm.startAlgorytm();
            List <AccidentsVM> posibleAccidents = null;

            using (var ctx = new EmployeeEntity())
                employees = ctx.employees.ToList();

            int i = 0;

            foreach (var employee in employees)
            {
                var birthDate  = DataCalc.getBirthDate(employee.curp);
                var LivingDays = DataCalc.daysLived(birthDate);

                accidents.Add(new AccidentsVM(i,
                                              employee.curp,
                                              employee.fecha_nacimiento,
                                              CalcBiorrytm(LivingDays, BiorytmDays.biorritmo_fisico),
                                              CalcBiorrytm(LivingDays, BiorytmDays.biorritmo_emocional),
                                              CalcBiorrytm(LivingDays, BiorytmDays.biorritmo_intelectual),
                                              CalcBiorrytm(LivingDays, BiorytmDays.biorritmo_intuicional)));

                i++;
            }
            if (modas != null)
            {
                posibleAccidents = accidents.Where(x => x.residuo_fisico == modas.biorritmoFisico &&
                                                   x.residuo_emocional == modas.biorritmoEmocional &&
                                                   x.residuo_intelectual == modas.biorritmoIntelectual &&
                                                   x.residuo_intuicional == modas.biorritmoIntuicional).ToList();
            }



            using (var ctx = new EmployeeEntity())
                totalRegisters = ctx.employees.totalRegisters();
            using (var ctx = new EmployeeEntity())
                totalAccidents = ctx.accidents.totalAccidents();

            lbAccidentNum.Content = totalAccidents.ToString();
            lbEmployeeNum.Content = totalRegisters.ToString();

            empleado.ItemsSource = posibleAccidents;

            var totalriskEmployees = empleado.Items.Count;

            lbltotalRiskEmployees.Content = totalriskEmployees;
        }
        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();
        }
示例#3
0
        public static List <int> checkCritics()
        {
            var accidentes = new List <accident>();

            using (var ctx = new EmployeeEntity())
                foreach (var item in ctx.accidents.ToList())
                {
                    accidentes.Add(item);
                }

            if (!accidentes.Any())
            {
                return(new List <int>());
            }

            var accidentOnCritic         = new List <accident>();
            var accidentOnPerfectCritics = new List <accident>();
            var ocurredOnFisic           = new List <Double?>();
            var ocurredOnEmotional       = new List <Double?>();
            var ocurredOnIntuitional     = new List <Double?>();
            var ocurredOnIntelectual     = new List <Double?>();

            foreach (var item in accidentes)
            {
                var date             = DataCalc.getBirthDate(item.curp);
                var days             = DataCalc.daysLived(date, item.fecha_accidente);
                var RegistrosFisicos = DataCalc.CalculateBiorritm(days, BiorytmDays.biorritmo_fisico);
                var wasFisicCritic   = calculateCritics(RegistrosFisicos);
                if (wasFisicCritic != null)
                {
                    ocurredOnFisic.Add(wasFisicCritic);
                }
                var RegistrosEmocionales = DataCalc.CalculateBiorritm(days, BiorytmDays.biorritmo_emocional);
                var wasEmotionalCritic   = calculateCritics(RegistrosEmocionales);
                if (wasEmotionalCritic != null)
                {
                    ocurredOnEmotional.Add(wasEmotionalCritic);
                }
                var RegistrosIntuicionales = DataCalc.CalculateBiorritm(days, BiorytmDays.biorritmo_intuicional);
                var wasIntuitionalCritic   = calculateCritics(RegistrosIntuicionales);
                if (wasIntuitionalCritic != null)
                {
                    ocurredOnIntuitional.Add(wasIntuitionalCritic);
                }
                var RegistrosIntelectuales = DataCalc.CalculateBiorritm(days, BiorytmDays.biorritmo_intelectual);
                var wasIntelectualCritic   = calculateCritics(RegistrosIntelectuales);
                if (wasIntelectualCritic != null)
                {
                    ocurredOnIntelectual.Add(wasIntelectualCritic);
                }

                if (wasFisicCritic != null ||
                    wasEmotionalCritic != null ||
                    wasIntelectualCritic != null ||
                    wasIntuitionalCritic != null)
                {
                    accidentOnCritic.Add(item);
                    if (wasFisicCritic != null &&
                        wasEmotionalCritic != null &&
                        wasIntelectualCritic != null &&
                        wasIntuitionalCritic != null)
                    {
                        accidentOnPerfectCritics.Add(item);
                    }
                }
            }

            var critics = new List <int>();

            critics.Add(accidentes.Count);
            critics.Add(ocurredOnFisic.Count);
            critics.Add(ocurredOnEmotional.Count);
            critics.Add(ocurredOnIntuitional.Count);
            critics.Add(ocurredOnIntelectual.Count);
            critics.Add(accidentOnPerfectCritics.Count);
            critics.Add(accidentOnCritic.Count);

            return(critics);
        }
        /*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();
        }