Exemple #1
0
        private bool SetParametros()
        {
            var parametros = EditObject.TiposParametro.Cast <TipoParametroDispositivo>().ToList();

            EditObject.TiposParametro.Clear();
            var reset = false;
            var di    = DeletedIds.Get();

            foreach (C1GridViewRow row in grid.Rows)
            {
                var id        = Convert.ToInt32(grid.DataKeys[row.RowIndex].Value);
                var parametro = id > 0 ? parametros.FirstOrDefault(p => p.Id == id) : null;
                if (parametro == null)
                {
                    parametro = new TipoParametroDispositivo {
                        DispositivoTipo = EditObject
                    }
                }
                ;

                var par = new Parameter(row);
                reset |= par.ChkReboot.Checked && (id == 0 || parametro.Nombre != par.TxtNombre.Text);

                par.Fill(parametro);

                EditObject.TiposParametro.Add(parametro);
            }
            return(reset);
        }
 public DetalleDispo(TipoParametroDispositivo parametro, string valor) : this(parametro)
 {
     if (valor != null)
     {
         Valor = valor;
     }
 }
Exemple #3
0
 public void Bind(TipoParametroDispositivo parametro)
 {
     TxtNombre.Text       = parametro.Nombre;
     TxtDescripcion.Text  = parametro.Descripcion;
     TxtTipoDato.Text     = parametro.TipoDato;
     TxtConsumidor.Text   = parametro.Consumidor;
     TxtValorInicial.Text = parametro.ValorInicial;
     ChkEditable.Checked  = parametro.Editable;
     ChkReboot.Checked    = parametro.RequiereReset;
 }
Exemple #4
0
 public TipoParametroDispositivo Fill(TipoParametroDispositivo parametro)
 {
     parametro.Consumidor    = TxtConsumidor.Text;
     parametro.Descripcion   = TxtDescripcion.Text;
     parametro.Editable      = ChkEditable.Checked;
     parametro.Nombre        = TxtNombre.Text;
     parametro.TipoDato      = TxtTipoDato.Text;
     parametro.ValorInicial  = TxtValorInicial.Text;
     parametro.RequiereReset = ChkReboot.Checked;
     return(parametro);
 }
 public TipoParametroDispositivoVo(TipoParametroDispositivo tipoParametroDispositivo)
 {
     Id            = tipoParametroDispositivo.Id;
     Nombre        = tipoParametroDispositivo.Nombre;
     Descripcion   = tipoParametroDispositivo.Descripcion;
     TipoDato      = tipoParametroDispositivo.TipoDato;
     Consumidor    = tipoParametroDispositivo.Consumidor;
     ValorInicial  = tipoParametroDispositivo.ValorInicial;
     Editable      = tipoParametroDispositivo.Editable ? "X" : string.Empty;
     RequiereReset = tipoParametroDispositivo.RequiereReset ? "X" : string.Empty;
 }
 public DetalleDispo(TipoParametroDispositivo parametro)
 {
     Id          = 0;
     Parametro   = parametro.Nombre;
     Descripcion = parametro.Descripcion;
     Tipo        = parametro.TipoDato;
     Valor       = parametro.ValorInicial;
     Default     = parametro.ValorInicial;
     Editable    = parametro.Editable;
     IdParametro = parametro.Id;
 }
Exemple #7
0
        private void BindParametros(bool add)
        {
            var parametros = EditObject.TiposParametro
                             .Cast <TipoParametroDispositivo>()
                             .OrderBy(d => d.Descripcion)
                             .ToList();

            foreach (C1GridViewRow row in grid.Rows)
            {
                var id = Convert.ToInt32(grid.DataKeys[row.RowIndex].Value);

                if (id > 0)
                {
                    continue;
                }
                if (row.RowIndex == _deletedIndex)
                {
                    continue;
                }
                var parametro = new TipoParametroDispositivo {
                    DispositivoTipo = EditObject
                };

                var par = new Parameter(row);
                par.Fill(parametro);
                parametros.Add(parametro);
            }
            var del = DeletedIds.Get();

            parametros = parametros.Where(p => !del.Contains(p.Id)).ToList();
            if (add)
            {
                parametros.Add(new TipoParametroDispositivo {
                    DispositivoTipo = EditObject, Nombre = string.Empty
                });
            }

            grid.DataSource = parametros;
            grid.DataBind();
        }
        /// <summary>
        /// Generates a new device parameter type with the givenn values.
        /// </summary>
        /// <param name="device"></param>
        /// <param name="param"></param>
        /// <param name="daoFactory"></param>
        private static void GenerateDeviceParameterType(Dispositivo device, IList <object> param, DAOFactory daoFactory)
        {
            var parameter = (string)param[0];

            if (device.TipoDispositivo.FindByName(parameter) != null)
            {
                return;
            }

            var type = new TipoParametroDispositivo
            {
                Consumidor      = (string)param[2],
                Descripcion     = parameter,
                DispositivoTipo = device.TipoDispositivo,
                Editable        = Convert.ToBoolean(param[5]),
                Nombre          = parameter,
                Metadata        = string.Empty,
                TipoDato        = (string)param[3],
                ValorInicial    = (string)param[4]
            };

            daoFactory.TipoParametroDispositivoDAO.SaveOrUpdate(type);
        }
Exemple #9
0
        protected override HandleResults OnDeviceHandleMessage(SetDetail message)
        {
            STrace.Debug(GetType().FullName, message.DeviceId, String.Format("SetDetail Processing: Name={0} Value={1}", message.GetUserSetting(SetDetail.Fields.Name), message.GetUserSetting(SetDetail.Fields.Value)));
            if (String.IsNullOrEmpty(message.GetUserSetting(SetDetail.Fields.Name)))
            {
                return(HandleResults.SilentlyDiscarded);
            }

            DaoFactory.Session.Refresh(Dispositivo);

            var userSettingName  = message.GetUserSetting(SetDetail.Fields.Name);
            var userSettingValue = message.GetUserSetting(SetDetail.Fields.Value);

            if (userSettingName == "Telephone")
            {
                Dispositivo.Telefono = userSettingValue ?? String.Empty;
                DaoFactory.DispositivoDAO.SaveOrUpdate(Dispositivo);
                return(HandleResults.Success);
            }

            if (userSettingName == "Port")
            {
                try
                {
                    Dispositivo.Port = Convert.ToInt32(userSettingValue ?? "0");
                    DaoFactory.DispositivoDAO.SaveOrUpdate(Dispositivo);
                    return(HandleResults.Success);
                }
                catch (Exception)
                {
                    return(HandleResults.SilentlyDiscarded);
                }
            }

            using (var transaction = SmartTransaction.BeginTransaction())
            {
                try
                {
                    var name         = (userSettingName ?? String.Empty).ToLower();
                    var consumidor   = message.GetUserSetting(SetDetail.Fields.Consumidor) ?? String.Empty;
                    var editable     = message.GetUserSetting(SetDetail.Fields.Editable) == "true";
                    var metadata     = message.GetUserSetting(SetDetail.Fields.Metadata) ?? String.Empty;
                    var reset        = message.GetUserSetting(SetDetail.Fields.RequiereReset) == "true";
                    var tipo         = message.GetUserSetting(SetDetail.Fields.TipoDato) ?? String.Empty;
                    var valorinicial = message.GetUserSetting(SetDetail.Fields.ValorInicial) ?? String.Empty;
                    var valor        = userSettingValue ?? String.Empty;

                    var tipoDispositivo = Dispositivo.TipoDispositivo;
                    var parametros      = tipoDispositivo.TiposParametro.Cast <TipoParametroDispositivo>();
                    var parametro       = parametros.FirstOrDefault(p => p.Nombre.ToLower() == name);
                    if (parametro == null)
                    {
                        parametro = new TipoParametroDispositivo
                        {
                            Consumidor      = consumidor,
                            Nombre          = name,
                            Descripcion     = name,
                            DispositivoTipo = tipoDispositivo,
                            Editable        = editable,
                            Metadata        = metadata,
                            RequiereReset   = reset,
                            TipoDato        = tipo,
                            ValorInicial    = valorinicial,
                        };

                        tipoDispositivo.TiposParametro.Add(parametro);

                        DaoFactory.TipoDispositivoDAO.SaveOrUpdate(tipoDispositivo);
                    }

                    var detalles = Dispositivo.DetallesDispositivo.Cast <DetalleDispositivo>();
                    var detalle  = detalles.FirstOrDefault(d => d.TipoParametro.Nombre.ToLower() == name);
                    if (detalle == null)
                    {
                        detalle = new DetalleDispositivo {
                            Dispositivo = Dispositivo, Revision = 0, TipoParametro = parametro
                        };

                        Dispositivo.AddDetalleDispositivo(detalle);
                    }

                    var changed = detalle.Valor != valor;
                    detalle.Valor = valor;
                    DaoFactory.DispositivoDAO.SaveOrUpdate(Dispositivo);
                    transaction.Commit();
                    if (changed && parametro.RequiereReset)
                    {
                        try
                        {
                            MessageSender.CreateReboot(Dispositivo, null).Send();
                        }
                        catch (Exception ex)
                        {
                            STrace.Exception(GetType().FullName, ex, Dispositivo.Id,
                                             String.Format("No se pudo enviar el comando Reboot al Dispositivo {0}", Dispositivo.Id));
                        }
                    }
                }
                catch (Exception ex)
                {
                    STrace.Exception(GetType().FullName, ex, message.DeviceId,
                                     String.Format("SetDetail Exception: Name={0} Value={1}", message.GetUserSetting(SetDetail.Fields.Name),
                                                   message.GetUserSetting(SetDetail.Fields.Value)));
                    transaction.Rollback();
                    throw ex;
                }
            }
            return(HandleResults.Success);
        }