// ***************************** ***************************** *****************************
        // constructor
        public RegistroModViewModel(RegistroModel p)
        {
            //this._ParentRegistro = registroViewModel;
            this._RegistroRepository = new Protell.DAL.Repository.RegistroRepository();
            this._PuntoMedicionRepository = new Protell.DAL.Repository.PuntoMedicionRepository();
            this._EstructuraRepository = new Protell.DAL.Repository.EstructuraRepository();
            this._CondProRepository = new Protell.DAL.Repository.CondProRepository();

            this._Registro = new RegistroModel()
            {
                IdRegistro = p.IdRegistro,
                PUNTOMEDICION = new PuntoMedicionModel()
                {
                    IdPuntoMedicion = p.IdPuntoMedicion,
                    PuntoMedicionName = p.PUNTOMEDICION.PuntoMedicionName
                },
                FechaCaptura = p.FechaCaptura,
                //HoraRegistro = p.HoraRegistro,
                HoraMilitar = p.HoraMilitar,
                DiaRegistro = p.DiaRegistro,
                Valor = p.Valor,
                AccionActual = p.AccionActual,
                IsActive = p.IsActive,
                Condicion = new CondProModel()
                {
                     IdCondicion = p.Condicion.IdCondicion,
                     CondicionName = p.Condicion.CondicionName
                },
            };
            this.LoadInfoGrid();
        }
 public Model.TrackingModel createTracking(RegistroModel registro,UsuarioModel usuario,string accion)
 {
     Model.TrackingModel track = new Model.TrackingModel();
     try
     {
         string valor="";
         valor = new JavaScriptSerializer().Serialize(registro);
         track.IdTracking = long.Parse(( String.Format("{0:yyyy:MM:dd:HH:mm:ss:fff}", DateTime.Now) ).Replace(":", ""));
         track.Accion = accion;
         track.Valor = valor;
         track.Ip = GetIP();
         track.Equipo = Environment.MachineName;
         track.Ubicacion = Environment.OSVersion.ToString();
         track.IdUsuario = usuario.IdUsuario;
         track.IsModified = true;
         track.LastModifiedDate = long.Parse((String.Format("{0:yyyy:MM:dd:HH:mm:ss:fff}", DateTime.Now)).Replace(":", ""));
         track.ServerLastModifiedDate = 0;
         track.IdPuntoMedicion = registro.IdPuntoMedicion;
         track.FechaNumerica =(long)registro.FechaNumerica;
     }
     catch (Exception)
     {
         ;
     }
     return track;
 }
        public void GetRegistroMod(RegistroViewModel view, RegistroModel p)
        {
            try
            {
                Confirmation confirmacion = new Confirmation();

                this.DataContext = new RegistroModViewModel(view, p,confirmacion);
            }
            catch (Exception)
            {

                ;
            }
        }
        //Editar registro existente
        public NuevoPuntoMedicion(RegistroModel registroModel, CategoriasViewModel vm)
        {
            InitializeComponent();
            capturaViewModel = new CapturaViewModel();
            capturaViewModel.PropertyChanged += capturaViewModel_PropertyChanged;
            categoriaViewModel = vm;
            capturaViewModel.InitEdit(registroModel, categoriaViewModel);
            this.DataContext = capturaViewModel;

            //dtpFecha.Focus();
            dtpFecha.IsEnabled = false;
            cbxHora.IsEnabled = false;
            cbxMinutos.IsEnabled = false;
        }
 //editar registro existente
 public void InitEdit(RegistroModel registro, CategoriasViewModel vmodel)
 {
     this.RegistroItem = registro;
     this.FechaCaptura = RegistroItem.FechaCaptura;
     SetEditFechaNumerica((long)registro.FechaNumerica);
     this.Valor = RegistroItem.Valor;
     this.AccionActual = RegistroItem.AccionActual;
     this.SelectedItemCondicion = RegistroItem.Condicion;
     categoriasViewModel = vmodel;
 }
 public void GetNewRegistro()
 {
     this._Registro = new RegistroModel()
     {
         IdRegistro = new UNID().getNewUNID(),
         PUNTOMEDICION = new PuntoMedicionModel()
         {
             IdPuntoMedicion = this._ParentRegistro.SelectedRegistro.IdPuntoMedicion,
             PuntoMedicionName = this._ParentRegistro.SelectedRegistro.PUNTOMEDICION.PuntoMedicionName,
             Visibility = this._ParentRegistro.SelectedRegistro.PUNTOMEDICION.Visibility,
             UIVisible = this._ParentRegistro.SelectedRegistro.PUNTOMEDICION.UIVisible,
             TIPOPUNTOMEDICION = new TipoPuntoMedicionModel() { TipoPuntoMedicionName = this._ParentRegistro.SelectedRegistro.PUNTOMEDICION.TIPOPUNTOMEDICION.TipoPuntoMedicionName },
             UNIDADMEDIDA = new UnidadMedidaModel()
             {
                 UnidadMedidaName = this._ParentRegistro.SelectedRegistro.PUNTOMEDICION.UNIDADMEDIDA.UnidadMedidaName,
                 UnidadMedidaShort = this._ParentRegistro.SelectedRegistro.PUNTOMEDICION.UNIDADMEDIDA.UnidadMedidaShort
             }
         },
         FechaCaptura = DateTime.Parse(string.Format("{0:dd/MM/yyyy}",DateTime.Now)) ,
         HoraMilitar = string.Format("{0:HH:mm}", DateTime.Now),
         DiaRegistro = GetDiaHora(0),
         IsActive = true,
     };
     this.FechaCapturaActual = this.Registro.FechaCaptura;
     this.HoraMilitarActual = this.Registro.HoraMilitar;
     //corresponde a la punto de medicion//01a. Vaso Cristo//01b. Vaso Fresnos//01b. Vaso Fresnos//01c. Vaso Carretas
     //02. Obra Toma de Río de los Remedios//05. Comp. SemiProfundo//07. Presa Poniente//08. Planta de bombeo Churubusco lago
     //12. Dren General del Valle//14. Comp. p/desfogue de la Lag. C. Colorada a Lag. Texcoco
     //18. Sistema Rio De la Compañía//20. OT Gran canal
     if (this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1056 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1000 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1004 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1005 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1006 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1051 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1007 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1052 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1011 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1059 ||
         this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1061)
     {
         this._Registro.AccionActual = "Abierta.";
     }
     //corresponde a la punto de medicion//03. San Andrés
     //09. Comp. salida sur de la laguna de reg. Horaria
     //15. Comp. p/desfogue de la Lag. C. Colorada al Túnel I. R. Remedios
     //16. P.B. Canal de Sales//17. Túnel Interceptor Rio de los remedios
     else if (this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1008 ||
              this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1053 ||
              this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1064 ||
              this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1057 ||
              this._ParentRegistro.SelectedRegistro.IdPuntoMedicion == 1058)
     {
         this._Registro.AccionActual = "Cerrada.";
     }
 }
        public void DefaultValues()
        {
            TimeZoneInfo mexZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time (Mexico)");
            DateTime utc = DateTime.UtcNow;
            DateTime convertMex = TimeZoneInfo.ConvertTimeFromUtc(utc, mexZone);

            DateTime dt = DateTime.Now;
            string Unid = (String.Format("{0:yyyy:MM:dd:HH:mm:ss:fff}", dt)).Replace(":","");
            string date = DateTime.Now.ToString();
            this.SelectedHora = ( String.Format("{0:HH}", dt) ).Replace(":", "");
            this.SelectedMinuto = ( String.Format("{0:mm}", dt) ).Replace(":", "");
            RegistroModel def;
            def = new RegistroModel();
                def.IdRegistro = long.Parse(Unid);
                def.IdPuntoMedicion = SelectedItemTabControl.IdPuntoMedicion;
                def.FechaCaptura = DateTime.Parse(string.Format("{0:dd/MM/yyyy}", dt));
                def.HoraRegistro = int.Parse(this.SelectedHora + this.SelectedMinuto);
                def.DiaRegistro = int.Parse(( String.Format("{0:dd}", dt) ).Replace(":", ""));
                def.Valor = 0;
                def.PUNTOMEDICION = SelectedItemTabControl;
                def.AccionActual = accionRepository.GetAccionActual(def.IdPuntoMedicion);
                def.FechaNumerica = ConvertFechaNumerica(def.FechaCaptura, def.HoraMilitar);
                def.Condicion = ( from c in Condicion
                                  select c ).First();
            this.SelectedItemPopUp = def;
            def = null;
        }
 // ***************************** ***************************** *****************************
 // constructor que recibe un viewmodel
 public RegistroModViewModel(RegistroViewModel registroViewModel, RegistroModel p, IConfirmation confirmation)
 {
     this._ParentRegistro = registroViewModel;
     this._RegistroRepository = new Protell.DAL.Repository.RegistroRepository();
     //this._PuntoMedicionRepository = new Protell.DAL.Repository.PuntoMedicionRepository();
     this._PuntoMedicionMaxMinRepository = new Protell.DAL.Repository.PuntoMedicionMaxMinRepository();
     this._EstructuraRepository = new Protell.DAL.Repository.EstructuraRepository();
     this._CondProRepository = new Protell.DAL.Repository.CondProRepository();
     this._Confirmation = confirmation;
     this._Registro = new RegistroModel()
     {
         IdRegistro = p.IdRegistro,
         PUNTOMEDICION = new PuntoMedicionModel()
         {
             IdPuntoMedicion = p.IdPuntoMedicion,
             PuntoMedicionName = p.PUNTOMEDICION.PuntoMedicionName,
             Visibility = p.PUNTOMEDICION.Visibility,
             UIVisible = p.PUNTOMEDICION.UIVisible,
             TIPOPUNTOMEDICION = new TipoPuntoMedicionModel()
             {
                 TipoPuntoMedicionName = p.PUNTOMEDICION.TIPOPUNTOMEDICION.TipoPuntoMedicionName
             },
             UNIDADMEDIDA = new UnidadMedidaModel()
             {
                 UnidadMedidaName = p.PUNTOMEDICION.UNIDADMEDIDA.UnidadMedidaName,
                 UnidadMedidaShort = p.PUNTOMEDICION.UNIDADMEDIDA.UnidadMedidaShort
             }
         },
         FechaCaptura = p.FechaCaptura,
         HoraRegistro = p.HoraRegistro,
         DiaRegistro = p.DiaRegistro,
         Valor = p.Valor,
         AccionActual = p.AccionActual,
         IsActive = p.IsActive,
         Condicion = new CondProModel()
         {
             IdCondicion = p.Condicion.IdCondicion,
             CondicionName= p.Condicion.CondicionName,
             PathCodicion = p.Condicion.PathCodicion
         }
     };
     this.FechaCapturaActual = this.Registro.FechaCaptura;
     this.HoraMilitarActual = this.Registro.HoraMilitar;
     this.LoadInfoGrid();
 }
 // Constructor y carga de elementos filtrados por punto de medicion.
 public RegistroViewModel(PuntoMedicionModel viewModel)
 {
     this._RegistroRepository = new Protell.DAL.Repository.RegistroRepository();
     this._SelectedRegistro = new RegistroModel() { IdPuntoMedicion = viewModel.IdPuntoMedicion, PUNTOMEDICION = viewModel };
     this.LoadInfoGrid();
 }
 public void LoadRegistroAdd()
 {
     if (this._SelectedRegistro != null)
     {
         RegistroModel _AuxSelectedRegistro = this._SelectedRegistro;
         this.Registros = this._RegistroRepository.GetByIdRegistros(this._SelectedRegistro) as ObservableCollection<RegistroModel>;
         this._SelectedRegistro = _AuxSelectedRegistro;
     }
 }
        public void LoadByIdRegistroMod(RegistroModel registro)
        {
            RegistroModel resposeRegistro = null;
            if (registro != null)
                resposeRegistro = this._RegistroRepository.GetRegistroID(registro);

            if (resposeRegistro !=null)
            {
                foreach (RegistroModel item in this.Registros)
                {
                    if (item.IdRegistro == resposeRegistro.IdRegistro)
                    {
                        item.IdRegistro = resposeRegistro.IdRegistro;
                        item.IdPuntoMedicion = resposeRegistro.IdPuntoMedicion;
                        item.IdCondicion = resposeRegistro.IdCondicion;
                        item.HoraRegistro = resposeRegistro.HoraRegistro;
                        item.HoraMilitar = CovertIntHora(item.HoraRegistro);
                        item.Valor = resposeRegistro.Valor;
                        item.AccionActual = resposeRegistro.AccionActual;
                        item.FechaCaptura = resposeRegistro.FechaCaptura;
                        item.Condicion = resposeRegistro.Condicion;
                        item.PUNTOMEDICION = resposeRegistro.PUNTOMEDICION;
                        item.PUNTOMEDICION.TIPOPUNTOMEDICION = resposeRegistro.PUNTOMEDICION.TIPOPUNTOMEDICION;
                        item.PUNTOMEDICION.UNIDADMEDIDA = resposeRegistro.PUNTOMEDICION.UNIDADMEDIDA;
                        break;
                    }
                }
            }
        }
        private string GetSqlInsertString(RegistroModel r, bool notIncludeUnion)
        {
            string sql = "select ";
            sql += r.IdRegistro.ToString() + ",";
            sql += r.IdPuntoMedicion.ToString() + ",";
            sql += "'" + String.Format("{0:yyyyMMdd HH:mm:ss}", DateTime.ParseExact(r.FechaNumerica.ToString().Substring(0, 8), "yyyyMMdd", CultureInfo.InvariantCulture)) + "',";
            sql += r.HoraRegistro.ToString() + ",";
            sql += r.DiaRegistro.ToString() + ",";
            sql += r.Valor.ToString() + ",";
            sql += "'" + r.AccionActual.ToString() + "',";
            sql += (r.IsActive ? 1 : 0).ToString() + ",";
            sql += (r.IsModified ? 1 : 0).ToString() + ",";
            sql += r.LastModifiedDate.ToString() + ",";
            sql += r.IdCondicion.ToString() + ",";
            sql += r.ServerLastModifiedDate.ToString() + ",";
            sql += r.FechaNumerica.ToString() + "";
            sql += (notIncludeUnion) ? "" : " union all";

            return sql;
        }
        public bool Insert(RegistroModel item, UsuarioModel user)
        {
            bool x = false;
            try
            {
                using (var entity = new db_SeguimientoProtocolo_r2Entities())
                {
                    if (item != null)
                    {
                        CI_REGISTRO result = null;
                        try
                        {
                            result = (from i in entity.CI_REGISTRO
                                      where i.IdRegistro == item.IdRegistro
                                      select i).First();
                        }
                        catch (Exception)
                        {
                            try
                            {
                                result = (from i in entity.CI_REGISTRO
                                          where i.IdPuntoMedicion == item.IdPuntoMedicion
                                          && i.FechaNumerica == item.FechaNumerica
                                          select i).FirstOrDefault();
                            }
                            catch (Exception)
                            {
                            }
                        }

                        try
                        {
                            if (result == null)
                            {
                                entity.CI_REGISTRO.AddObject(
                                    new CI_REGISTRO()
                                    {
                                        IdRegistro = item.IdRegistro,
                                        IdPuntoMedicion = item.PUNTOMEDICION.IdPuntoMedicion,
                                        FechaCaptura = item.FechaCaptura,
                                        HoraRegistro = item.HoraRegistro,
                                        DiaRegistro = item.DiaRegistro,
                                        Valor = item.Valor,
                                        AccionActual = item.AccionActual,
                                        IsActive = true,
                                        IsModified = true,
                                        LastModifiedDate = new UNID().getNewUNID(),
                                        IdCondicion = item.Condicion.IdCondicion,
                                        FechaNumerica = item.FechaNumerica
                                    });
                                entity.SaveChanges();
                                trackRepository.InsertTracking(trackRepository.createTracking(item, user, "Insert"));
                                _SyncRepository.UpdateIsModifiedData(ID_SYNCTABLE);
                            }
                            else
                            {
                                string query =
                                             "DECLARE @FechaNumerica bigint=" + item.FechaNumerica + ";"
                                            + " DECLARE @IdPuntoMedicion bigint=" + item.PUNTOMEDICION.IdPuntoMedicion + ";"
                                            + " DECLARE @Valor float={0};"
                                            + " DECLARE @AccionActual nvarchar(1000)='" + item.AccionActual + "';"
                                            + " DECLARE @IdCondicion bigint=" + item.Condicion.IdCondicion+";"
                                            +"\n"
                                            +" update CI_REGISTRO"
                                            +"	set "
                                            +"		Valor=@Valor,"
                                            +"		AccionActual=@AccionActual,"
                                            +"		IdCondicion=@IdCondicion,"
                                            +"		IsModified=1,"
                                            +"		LastModifiedDate=dbo.UDF_NewUnid() "
                                            +"	where IdPuntoMedicion=@IdPuntoMedicion "
                                            +"	and FechaNumerica=@FechaNumerica ;"
                                            +"SELECT 1";

                                //result.IdPuntoMedicion = item.PUNTOMEDICION.IdPuntoMedicion;
                                //result.FechaCaptura = item.FechaCaptura;
                                //result.HoraRegistro = item.HoraRegistro;
                                //result.DiaRegistro = item.DiaRegistro;
                                //result.Valor = item.Valor;
                                //result.AccionActual = item.AccionActual;
                                //result.IsModified = true;
                                //result.LastModifiedDate = new UNID().getNewUNID();
                                //result.IdCondicion = item.Condicion.IdCondicion;
                                //result.FechaNumerica = item.FechaNumerica;
                                object[] parametros=new object[5];
                                parametros[0] = item.FechaNumerica;
                                parametros[1] = item.PUNTOMEDICION.IdPuntoMedicion;
                                parametros[2] = item.Valor;
                                parametros[3] = item.AccionActual;
                                parametros[4] = item.Condicion.IdCondicion;
                                entity.ExecuteStoreQuery<int?>(query, item.Valor);
                                //entity.SaveChanges();
                                _SyncRepository.UpdateIsModifiedData(ID_SYNCTABLE);
                                trackRepository.InsertTracking(trackRepository.createTracking(item, user, "Update"));
                            }
                            x = true;
                            this.RaiseDidCiRegistroRecurrentDataChanged(true);
                        }
                        catch (Exception ex)
                        {
                            AppBitacoraRepository.Insert(new AppBitacoraModel() { Fecha = DateTime.Now, Metodo = ex.StackTrace, Mensaje = ex.Message });
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                AppBitacoraRepository.Insert(new AppBitacoraModel() { Fecha = DateTime.Now, Metodo = ex.StackTrace, Mensaje = ex.Message });
            }
            return x;
        }
 public IEnumerable<RegistroModel> GetByIdRegistros(RegistroModel registro)
 {
     throw new NotImplementedException();
 }