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; }