/// <summary> /// Gets the session provider. /// </summary> /// <returns></returns> private GenericRemoteSyncProvider <EntityObjectHierarchy> GetSessionProvider() { //if (SessionPrincipal == null || SessionPrincipal.UserID == -1) //{ // throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), // new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.NotAuthRequest, "not auth request"), // false); //} Authenticate(null); if (SessionProviderType == eSyncProviderType.Undef) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.ProviderNotSpecified, "provider not specified"), false); } GenericRemoteSyncProvider <EntityObjectHierarchy> retVal = null; retVal = EntitySyncProviderManager.GetProvider(SessionPrincipal.UserID, SessionProviderType); if (retVal == null) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncProvider, "provider not found"), false); } return(retVal); }
public byte[] ProcessFullEnumerationChangeBatch(int resolutionPolicy, byte[] sourceChanges, byte[] rawChangeDataRetriever, byte[] changeApplierInfo) { GenericRemoteSyncProvider <EntityObjectHierarchy> provider = GetSessionProvider(); byte[] retVal = null; try { FullEnumerationChangeBatch sourceChangeBatch = FullEnumerationChangeBatch.Deserialize(provider.IdFormats, sourceChanges); CachedChangeDataRetriever chachedDataRetriever = SerializerHelper.BinaryDeserialize <CachedChangeDataRetriever>(rawChangeDataRetriever); retVal = provider.ProcessRemoteFullEnumerationChangeBatch((ConflictResolutionPolicy)resolutionPolicy, sourceChangeBatch, chachedDataRetriever, changeApplierInfo); } catch (SyncException e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncFramework, e), true); } catch (Exception e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncProvider, e), true); } return(retVal); }
public byte[] GetChangeBatch(uint batchSize, byte[] rawDestinationKnowledge, out byte[] changeDataRetriever) { GenericRemoteSyncProvider <EntityObjectHierarchy> provider = GetSessionProvider(); byte[] retVal = null; try { SyncKnowledge destinationKnowledge = SyncKnowledge.Deserialize(provider.IdFormats, rawDestinationKnowledge); object dataRetriever; ChangeBatch changeBatch = provider.GetChangeBatch(batchSize, destinationKnowledge, out dataRetriever); CachedChangeDataRetriever cachedChangeDataRetriever = new CachedChangeDataRetriever(dataRetriever as IChangeDataRetriever, changeBatch); string debugCachedRetr = SerializerHelper.XmlSerialize(cachedChangeDataRetriever); changeDataRetriever = SerializerHelper.BinarySerialize(cachedChangeDataRetriever); retVal = changeBatch.Serialize(); } catch (SyncException e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncFramework, e), true); } catch (Exception e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncProvider, e), true); } return(retVal); }
public void BeginSession() { GenericRemoteSyncProvider <EntityObjectHierarchy> provider = GetSessionProvider(); try { provider.BeginSession(SyncProviderPosition.Unknown, null); } catch (SyncException e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncFramework, e), true); } catch (Exception e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncProvider, e), true); } }
public void GetSyncBatchParameters(out uint batchSize, out byte[] rawKnowledge) { GenericRemoteSyncProvider <EntityObjectHierarchy> provider = GetSessionProvider(); try { SyncKnowledge knowledge; provider.GetSyncBatchParameters(out batchSize, out knowledge); rawKnowledge = knowledge.Serialize(); } catch (SyncException e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncFramework, e), true); } catch (Exception e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncProvider, e), true); } }
public byte[] GetFullEnumerationChangeBatch(uint batchSize, byte[] lowerEnumerationBoundRaw, byte[] rawKnowledgeForDataRetrieval, out byte[] changeDataRetriever) { GenericRemoteSyncProvider <EntityObjectHierarchy> provider = GetSessionProvider(); byte[] retVal = null; try { SyncKnowledge knowledgeForDataRetrieval = SyncKnowledge.Deserialize(provider.IdFormats, rawKnowledgeForDataRetrieval); SyncId lowerEnumerationBound = new SyncId(lowerEnumerationBoundRaw, false); object dataRetriever; FullEnumerationChangeBatch changeBatch = provider.GetFullEnumerationChangeBatch(batchSize, lowerEnumerationBound, knowledgeForDataRetrieval, out dataRetriever); CachedChangeDataRetriever cachedChangeDataRetriever = new CachedChangeDataRetriever(dataRetriever as IChangeDataRetriever, changeBatch); changeDataRetriever = SerializerHelper.BinarySerialize(cachedChangeDataRetriever); retVal = changeBatch.Serialize(); } catch (SyncException e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncFramework, e), true); } catch (Exception e) { throw SoapErrorCreator.RaiseException(HttpContext.Current.Request.Url.ToString(), new SyncronizationServiceError(SyncronizationServiceError.eServiceErrorType.SyncProvider, e), true); } return(retVal); }