internal string GetUsuarioForSub0(YPF.Comercial.RRCC.SUP.PersonalizationParameters pp) { // if (UsuarioUserDefined) { return(Usuario); } return(com.sybase.afx.json.JsonValue.GetNullableString("")); }
/// <summary> /// Sybase internal use only. /// <summary> public static com.sybase.afx.json.JsonObject __toJSON(YPF.Comercial.RRCC.SUP.PersonalizationParameters _object, bool _includeBigAttribute) { if (_includeBigAttribute) { return(YPF.Comercial.RRCC.SUP.PersonalizationParameters.ToJSON(_object)); } else { return(YPF.Comercial.RRCC.SUP.PersonalizationParameters.ToJSONWithoutBigAttribute(_object)); } }
internal static com.sybase.afx.json.JsonObject ToJSON(YPF.Comercial.RRCC.SUP.PersonalizationParameters _object, bool __buildGraph, bool _includeBigAttribute, bool _includeUserAttributes) { if ((_object == null)) { return(null); } else { return(_object._toJSON(__buildGraph, _includeBigAttribute, _includeUserAttributes)); } }
internal void BeforeSync(YPF.Comercial.RRCC.SUP.PersonalizationParameters pp) { // YPF.Comercial.RRCC.SUP.RepresentanteComercialSynchronizationParameters sptmp = YPF.Comercial.RRCC.SUP.RepresentanteComercialSynchronizationParameters.Find(YPF.Comercial.RRCC.SUP.CRMMobileDesaDB.GetSyncUsername()); if ((sptmp == null)) { sptmp = new YPF.Comercial.RRCC.SUP.RepresentanteComercialSynchronizationParameters(); } string Usuariotmp = sptmp.GetUsuarioForSub0(pp); YPF.Comercial.RRCC.SUP.RepresentanteComercial.Subscribe_pull(YPF.Comercial.RRCC.SUP.CRMMobileDesaDB.GetSyncUsername(), Usuariotmp); }
internal static YPF.Comercial.RRCC.SUP.PersonalizationParameters FromJSON(object _json) { if (_json == null) { return(null); } else { YPF.Comercial.RRCC.SUP.PersonalizationParameters _obj = new YPF.Comercial.RRCC.SUP.PersonalizationParameters(); _obj._fromJSON((com.sybase.afx.json.JsonObject)_json); return(_obj); } }
public void SubmitPending() { // lock (typeof(YPF.Comercial.RRCC.SUP.CRMMobileDesaDB)) { YPF.Comercial.RRCC.SUP.PersonalizationParameters pp = YPF.Comercial.RRCC.SUP.CRMMobileDesaDB.GetPersonalizationParameters(); try { this.BeforeSync(pp); } catch (Sybase.Persistence.SynchronizeRequiredException) { } } }
private static void InternalSynchronize (string synchronizationGroup, Sybase.Persistence.SyncStatusListener listener, Sybase.Persistence.SynchronizationContext syncContext, com.sybase.afx.json.JsonObject syncContextEx) { string mlServerHost; int mlServerPort; string syncUsername; string syncPassword; bool isInitialSync = "initialSync".Equals(synchronizationGroup) || KeyGenerator.InitSync(); YPF.Comercial.RRCC.SUP.PersonalizationParameters _pp = GetPersonalizationParameters(); _pp.Username =(GetSynchronizationProfile().UserName); _pp.Password =(GetSynchronizationProfile().Password); _pp.SaveUserNamePassword(); lock(_synchronizeLock) { Sybase.Mobile.Application.GetInstance().ApplicationSettings.CheckApplicationSettingsAvailable(); Sybase.Persistence.ConnectionProfile _interProfile = new Sybase.Persistence.ConnectionProfile(); _interProfile.DomainName =("default"); _interProfile.ServerName =("sdbuetmapl28"); _interProfile.PortNumber =(2480); _interProfile.NetworkProtocol =("http,https"); _interProfile.NetworkStreamParams =("trusted_certificates=;url_suffix="); _interProfile.ApplyProperties(Sybase.Mobile.Application.GetInstance().ApplicationSettings); _interProfile.ApplyProperties(GetSynchronizationProfile()); mlServerHost = _interProfile.ServerName; mlServerPort = _interProfile.PortNumber; syncUsername = _interProfile.UserName; syncPassword = _interProfile.Password; string sysPlatform = _interProfile.GetProperty("os"); Sybase.Persistence.ConnectionWrapper ulConn = null; com.sybase.afx.db.ConnectionSyncParams syncParms = new com.sybase.afx.db.ConnectionSyncParams(); try { YPF.Comercial.RRCC.SUP.PersonalizationParameters pp = new YPF.Comercial.RRCC.SUP.PersonalizationParameters(); syncUsername += ("@" + _interProfile.DomainName); com.sybase.afx.json.JsonObject json = new com.sybase.afx.json.JsonObject(); Sybase.Collections.GenericList<YPF.Comercial.RRCC.SUP.ClientPersonalization> listClientPersonalization = pp.ListClientPK; foreach(YPF.Comercial.RRCC.SUP.ClientPersonalization __item in listClientPersonalization) { json.Put(__item.Key_name, __item.GetRealValue()); } Sybase.Collections.GenericList<YPF.Comercial.RRCC.SUP.SessionPersonalization> sessionServerPersonalization = pp.ListSessionPK; foreach(YPF.Comercial.RRCC.SUP.SessionPersonalization __item in sessionServerPersonalization) { json.Put(__item.Key_name, __item.Value); } json.Put("pv", "" + YPF.Comercial.RRCC.SUP.CRMMobileDesaDB.GetProtocolVersion()); json.Put("pid", com.sybase.afx.util.PidUtil.GetId()); json.Put("cle", _interProfile.GetProperty("changeLogEnabled", "false")); if(isInitialSync) { com.sybase.afx.json.JsonObject jsonMBOMap = new com.sybase.afx.json.JsonObject(); jsonMBOMap.Put("DireccionEntrega",231); jsonMBOMap.Put("Interaccion",232); jsonMBOMap.Put("CalendarioInteraccionLocal",233); jsonMBOMap.Put("CategoriaPregunta",234); jsonMBOMap.Put("ClienteCabeceraPedido",235); jsonMBOMap.Put("ClienteDetallePedido",236); jsonMBOMap.Put("ClienteDeuda",237); jsonMBOMap.Put("ClienteFacturacion",238); jsonMBOMap.Put("CustomLocalData",239); jsonMBOMap.Put("Direccion",240); jsonMBOMap.Put("EstadoInteraccion",241); jsonMBOMap.Put("Formulario",242); jsonMBOMap.Put("FormularioMercado",243); jsonMBOMap.Put("FormularioMercadoSegmento",244); jsonMBOMap.Put("FormularioMercadoSubsegmento",245); jsonMBOMap.Put("FormularioMercadoTamano",246); jsonMBOMap.Put("FormularioPrecios",247); jsonMBOMap.Put("FormularioPreciosMercado",248); jsonMBOMap.Put("FormularioPreciosRed",249); jsonMBOMap.Put("FormularioPreciosZonaInspeccion",250); jsonMBOMap.Put("FormularioTransporte",251); jsonMBOMap.Put("Mail",252); jsonMBOMap.Put("Motivo",253); jsonMBOMap.Put("Negocio",254); jsonMBOMap.Put("OpcionRespuesta",255); jsonMBOMap.Put("Parametro",256); jsonMBOMap.Put("Pregunta",257); jsonMBOMap.Put("PreguntaFormulario",258); jsonMBOMap.Put("Provincia",259); jsonMBOMap.Put("RelevamientoPrecios",260); jsonMBOMap.Put("RelevamientoPreciosProducto",261); jsonMBOMap.Put("RelevamientoProducto",262); jsonMBOMap.Put("RelevamientoProductoProducto",263); jsonMBOMap.Put("RelevamientoProductoTipo",264); jsonMBOMap.Put("RelevamientoProveedor",265); jsonMBOMap.Put("RelevamientoProveedorCanal",266); jsonMBOMap.Put("RelevamientoProveedorLogistica",267); jsonMBOMap.Put("RelevamientoTransporte",268); jsonMBOMap.Put("RelevamientoTransporteCompetidor",269); jsonMBOMap.Put("RelevamientoTransporteProducto",270); jsonMBOMap.Put("RepresentanteComercial",271); jsonMBOMap.Put("Respuesta",272); jsonMBOMap.Put("RespuestaInteraccionFormulario",273); jsonMBOMap.Put("Segmento",274); jsonMBOMap.Put("SeleccionFormulario",275); jsonMBOMap.Put("SeleccionTablaRelevamiento",276); jsonMBOMap.Put("TablaRelevamiento",277); jsonMBOMap.Put("Telefono",278); jsonMBOMap.Put("TipoInteraccion",279); jsonMBOMap.Put("LogRecordImpl",281); jsonMBOMap.Put("OperationReplay",282); jsonMBOMap.Put("SISSubscription",285); jsonMBOMap.Put("PackageProperties",286); jsonMBOMap.Put("ChangeLogImpl",288); jsonMBOMap.Put("OfflineAuthentication",289); jsonMBOMap.Put("RepresentanteComercialSynchronizationParameters",290); jsonMBOMap.Put("RepresentanteComercial_pull_pq",291); jsonMBOMap.Put("ClientPersonalization",341); jsonMBOMap.Put("KeyGenerator",346); jsonMBOMap.Put("LocalKeyGenerator",348); json.Put("mboMap", jsonMBOMap); json.Put("publications", synchronizationGroup); json.Put("isInitialSync", isInitialSync.ToString()); } else { json.Put("publications", synchronizationGroup); } bool async = !isInitialSync && _interProfile.GetBoolean("asyncReplay", true); if(syncContextEx == null) { syncContextEx = new com.sybase.afx.json.JsonObject(); } syncContextEx.Remove("async"); syncContextEx.Put("async", async + ""); json.Put("_as", async + ""); if(async && !IsReplayQueueEmpty()) { YPF.Comercial.RRCC.SUP.intrnl.OperationReplay rq = new YPF.Comercial.RRCC.SUP.intrnl.OperationReplay(); rq.SetComponent("CRMMobileDesaDB"); com.sybase.afx.json.JsonObject parameter = new com.sybase.afx.json.JsonObject(); if(syncContext != null) { object userContext = syncContext.UserContext; if(userContext != null) { if(userContext is string) { parameter.Put("userContext", userContext); } else { throw new Sybase.Persistence.PersistenceException("user context must be string for async operation replay"); } } parameter.Put("synchronizationGroup",synchronizationGroup); } rq.SetParameters(parameter.ToString()); rq.SetOperation("batchNotify"); rq.Save(); } if(_appName != null) { json.Put("app", _appName); } json.Put("appId", Sybase.Mobile.Application.GetInstance().ApplicationIdentifier); if (sysPlatform != null) { json.Put("os", sysPlatform); } string str = json.ToString(); byte[] bin = com.sybase.afx.util.StringUtil.ToUTF8(str); string authParam = com.sybase.afx.util.BinaryUtil.ToStringBase64(bin); bool isHttps = _interProfile.NetworkProtocol.Equals("https", System.StringComparison.OrdinalIgnoreCase); int maxLen = 4000; int size = (authParam.Length + maxLen - 1) / maxLen; if (size > 16) { throw new Sybase.Persistence.SynchronizeException("the whole length of personalization parameters exceeds the limit of authenticate parameters and the safe length is 512 bytes"); } string[] authList = new string[16]; for (int i = 0; i < size; i++) { authList[i] = authParam.Substring(i * maxLen, ((i + 1) * maxLen < authParam.Length) ? maxLen : (authParam.Length - i * maxLen)); } for (int i = size; i < 16; i++) { authList[i] = "x";//Spacer } ulConn = AcquireDBWriteConnection(); syncParms.IsHttps = isHttps; syncParms.Version = _interProfile.DomainName + "_" + "crmmobiledesa.1_0"; syncParms.UserName = syncUsername; if(_interProfile.Certificate != null) { syncPassword = null; } syncParms.Password = syncPassword + ("@" + com.sybase.afx.util.PidUtil.GetId()); string mlStreamParams = "host=\"" + mlServerHost + "\";port=\"" + mlServerPort + "\""; string urlSuffix = com.sybase.afx.util.NetworkStreamParams.ExtractValue("url_suffix", _interProfile.NetworkStreamParams); if(urlSuffix != null && urlSuffix.Length != 0) { mlStreamParams = "host=\"" + mlServerHost + "\";port=\"" + mlServerPort + "\";url_suffix=\"" + urlSuffix + "\""; } //setting http_userid and http_password if HTTPCredentials are available Sybase.Persistence.LoginCredentials lc = Sybase.Mobile.Application.GetInstance().ConnectionProperties.HTTPCredentials; if (lc != null) { string http_userid = lc.UserName; string http_password = lc.Password; mlStreamParams = mlStreamParams + ";http_userid=\"" + http_userid + "\";http_password=\"" + http_password + "\""; } string cookie = com.sybase.afx.util.NetworkStreamParams.ExtractValue("set_cookie", _interProfile.NetworkStreamParams); Sybase.Collections.StringProperties httpCookies = Sybase.Mobile.Application.GetInstance().ConnectionProperties.HttpCookies; if (httpCookies != null) { foreach(string key in httpCookies.Keys()) { string value = httpCookies.Item(key); if (cookie == null || cookie.Length == 0) { cookie = key + "=" + value; } else { cookie += "," + key + "=" + value; } } } if (cookie != null && cookie.Length != 0) { mlStreamParams = mlStreamParams + ";set_cookie=\"" + cookie +"\""; } System.Collections.Generic.List<string> headers = com.sybase.afx.util.NetworkStreamParams.ExtractListValue("custom_header", _interProfile.NetworkStreamParams); foreach (string header in headers) { mlStreamParams = mlStreamParams + ";custom_header=\"" + header +"\""; } Sybase.Collections.StringProperties httpHeaders = Sybase.Mobile.Application.GetInstance().ConnectionProperties.HttpHeaders; if (httpHeaders != null) { foreach(string key in httpHeaders.Keys()) { string value = httpHeaders.Item(key); mlStreamParams = mlStreamParams + ";custom_header=\"" + key + ":" + value + "\""; } } string ip = _interProfile.GetString("client_ip"); if(ip != null && ip.Length != 0) { mlStreamParams = mlStreamParams + ";client_ip_addr=\"" + ip + "\""; } if(isHttps) { string ts = com.sybase.afx.util.NetworkStreamParams.ExtractValue("trusted_certificates", _interProfile.NetworkStreamParams); mlStreamParams += ";trusted_certificates=\"" + ts + "\""; string tls = com.sybase.afx.util.NetworkStreamParams.ExtractValue("tls_type", _interProfile.NetworkStreamParams); if (tls != null) { mlStreamParams += ";tls_type=\"" + tls + "\""; } } System.Collections.Generic.IList<System.Collections.Generic.KeyValuePair<string, string>> nwParams = com.sybase.afx.util.NetworkStreamParams.Parse(_interProfile.NetworkStreamParams); foreach (System.Collections.Generic.KeyValuePair<string, string> entry in nwParams) { string v = entry.Key; if (!v.StartsWith("url_suffix") && !v.StartsWith("trusted_certificates") && !v.StartsWith("tls_type") && !v.StartsWith("http_userid") && !v.StartsWith("http_password") && !v.StartsWith("set_cookie") && !v.StartsWith("custom_header")) { mlStreamParams += ";" + v + "=\"" + entry.Value + "\""; } } syncParms.StreamParms = mlStreamParams; syncParms.Publications = synchronizationGroup; syncParms.AuthenticationParms = authList; syncParms.UploadOnly = syncContextEx.GetBoolean("uploadOnly"); com.sybase.afx.db.ConnectionUtil.SetConnectionSyncParams(ulConn, syncParms); com.sybase.afx.db.CommandUtil.TraceSynchronize(_profile.GetSyncProfile(), synchronizationGroup, syncContext, GetRemoteId(ulConn)); if (listener != null) { string[] mboNames = com.sybase.afx.DatabaseBase.GetMBONames(synchronizationGroup, GetPublications()); System.Collections.Hashtable tableMBOMap = getTableMBOMap(); com.sybase.afx.db.ConnectionUtil.Synchronize(ulConn, listener, _interProfile.ToSyncConnection(), mboNames, tableMBOMap); } else { com.sybase.afx.db.ConnectionUtil.Synchronize(ulConn); } //check protocol version PackageProperties _props = PackageProperties.Find("protocol_version"); int _pv = 0; if (_props != null) { _pv = System.Int32.Parse(_props.Value); } if (!isInitialSync && GetProtocolVersion() > _pv) { string _msg = "device's protocol version is incompatible with the server's protocol version. (" + GetProtocolVersion() + " > " + _pv + ")"; Sybase.Persistence.ProtocolException _pe = new Sybase.Persistence.ProtocolException(_msg); GetCallbackHandler().OnMessageException(_pe); throw _pe; } PackageProperties lastRequestId = PackageProperties.Find("lastRequestId"); if(lastRequestId == null) { lastRequestId = new PackageProperties(); lastRequestId.Key = "lastRequestId"; } try { lastRequestId.Value = KeyGenerator.GenerateId()+""; } catch(Sybase.Persistence.SynchronizeRequiredException) { lastRequestId = null; } if(lastRequestId != null) { lastRequestId.Save(); } YPF.Comercial.RRCC.SUP.intrnl.OperationReplay.Finish(); } catch(com.sybase.afx.db.SynchronizationException _ex) { string exMsg = _ex.ToString(); com.sybase.afx.db.ConnectionImpl connImpl = (com.sybase.afx.db.ConnectionImpl)ulConn; iAnywhere.Data.UltraLite.ULConnection ul_conn = (iAnywhere.Data.UltraLite.ULConnection)connImpl.GetConnection(); if (_ex.NativeError == com.sybase.afx.db.SynchronizationException.SQLE_MOBILINK_COMMUNICATIONS_ERROR) { string strMessage = ul_conn.SyncResult.StreamErrorParameters; try { int errorCode = System.Convert.ToInt32(strMessage); Sybase.Mobile.Application.GetInstance().ApplicationCallback.OnHttpCommunicationError(errorCode, "", new Sybase.Collections.StringProperties()); } catch (System.FormatException) { } } long authValue = ul_conn.SyncResult.AuthValue; if ((_ex.NativeError == com.sybase.afx.db.SynchronizationException.SQLE_MOBILINK_AUTHENTICATION_FAILED) && (authValue == com.sybase.afx.util.AuthExceptionUtil.FAILURE_CODE_TOKEN_VALIDATION_ERROR || authValue == 4000)) { GetCallbackHandler().OnLoginFailure(); if (syncContext == null) { syncContext = new Sybase.Persistence.SynchronizationContext(); } syncContext.ErrorCode = 401; syncContext.ErrorMessage = "authentication failed."; if (authValue == com.sybase.afx.util.AuthExceptionUtil.FAILURE_CODE_TOKEN_VALIDATION_ERROR) { syncContext.ErrorCode = 412; } } com.sybase.afx.util.AuthExceptionUtil.CheckAuthValueAfterSync(com.sybase.afx.db.ConnectionUtil.GetConnectionSyncAuthValue(ulConn), _ex); if (_ex.NativeError == com.sybase.afx.db.SynchronizationException.SQLE_MOBILINK_COMMUNICATIONS_ERROR) { exMsg += "Details:\n" + com.sybase.afx.db.ConnectionUtil.GetConnectionSyncDetail(ulConn) + "\n"; } if( !"system".Equals(synchronizationGroup) && com.sybase.afx.db.SynchronizationException.SQLE_SERVER_SYNCHRONIZATION_ERROR == _ex.NativeError ) { try { YPF.Comercial.RRCC.SUP.CRMMobileDesaDB.Synchronize("system", null); } catch { if (!"initialSync".Equals(synchronizationGroup)) { string _msg = "the package is not deployed or device's protocol version may be incompatible with the server's protocol version. (" + GetProtocolVersion() + " > 0)"; Sybase.Persistence.ProtocolException _pe = new Sybase.Persistence.ProtocolException(_msg); GetCallbackHandler().OnMessageException(_pe); throw _pe; } } } throw new Sybase.Persistence.SynchronizeException(exMsg,_ex); } catch(System.Exception _ex) { throw new Sybase.Persistence.SynchronizeException(_ex.ToString(),_ex); } finally { if(ulConn != null) { ReleaseDBConnection();; } } } }
/// <summary> /// Sybase internal use only. /// <summary> public static com.sybase.afx.json.JsonObject __toJSON(YPF.Comercial.RRCC.SUP.PersonalizationParameters _object) { return(YPF.Comercial.RRCC.SUP.PersonalizationParameters.ToJSON(_object)); }
internal static com.sybase.afx.json.JsonObject ToJSON(YPF.Comercial.RRCC.SUP.PersonalizationParameters _object, bool __buildGraph, bool _includeBigAttribute) { return(ToJSON(_object, __buildGraph, _includeBigAttribute, true)); }
internal static com.sybase.afx.json.JsonObject ToJSON(YPF.Comercial.RRCC.SUP.PersonalizationParameters _object) { return(YPF.Comercial.RRCC.SUP.PersonalizationParameters.ToJSON(_object, false, true, true)); }
internal static com.sybase.afx.json.JsonObject ToJSONWithoutUserAttributes(YPF.Comercial.RRCC.SUP.PersonalizationParameters _object) { return(YPF.Comercial.RRCC.SUP.PersonalizationParameters.ToJSON(_object, false, false, false)); }
internal static YPF.Comercial.RRCC.SUP.PersonalizationParameters FromJSON(object _json) { if (_json == null) { return null; } else { YPF.Comercial.RRCC.SUP.PersonalizationParameters _obj = new YPF.Comercial.RRCC.SUP.PersonalizationParameters(); _obj._fromJSON((com.sybase.afx.json.JsonObject)_json); return _obj; } }