コード例 #1
0
        public void Actualizar(Micro micro)
        {
            if (micro.Habilitado)
            {

                String fechaAlta = DBTypeConverter.ToSQLDateTime(micro.FechaAlta);
                String fechaBajaDefinitiva = DBTypeConverter.ToSQLDateTime(micro.FechaBajaDefinitiva);
                String fechaFueraServicio = DBTypeConverter.ToSQLDateTime(micro.FechaFueraDeServicio);
                String fechaReinicioServicio = DBTypeConverter.ToSQLDateTime(micro.FechaReinicioDeServicio);

                SQLUtils.EjecutarConsultaConEfectoDeLado(
                        String.Format(@"
                            UPDATE LCDTMAB.Micros
                            SET Micro_Baja_Por_Fin_Vida_Util = '{0}', Micro_Baja_Por_Fuera_Servicio = '{1}',
                                Micro_Fecha_Alta = '{2}',
                                Micro_Fecha_Baja_Definitiva = '{3}', Micro_Fecha_Baja_Por_Fuera_Servicio = '{4}',
                                Micro_Fecha_Reinicio_Servicio = '{5}', Micro_KG_Disponibles = '{6}',
                                Micro_Marca = '{7}', Micro_Modelo = '{8}',
                                Micro_Patente = '{9}', Micro_Tipo_Servicio = '{10}'
                            WHERE Micro_Patente = '{9}'",
                            micro.BajaDefinitiva, micro.FueraDeServicio,
                            fechaAlta,
                            fechaBajaDefinitiva, fechaFueraServicio,
                            fechaReinicioServicio, micro.KGSDisponibles,
                            micro.Marca, micro.Modelo,
                            micro.Patente, micro.TipoDeServicio.Tipo)
                        );
            }
            else
                this.CambioDeMicrosCon(micro);
        }
コード例 #2
0
 public MicroWindow(Micro Micro, ModoApertura Modo)
 {
     this.InitializeComponent();
     this.Micro = Micro;
     this.Modo = Modo;
     this.datePickerBaja.Value = DateTime.Now;
     this.datePickerReincorporacion.Value = DateTime.Now;
     this.ConfigurarVistaSegunModo();
 }
コード例 #3
0
        private Micro DataRowToMicro(DataRow row)
        {
            var patente = row["Micro_Patente"].ToString();
                var modelo = row["Micro_Modelo"].ToString();
                var fechaAlta = DBTypeConverter.ToDateTime(row["Micro_Fecha_Alta"]);
                var fechaReinicio = DBTypeConverter.ToDateTime(row["Micro_Fecha_Reinicio_Servicio"]);
                var fueraDeServicio = row["Micro_Fecha_Baja_Por_Fuera_Servicio"];
                var fechaFueraServicio = DBTypeConverter.ToDateTime(fueraDeServicio);
                var baja4gud = row["Micro_Fecha_Baja_Definitiva"];
                DateTime bajaDefinitiva = DBTypeConverter.ToDateTime(baja4gud);
                var tipoServicio = new TipoServicio(row["Micro_Tipo_Servicio"].ToString());
                var marca = row["Micro_Marca"].ToString();

                var estaBajoFueraDeServicio = Boolean.Parse(row["Micro_Baja_Por_Fuera_Servicio"].ToString());
                var estaBajoForGud = Boolean.Parse(row["Micro_Baja_Por_Fin_Vida_Util"].ToString());
                var kgsDisponibles = Double.Parse(row["Micro_KG_Disponibles"].ToString());
                var numero = int.Parse(row["Micro_Numero"].ToString());
                var butacas = ButacasRepository.Instance.BuscarPorPatenteMicro(patente);

                var micro = new Micro(patente, modelo, marca, tipoServicio, fechaAlta, fechaReinicio,
                    fechaFueraServicio, bajaDefinitiva, estaBajoFueraDeServicio, estaBajoForGud,
                    kgsDisponibles, numero, butacas);
                return micro;
        }
コード例 #4
0
 private void CambioDeMicrosCon(Micro micro)
 {
     ViajesRepository.Instance.ViajesPendientesDe(micro);
     //aca ejecuto el stored procedure que hace la magia correspondiente
 }
コード例 #5
0
 public virtual void InsertarOActualizar(Micro micro)
 {
     if (this.ExistePatente(micro.Patente))
         this.Actualizar(micro);
     else
         this.Insertar(micro);
 }
コード例 #6
0
        private void listado_micros_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 7)
            {
                Int32 id_micro = Convert.ToInt32(listado_micros.Rows[e.RowIndex].Cells["id_micro"].Value.ToString());
                String query = "select mi.ID_MICRO, mi.PATENTE, mi.MODELO, mi.CANT_BUTACAS, mi.CANT_KG, ma.DESCRIPCION, ts.DESCRIPCION " +
                               "from SASHAILO.Micro mi " +
                               "join SASHAILO.Marca_Micro ma on ma.ID_MARCA = mi.ID_MARCA " +
                               "join SASHAILO.Tipo_Servicio ts on ts.ID_TIPO_SERVICIO = mi.ID_TIPO_SERVICIO " +
                               "where mi.ID_MICRO = " + id_micro + "";
                Conexion cn = new Conexion();
                SqlDataReader consulta = cn.consultar(query);
                if (consulta.Read())
                {
                    string patente = consulta.GetString(1);
                    string modelo = consulta.GetString(2);
                    int cant_butacas = consulta.GetInt32(3);
                    decimal cant_kg = consulta.GetDecimal(4);
                    string marca = consulta.GetString(5);
                    string tipo_serv = consulta.GetString(6);

                    Micro mic = new Micro();
                    mic.id = id_micro;
                    mic.patente = patente;
                    mic.marca = marca;
                    mic.modelo = modelo;
                    mic.servicio = tipo_serv;
                    mic.cant_kg = cant_kg;
                    mic.cant_butacas = cant_butacas;

                    this.micro = mic;

                }
                cn.desconectar();

                Seleccionar_Micro.ActiveForm.Close();

            }
        }
コード例 #7
0
 private void botonLimpiar_Click(object sender, EventArgs e)
 {
     this.Selected = null;
     this.UnbindGrilla();
     this.RefrescarGrilla();
 }
コード例 #8
0
 public override bool AceptaSubir(Micro micro)
 {
     return(lugaresLibres >= micro.lugaresDisponibles);
 }
コード例 #9
0
 public static Task <string> BrokerDnsAsync <T>(T input, Micro micro) where T : IInputDto
 {
     return(BrokerDnsAsync(input.ToDic(), micro));
 }
コード例 #10
0
 public static string BrokerDns <T>(T input, Micro micro) where T : IInputDto
 {
     return(BrokerDns(input.ToDic(), micro));
 }
コード例 #11
0
 /// <summary>
 /// 异步 处理器代理 设定目标服务
 /// </summary>
 /// <param name="input">键值对</param>
 /// <returns>字符串结果</returns>
 public static async Task <string> BrokerDnsAsync(Dictionary <string, string> input, Micro micro)
 {
     return(await Task.Run(() => BrokerDns(input, micro)));
 }
コード例 #12
0
 public ButacaWindow(Micro Micro)
     : this()
 {
     this.Micro = Micro;
 }
コード例 #13
0
        /// <summary>
        /// 设置调用链 TraceId
        /// </summary>
        /// <param name="input"></param>
        /// <param name="micro">目标服务</param>
        public static sys_trace SetTraceId(Dictionary <string, string> input, Micro micro = null)
        {
            if (!SettingService.TraceOnOff)
            {
                return(null);
            }
            #region 分布式追踪不记录自己,防止调用链循环调用 +TraceRecord

            if (input[Const.Enum.Eng.NAMESPACE] == Namespace && input[Const.Enum.Eng.CLASS] == Class)
            {
                return(null);
            }
            if (input[Const.Enum.Eng.NAMESPACE] == "Anno.Plugs.Monitor" && input[Const.Enum.Eng.CLASS] == "Resource")
            {
                return(null);
            }
            #endregion
            #region 调用链唯一标识+ TraceId
            string TraceId       = "TraceId";       //调用链唯一标识
            string PreTraceId    = "PreTraceId";    //上一级调用链唯一标识
            string AppName       = "AppName";       //调用方AnnoService 名称
            string AppNameTarget = "AppNameTarget"; //目标AnnoService 名称
            string TTL           = "TTL";           //分布式调用计数器 默认0
            string GlobalTraceId = "GlobalTraceId";
            if (input.ContainsKey(TraceId))
            {
                input[PreTraceId] = input[TraceId];            //当前TraceId 变为上一级 TraceId(PreTraceId)
                input[TraceId]    = Guid.NewGuid().ToString(); //生成新的调用链唯一标识
            }
            else
            {
                input.Add(TraceId, Guid.NewGuid().ToString());
                input.Add(PreTraceId, string.Empty);
            }
            //追踪全局标识
            if (!input.ContainsKey(GlobalTraceId))
            {
                input.Add(GlobalTraceId, Guid.NewGuid().ToString());
            }
            #endregion

            #region App名称+AppName
            if (input.ContainsKey(AppName))
            {
                input[AppName] = SettingService.AppName ?? string.Empty;
            }
            else
            {
                input.Add(AppName, SettingService.AppName ?? string.Empty);
            }
            #endregion
            #region 目标APP地址
            if (micro != null)
            {
                string target = "Target";
                if (input.ContainsKey(target))
                {
                    input[target] = micro.Ip + ":" + micro.Port;
                }
                else
                {
                    input.Add(target, micro.Ip + ":" + micro.Port);
                }

                if (input.ContainsKey(AppNameTarget))
                {
                    input[AppNameTarget] = micro.Nickname ?? string.Empty;
                }
                else
                {
                    input.Add(AppNameTarget, micro.Nickname ?? string.Empty);
                }
            }
            #endregion
            #region App+跳转次数
            if (input.ContainsKey(TTL))
            {
                int.TryParse(input[TTL], out int ttl);
                if (ttl >= CallChainDepth)
                {
                    throw new GrpcException($"调用链深度不能超过{CallChainDepth},请检查业务或调整深度:Anno.Rpc.Client.TransmitTrace.CallChainDepth");
                }
                input[TTL] = (ttl + 1).ToString();
            }
            else
            {
                input.Add(TTL, "0");
            }
            #endregion

            return(TracePool.CreateTrance(input));
        }
コード例 #14
0
 public override bool AceptaSubir(Micro micro)
 {
     return(micro.asientosDisponibles > 0);
 }
コード例 #15
0
ファイル: ThriftConfig.cs プロジェクト: zxbe/Anno.Core
        /// <summary>
        /// 加载节点
        /// </summary>
        /// <param name="input">"name=dc1,ip=192.168.X.X,port=6659,timeout=3000,weight=5"</param>
        public bool Add(Micro input)
        {
            lock (LockAdd)
            {
                try
                {
                    var ip = GetValidIp(input.Ip, input.Port);
                    if (ip == string.Empty)
                    {
                        return(false);
                    }
                    ServiceInfo ips = new ServiceInfo
                    {
                        Timeout  = input.Timeout,
                        Name     = input.Name,
                        NickName = input.Nickname,
                        Ip       = ip,
                        Port     = input.Port
                    };
                    int weight = input.Weight <= 0 ? 1 : input.Weight;
                    ips.Weight = weight;
                    #region 原有服务
                    var oldService = ServiceInfoList.FirstOrDefault(t => ips.Ip == t.Ip && ips.Port == t.Port);
                    #endregion
                    ServiceInfoList.RemoveAll(t => ips.Ip == t.Ip && ips.Port == t.Port);
                    for (int w = 0; w < weight; w++) //权重
                    {
                        ServiceInfoList.Add(ips);
                    }

                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                    Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss}");
                    Console.WriteLine($"{ips.Ip}:{ips.Port}");
                    ips.Name.Split(',').ToList().ForEach(f =>
                    {
                        Console.WriteLine($"{f}");
                    });
                    Console.WriteLine($"{"w:" + ips.Weight}");
                    Console.WriteLine($"{ips.NickName}已登记!");
                    Console.ResetColor();
                    Console.WriteLine($"----------------------------------------------------------------- ");
                    #region  线和变更通知
                    if (OnlineNotice != null && oldService == null)
                    {
                        OnlineNotice.Invoke(ips, NoticeType.OnLine);
                    }
                    else if (ChangeNotice != null && oldService != null)
                    {
                        ChangeNotice.Invoke(ips, oldService);
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    return(false);
                }
                finally
                {
                    Save();
                }
            }
            return(true);
        }
コード例 #16
0
 private void grillaMicros_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     this.Selected = (Micro)this.grillaMicros.CurrentRow.DataBoundItem;
 }
コード例 #17
0
        public void Insertar(Micro micro)
        {
            String fechaAlta = DBTypeConverter.ToSQLDateTime(micro.FechaAlta);
            String fechaBajaDefinitiva = DBTypeConverter.ToSQLDateTime(micro.FechaBajaDefinitiva);
            String fechaFueraServicio = DBTypeConverter.ToSQLDateTime(micro.FechaFueraDeServicio);
            String fechaReinicioServicio = DBTypeConverter.ToSQLDateTime(micro.FechaReinicioDeServicio);

            var query = String.Format(@"
                        INSERT INTO LCDTMAB.Micros
                            (Micro_Baja_Por_Fin_Vida_Util, Micro_Baja_Por_Fuera_Servicio,
                            Micro_Fecha_Alta, Micro_Fecha_Baja_Definitiva,
                            Micro_Fecha_Baja_Por_Fuera_Servicio, Micro_Fecha_Reinicio_Servicio,
                            Micro_KG_Disponibles, Micro_Marca, Micro_Modelo,
                            Micro_Patente, Micro_Tipo_Servicio)
                        VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}',
                                '{6}', '{7}', '{8}', '{9}', '{10}')",
                        micro.BajaDefinitiva, micro.FueraDeServicio, fechaAlta,
                        fechaBajaDefinitiva, fechaFueraServicio, fechaReinicioServicio, micro.KGSDisponibles,
                        micro.Marca, micro.Modelo, micro.Patente, micro.TipoDeServicio.Tipo);
            SQLUtils.EjecutarConsultaConEfectoDeLado(query);

            foreach (Butaca butaca in micro.Butacas) {
                SQLUtils.EjecutarConsultaConEfectoDeLado(String.Format(@"
                        INSERT INTO LCDTMAB.Butacas(Butaca_Piso,
                                                    Butaca_Numero,
                                                    Butaca_Tipo,
                                                    Butaca_Micro_Patente)
                        VALUES ('{0}', '{1}', '{2}', '{3}')",
                        butaca.Piso, butaca.Numero, butaca.Ubicacion[0], micro.Patente));
            }
        }
コード例 #18
0
        /// <summary>
        /// 加载节点
        /// </summary>
        /// <param name="input">"name=dc1,ip=192.168.X.X,port=6659,timeout=3000,weight=5"</param>
        public bool Add(Micro input)
        {
            lock (LockAdd)
            {
                try
                {
                    var ip = GetValidIp(input.Ip, input.Port);
                    if (ip == string.Empty)
                    {
                        return(false);
                    }
                    ServiceInfo ips = new ServiceInfo
                    {
                        Timeout  = input.Timeout,
                        Name     = input.Name,
                        NickName = input.Nickname,
                        Ip       = ip,
                        Port     = input.Port
                    };
                    int weight = input.Weight <= 0 ? 1 : input.Weight;
                    ips.Weight = weight;
                    #region 原有服务
                    var oldService = ServiceInfoList.FirstOrDefault(t => ips.Ip == t.Ip && ips.Port == t.Port);
                    #endregion
                    ServiceInfoList.RemoveAll(t => ips.Ip == t.Ip && ips.Port == t.Port);
                    for (int w = 0; w < weight; w++) //权重
                    {
                        ServiceInfoList.Add(ips);
                    }
                    StringBuilder stringBuilder = new StringBuilder();
                    stringBuilder.AppendLine($"{ips.Ip}:{ips.Port}");
                    foreach (var f in ips.Name.Split(','))
                    {
                        stringBuilder.AppendLine($"{f}");
                    }
                    stringBuilder.AppendLine($"{"权重:" + ips.Weight}");
                    stringBuilder.AppendLine($"{ips.NickName}已登记!");
                    Log.Anno(stringBuilder.ToString());

                    #region  线和变更通知
                    if (OnlineNotice != null && oldService == null)
                    {
                        OnlineNotice.Invoke(ips, NoticeType.OnLine);
                    }
                    else if (ChangeNotice != null && oldService != null)
                    {
                        ChangeNotice.Invoke(ips, oldService);
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    Log.Anno(ex, typeof(ThriftConfig));
                    return(false);
                }
                finally
                {
                    Save();
                }
            }
            return(true);
        }