示例#1
0
        public WcfResponse Update(UpdateRequest 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.Update(formatter.Deserialize(request.ObjectData), 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));
        }
        public async Task <WcfResponse> Update(UpdateRequest request)
        {
            Csla.Server.DataPortal portal = new Csla.Server.DataPortal();

            object result;

            try
            {
                result = await portal.Update(request.Object, request.Context, true);
            }
            catch (Exception ex)
            {
                result = ex;
            }

            return(new WcfResponse(result));
        }
示例#3
0
        /// <summary>
        /// Update a business object.
        /// </summary>
        /// <param name="objectData">Business object to update.</param>
        /// <param name="contextData">
        /// Server.DataPortalContext object passed to the server.
        /// </param>
        public async Task <byte[]> Update(byte[] objectData, byte[] contextData)
        {
            DataPortalResult result;

            try
            {
                var obj     = Csla.Serialization.Mobile.MobileFormatter.Deserialize(objectData);
                var context = (DataPortalContext)Csla.Serialization.Mobile.MobileFormatter.Deserialize(contextData);
                var portal  = new Csla.Server.DataPortal();
                result = await portal.Update(obj, context, false);
            }
            catch (Exception ex)
            {
                result = new DataPortalResult(null, ex, null);
            }
            var response   = GetDataPortalResult(result);
            var resultData = Csla.Serialization.Mobile.MobileFormatter.Serialize(response);

            return(resultData);
        }
示例#4
0
        /// <summary>
        /// Update a business object.
        /// </summary>
        /// <param name="request">The request parameter object.</param>
        public async Task <HttpResponse> Update(UpdateRequest request)
        {
            var result = new HttpResponse();

            try
            {
                request = ConvertRequest(request);
                // unpack object
                object obj = GetCriteria(request.ObjectData);

                var context = new DataPortalContext(
                    (IPrincipal)SerializationFormatterFactory.GetFormatter().Deserialize(request.Principal),
                    true,
                    request.ClientCulture,
                    request.ClientUICulture,
                    (ContextDictionary)SerializationFormatterFactory.GetFormatter().Deserialize(request.ClientContext),
                    (ContextDictionary)SerializationFormatterFactory.GetFormatter().Deserialize(request.GlobalContext));

                var prtl = new Csla.Server.DataPortal();
                var dpr  = await prtl.Update(obj, context, true);

                if (dpr.Error != null)
                {
                    result.ErrorData = new HttpErrorInfo(dpr.Error);
                }

                result.GlobalContext = SerializationFormatterFactory.GetFormatter().Serialize(dpr.GlobalContext);
                result.ObjectData    = SerializationFormatterFactory.GetFormatter().Serialize(dpr.ReturnObject);
            }
            catch (Exception ex)
            {
                result.ErrorData = new HttpErrorInfo(ex);
                throw;
            }
            finally
            {
                result = ConvertResponse(result);
            }
            return(result);
        }
示例#5
0
 public WcfResponse Update(UpdateRequest 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.Update(formatter.Deserialize(request.ObjectData), 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);
 }
示例#6
0
 /// <summary>
 /// Update a business object.
 /// </summary>
 /// <param name="objectData">Business object to update.</param>
 /// <param name="contextData">
 /// Server.DataPortalContext object passed to the server.
 /// </param>
 public async Task<byte[]> Update(byte[] objectData, byte[] contextData)
 {
   DataPortalResult result;
   try
   {
     var obj = Csla.Serialization.Mobile.MobileFormatter.Deserialize(objectData);
     var context = (DataPortalContext)Csla.Serialization.Mobile.MobileFormatter.Deserialize(contextData);
     var portal = new Csla.Server.DataPortal();
     result = await portal.Update(obj, context, false);
   }
   catch (Exception ex)
   {
     result = new DataPortalResult(null, ex, null);
   }
   var response = GetDataPortalResult(result);
   var resultData = Csla.Serialization.Mobile.MobileFormatter.Serialize(response);
   return resultData;
 }