Exemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.textBox1.Text.Length > 30)
            {
                try
                {
                    string   f     = this.textBox1.Text.Substring(0, 20);
                    DateTime fecha = DateTime.Parse(f);
                    f = this.textBox1.Text.Substring(23, 20).Replace("-", " ");
                    DateTime              fecha2         = DateTime.Parse(f);
                    string                NumeroTelefono = this.textBox1.Text.Substring(54, 6).Replace("-", "");
                    string                NumeroCuenta   = this.textBox1.Text.Substring(61, 4);
                    string                report         = this.textBox1.Text.Substring(66, this.textBox1.Text.Length - 66);
                    string[]              eventos        = report.Split('-')[1].Split('/');
                    Models.Clientes       cliente        = db.Clientes.Where(x => x.NumeroDeCuenta.Contains(NumeroCuenta) && x.NumeroTelefonoAlarma.Contains(NumeroTelefono)).FirstOrDefault();
                    bool                  ParticionZona  = false;
                    List <ClienteEventos> Eventos        = new List <ClienteEventos>();
                    string                Zona           = "1";
                    if (cliente != null)
                    {
                        if (eventos.Count() > 1)
                        {
                            List <GetSensores_Result>    clienteSensores = db.GetSensores(cliente.IdCliente, 2).ToList();
                            GetHorarioOperaciones_Result Horario         = db.GetHorarioOperaciones(cliente.IdCliente).FirstOrDefault();
                            List <CodigoEventos>         CodigosEventos  = db.CodigoEventos.ToList();
                            foreach (var evento in eventos)
                            {
                                ClienteEventos clienteEventos = new ClienteEventos();
                                if (evento.Contains("ri"))
                                {
                                    clienteEventos.ParticionArea = evento.Split('i')[1];
                                    Zona          = evento.Split('i')[1];
                                    ParticionZona = true;
                                }
                                else if (CodigosEventos.Where(x => x.Codigo.Contains(evento.Substring(0, 2))).Any())
                                {
                                    ParticionZona = false;
                                    CodigoEventos ClienteEvento = CodigosEventos.Where(x => x.Codigo.Contains(evento.Substring(0, 2))).First();
                                    clienteEventos.Tipo          = ClienteEvento.Tipo;
                                    clienteEventos.Codigo        = ClienteEvento.Codigo;
                                    clienteEventos.Descripcion   = ClienteEvento.Descripcion;
                                    clienteEventos.Numero        = evento.Substring(2, 4);
                                    clienteEventos.ParticionArea = Zona;
                                    if (Horario != null)
                                    {
                                        if (ClienteEvento.Codigo.Contains("OP") || ClienteEvento.Codigo.Contains("CL") || ClienteEvento.Codigo.Contains("OR") || ClienteEvento.Codigo.Contains("CR"))
                                        {
                                            TimeSpan Inicial = new TimeSpan();
                                            TimeSpan Final   = new TimeSpan();
                                            TimeSpan H       = new TimeSpan(fecha.Hour, fecha.Minute, fecha.Second);
                                            if (fecha.ToString("dddd", new CultureInfo("es-MX")) == "lunes")
                                            {
                                                Inicial = new TimeSpan(Horario.LunesInicio.Value.Hours, Horario.LunesInicio.Value.Minutes, Horario.LunesInicio.Value.Seconds);
                                                Final   = new TimeSpan(Horario.LunesFinal.Value.Hours, Horario.LunesFinal.Value.Minutes, Horario.LunesFinal.Value.Seconds);
                                            }
                                            if (fecha.ToString("dddd", new CultureInfo("es-MX")) == "martes")
                                            {
                                                Inicial = new TimeSpan(Horario.MartesInicio.Value.Hours, Horario.MartesInicio.Value.Minutes, Horario.MartesInicio.Value.Seconds);
                                                Final   = new TimeSpan(Horario.MartesFinal.Value.Hours, Horario.MartesFinal.Value.Minutes, Horario.MartesFinal.Value.Seconds);
                                            }
                                            if (fecha.ToString("dddd", new CultureInfo("es-MX")) == "miercoles")
                                            {
                                                Inicial = new TimeSpan(Horario.MiercolesInicio.Value.Hours, Horario.MiercolesInicio.Value.Minutes, Horario.MiercolesInicio.Value.Seconds);
                                                Final   = new TimeSpan(Horario.MiercolesFinal.Value.Hours, Horario.MiercolesFinal.Value.Minutes, Horario.MiercolesFinal.Value.Seconds);
                                            }
                                            if (fecha.ToString("dddd", new CultureInfo("es-MX")) == "jueves")
                                            {
                                                Inicial = new TimeSpan(Horario.JuevesInicio.Value.Hours, Horario.JuevesInicio.Value.Minutes, Horario.JuevesInicio.Value.Seconds);
                                                Final   = new TimeSpan(Horario.JuevesFinal.Value.Hours, Horario.JuevesFinal.Value.Minutes, Horario.JuevesFinal.Value.Seconds);
                                            }
                                            if (fecha.ToString("dddd", new CultureInfo("es-MX")) == "viernes")
                                            {
                                                Inicial = new TimeSpan(Horario.ViernesInicio.Value.Hours, Horario.ViernesInicio.Value.Minutes, Horario.ViernesInicio.Value.Seconds);
                                                Final   = new TimeSpan(Horario.ViernesFinal.Value.Hours, Horario.ViernesFinal.Value.Minutes, Horario.ViernesFinal.Value.Seconds);
                                            }
                                            if (fecha.ToString("dddd", new CultureInfo("es-MX")) == "sabado")
                                            {
                                                Inicial = new TimeSpan(Horario.SabadoInicio.Value.Hours, Horario.SabadoInicio.Value.Minutes, Horario.SabadoInicio.Value.Seconds);
                                                Final   = new TimeSpan(Horario.SabadoFinal.Value.Hours, Horario.SabadoFinal.Value.Minutes, Horario.SabadoFinal.Value.Seconds);
                                            }
                                            if (fecha.ToString("dddd", new CultureInfo("es-MX")) == "domingo")
                                            {
                                                Inicial = new TimeSpan(Horario.DomingoInicio.Value.Hours, Horario.DomingoInicio.Value.Minutes, Horario.DomingoInicio.Value.Seconds);
                                                Final   = new TimeSpan(Horario.DomingoFinal.Value.Hours, Horario.DomingoFinal.Value.Minutes, Horario.DomingoFinal.Value.Seconds);
                                            }
                                            if (H < Inicial || H > Final)
                                            {
                                                ClienteEventos horarioDesfasado = new ClienteEventos();
                                                horarioDesfasado.Codigo        = "00";
                                                horarioDesfasado.Descripcion   = "La alarma se activo/Desactivo fuera de sus horarios de operaciones";
                                                horarioDesfasado.Numero        = "N/A";
                                                horarioDesfasado.ParticionArea = "N/A";
                                                horarioDesfasado.Tipo          = "N/A";
                                                Eventos.Add(horarioDesfasado);
                                            }
                                        }
                                    }
                                    if (ClienteEvento.Tipo == "Sensor")
                                    {
                                        if (clienteSensores.Where(x => x.NumeroDeSensor == clienteEventos.Numero).Any())
                                        {
                                            clienteEventos.Ubicacion = clienteSensores.Where(x => x.NumeroDeSensor == clienteEventos.Numero).First().Ubicacion;
                                        }
                                        else
                                        {
                                            clienteEventos.Ubicacion = "Ubicacion desconocidad";
                                        }
                                    }
                                    else if (ClienteEvento.Tipo == "Usuario")
                                    {
                                        clienteEventos.Ubicacion = "N/A";
                                    }
                                    else
                                    {
                                        clienteEventos.Ubicacion = "N/A";
                                    }
                                    clienteEventos.ParticionArea = Zona;
                                }
                                if (!ParticionZona)
                                {
                                    Eventos.Add(clienteEventos);
                                }
                            }
                            this.TextBox_Log.AppendText(this.textBox1.Text + Environment.NewLine);
                            Guid IdLog = Guid.NewGuid();
                            db.InsertLogMonitoreo360(IdLog, this.textBox1.Text, Guid.Parse("8BEAD89F-B0CA-4CA9-9268-4DE6C727E3A2"), DateTime.Now);
                            this.textBox1.Text = "";
                            Guid          IdIncidente = Guid.NewGuid();
                            ClienteAlerta form        = new ClienteAlerta(IdUsuario, IdIncidente);
                            form.setInfo(cliente, IdLog);
                            db.InsertIncidentes(IdIncidente, cliente.IdCliente, IdLog, "", DateTime.Now, null, null, true, DateTime.Now, Guid.Parse("8BEAD89F-B0CA-4CA9-9268-4DE6C727E3A2"));
                            form.setEventos(Eventos);
                            form.setButton(this.Button, this.panel);
                            //form.MdiParent = this.MdiParent;
                            form.ShowDialog();
                            //ClienteInfo form = new ClienteInfo();

                            /*form.MdiParent = this.MdiParent;
                             * form.Show();
                             * form.setInfo(cliente);
                             * form.setEventos(Eventos);*/
                        }
                    }
                }
                catch (Exception ex)
                {
                    textBox1.Text = "";
                    MetroFramework.MetroMessageBox.Show(this, "Error en el formato del texto:\n" + ex.Message + "\n" + ex.InnerException, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 200);
                }
            }
            else
            {
                MetroFramework.MetroMessageBox.Show(this, "Caracteres insuficientes", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, 200);
            }
        }