Exemplo n.º 1
0
 public WcfResponse Fetch(CriteriaRequest request)
 {
   Csla.Server.DataPortal portal = new Csla.Server.DataPortal();
   Exception error = null;
   DataPortalResult result = null;
   WcfResponse response = null;
   ISerializationFormatter formatter = SerializationFormatterFactory.GetFormatter();
   try
   {
     request = ConvertRequest(request);
     DataPortalContext context = new DataPortalContext(
         formatter.Deserialize(request.Principal) as IPrincipal,
         true,
         request.ClientCulture,
         request.ClientUICulture,
         formatter.Deserialize(request.ClientContext) as ContextDictionary,
         formatter.Deserialize(request.GlobalContext) as ContextDictionary);
     result = portal.Fetch(Type.GetType(request.TypeName), formatter.Deserialize(request.CriteriaData), context);
     response = new WcfResponse(
         formatter.Serialize(result.ReturnObject),
         formatter.Serialize(error),
         formatter.Serialize(Csla.ApplicationContext.GlobalContext));
   }
   catch (Exception ex)
   {
     error = ex;
     response = new WcfResponse(
        null,
        formatter.Serialize(error),
        formatter.Serialize(Csla.ApplicationContext.GlobalContext));
   }
   return ConvertResponse(response);
 }
Exemplo n.º 2
0
        public WcfResponse Fetch(CriteriaRequest request)
        {
            Csla.Server.DataPortal portal     = new Csla.Server.DataPortal();
            Exception               error     = null;
            DataPortalResult        result    = null;
            WcfResponse             response  = null;
            ISerializationFormatter formatter = SerializationFormatterFactory.GetFormatter();

            try
            {
                request = ConvertRequest(request);
                DataPortalContext context = new DataPortalContext(
                    formatter.Deserialize(request.Principal) as IPrincipal,
                    true,
                    request.ClientCulture,
                    request.ClientUICulture,
                    formatter.Deserialize(request.ClientContext) as ContextDictionary,
                    formatter.Deserialize(request.GlobalContext) as ContextDictionary);
                result   = portal.Fetch(Type.GetType(request.TypeName), formatter.Deserialize(request.CriteriaData), context);
                response = new WcfResponse(
                    formatter.Serialize(result.ReturnObject),
                    formatter.Serialize(error),
                    formatter.Serialize(Csla.ApplicationContext.GlobalContext));
            }
            catch (Exception ex)
            {
                error    = ex;
                response = new WcfResponse(
                    null,
                    formatter.Serialize(error),
                    formatter.Serialize(Csla.ApplicationContext.GlobalContext));
            }
            return(ConvertResponse(response));
        }
Exemplo n.º 3
0
 protected override CriteriaRequest ConvertRequest(CriteriaRequest request)
 {
   CriteriaRequest returnValue = new CriteriaRequest();
   returnValue.ClientContext = CompressionUtility.Decompress(request.ClientContext);
   returnValue.GlobalContext = CompressionUtility.Decompress(request.GlobalContext);
   if (request.CriteriaData != null)
     returnValue.CriteriaData = CompressionUtility.Decompress(request.CriteriaData);
   returnValue.Principal = CompressionUtility.Decompress(request.Principal);
   returnValue.TypeName = request.TypeName;
   returnValue.ClientCulture = request.ClientCulture;
   returnValue.ClientUICulture = request.ClientUICulture;
   return returnValue;
 }
Exemplo n.º 4
0
        private CriteriaRequest GetRequest(ISerializationFormatter formatter, Type objectType, object criteria, DataPortalContext context)
        {
            CriteriaRequest request = new CriteriaRequest();

            request.ClientContext   = formatter.Serialize(Csla.ApplicationContext.ClientContext);
            request.ClientCulture   = System.Threading.Thread.CurrentThread.CurrentCulture.Name;
            request.ClientUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name;
            request.CriteriaData    = formatter.Serialize(criteria);
            request.GlobalContext   = formatter.Serialize(Csla.ApplicationContext.GlobalContext);
            request.Principal       = formatter.Serialize(Csla.ApplicationContext.User);
            request.TypeName        = objectType.AssemblyQualifiedName;
            request = ConvertRequest(request);
            return(request);
        }
Exemplo n.º 5
0
        protected override CriteriaRequest ConvertRequest(CriteriaRequest request)
        {
            CriteriaRequest returnValue = new CriteriaRequest();

            returnValue.ClientContext = CompressionUtility.Decompress(request.ClientContext);
            returnValue.GlobalContext = CompressionUtility.Decompress(request.GlobalContext);
            if (request.CriteriaData != null)
            {
                returnValue.CriteriaData = CompressionUtility.Decompress(request.CriteriaData);
            }
            returnValue.Principal       = CompressionUtility.Decompress(request.Principal);
            returnValue.TypeName        = request.TypeName;
            returnValue.ClientCulture   = request.ClientCulture;
            returnValue.ClientUICulture = request.ClientUICulture;
            return(returnValue);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Get an existing business object.
        /// </summary>
        /// <param name="request">The request parameter object.</param>
#pragma warning disable 1998
        public async Task <HttpResponse> Fetch(CriteriaRequest request)
#pragma warning restore 1998
        {
            var result = new HttpResponse();

            try
            {
                request = ConvertRequest(request);

                // unpack criteria data into object
                object criteria = GetCriteria(request.CriteriaData);
                if (criteria is Csla.DataPortalClient.PrimitiveCriteria)
                {
                    criteria = ((Csla.DataPortalClient.PrimitiveCriteria)criteria).Value;
                }

                var objectType = Csla.Reflection.MethodCaller.GetType(AssemblyNameTranslator.GetAssemblyQualifiedName(request.TypeName), true);
                var context    = new DataPortalContext(
                    (IPrincipal)MobileFormatter.Deserialize(request.Principal),
                    true,
                    request.ClientCulture,
                    request.ClientUICulture,
                    (ContextDictionary)MobileFormatter.Deserialize(request.ClientContext),
                    (ContextDictionary)MobileFormatter.Deserialize(request.GlobalContext));

                var prtl = new Csla.Server.DataPortal();
                var dpr  = await prtl.Fetch(objectType, criteria, context, true);

                if (dpr.Error != null)
                {
                    result.ErrorData = new HttpErrorInfo(dpr.Error);
                }
                result.GlobalContext = MobileFormatter.Serialize(dpr.GlobalContext);
                result.ObjectData    = MobileFormatter.Serialize(dpr.ReturnObject);
            }
            catch (Exception ex)
            {
                result.ErrorData = new HttpErrorInfo(ex);
                throw;
            }
            finally
            {
                result = ConvertResponse(result);
            }
            return(result);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Get an existing business object.
        /// </summary>
        /// <param name="request">The request parameter object.</param>
#pragma warning disable 1998
        public async Task <DataPortalResponse> Fetch(CriteriaRequest request)
#pragma warning restore 1998
        {
            var result = ApplicationContext.CreateInstanceDI <DataPortalResponse>();

            try
            {
                request = ConvertRequest(request);

                // unpack criteria data into object
                object criteria = GetCriteria(ApplicationContext, request.CriteriaData);
                if (criteria is Csla.DataPortalClient.PrimitiveCriteria)
                {
                    criteria = ((Csla.DataPortalClient.PrimitiveCriteria)criteria).Value;
                }

                var objectType = Csla.Reflection.MethodCaller.GetType(AssemblyNameTranslator.GetAssemblyQualifiedName(request.TypeName), true);
                var context    = new DataPortalContext(
                    ApplicationContext, (IPrincipal)SerializationFormatterFactory.GetFormatter(ApplicationContext).Deserialize(request.Principal),
                    true,
                    request.ClientCulture,
                    request.ClientUICulture,
                    (ContextDictionary)SerializationFormatterFactory.GetFormatter(ApplicationContext).Deserialize(request.ClientContext));

                var dpr = await dataPortalServer.Fetch(objectType, criteria, context, true);

                if (dpr.Error != null)
                {
                    result.ErrorData = ApplicationContext.CreateInstance <DataPortalErrorInfo>(ApplicationContext, dpr.Error);
                }
                result.ObjectData = SerializationFormatterFactory.GetFormatter(ApplicationContext).Serialize(dpr.ReturnObject);
            }
            catch (Exception ex)
            {
                result.ErrorData = ApplicationContext.CreateInstance <DataPortalErrorInfo>(ApplicationContext, ex);
                throw;
            }
            finally
            {
                result = ConvertResponse(result);
            }
            return(result);
        }
Exemplo n.º 8
0
    /// <summary>
    /// Get an existing business object.
    /// </summary>
    /// <param name="request">The request parameter object.</param>
#pragma warning disable 1998
    public async Task<HttpResponse> Fetch(CriteriaRequest request)
#pragma warning restore 1998
    {
      var result = new HttpResponse();
      try
      {
        request = ConvertRequest(request);

        // unpack criteria data into object
        object criteria = GetCriteria(request.CriteriaData);
        if (criteria is Csla.DataPortalClient.PrimitiveCriteria)
        {
          criteria = ((Csla.DataPortalClient.PrimitiveCriteria)criteria).Value;
        }

        var objectType = Csla.Reflection.MethodCaller.GetType(AssemblyNameTranslator.GetAssemblyQualifiedName(request.TypeName), true);
        var context = new DataPortalContext(
          (IPrincipal)MobileFormatter.Deserialize(request.Principal),
          true,
          request.ClientCulture,
          request.ClientUICulture,
          (ContextDictionary)MobileFormatter.Deserialize(request.ClientContext),
          (ContextDictionary)MobileFormatter.Deserialize(request.GlobalContext));

        var prtl = new Csla.Server.DataPortal();
        var dpr = await prtl.Fetch(objectType, criteria, context, true);

        if (dpr.Error != null)
          result.ErrorData = new HttpErrorInfo(dpr.Error);
        result.GlobalContext = MobileFormatter.Serialize(dpr.GlobalContext);
        result.ObjectData = MobileFormatter.Serialize(dpr.ReturnObject);
      }
      catch (Exception ex)
      {
        result.ErrorData = new HttpErrorInfo(ex);
        throw;
      }
      finally
      {
        result = ConvertResponse(result);
      }
      return result;
    }
Exemplo n.º 9
0
 /// <summary>
 /// Override to convert the request data before it
 /// is transferred over the network.
 /// </summary>
 /// <param name="request">Request object.</param>
 protected virtual CriteriaRequest ConvertRequest(CriteriaRequest request)
 {
     return(request);
 }
Exemplo n.º 10
0
 protected virtual CriteriaRequest ConvertRequest(CriteriaRequest request)
 {
   return request;
 }
Exemplo n.º 11
0
 private CriteriaRequest GetRequest(ISerializationFormatter formatter, Type objectType, object criteria, DataPortalContext context)
 {
   CriteriaRequest request = new CriteriaRequest();
   request.ClientContext = formatter.Serialize(Csla.ApplicationContext.ClientContext);
   request.ClientCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name;
   request.ClientUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name;
   request.CriteriaData = formatter.Serialize(criteria);
   request.GlobalContext = formatter.Serialize(Csla.ApplicationContext.GlobalContext);
   request.Principal = formatter.Serialize(Csla.ApplicationContext.User);
   request.TypeName = objectType.AssemblyQualifiedName;
   request = ConvertRequest(request);
   return request;
 }
 protected override CriteriaRequest ConvertRequest(CriteriaRequest request)
 {
     return(base.ConvertRequest(request));
 }