Exemplo n.º 1
0
        private ITestInterface GetInvocationHelper(ReturnPolicy returnPolicy = ReturnPolicy.TwoWay)
        {
            RemoteExecutionPolicies policies = new RemoteExecutionPolicies(typeof(ITestInterface), returnPolicy);
            var subject = new RemoteCallInterceptor(_oneWayInterceptor, _twoWayInterceptor, policies);

            return((ITestInterface) new ProxyFactory(typeof(ITestInterface), subject).GetProxy());
        }
        /// <summary>
        /// Populates dictionary with policies for a given interface.
        /// </summary>
        /// <param name="interfaceType"></param>
        /// <param name="defaultNoResultsMethodExecution"></param>
        public RemoteExecutionPolicies(Type interfaceType, ReturnPolicy defaultNoResultsMethodExecution)
        {
            if (interfaceType == null)
            {
                throw new ArgumentNullException(nameof(interfaceType));
            }
            RemoteExecutionPolicy defaultPolicy =
                interfaceType.GetInterfaceDefaultPolicy(defaultNoResultsMethodExecution);

            AddMethodsForInterface(interfaceType, defaultPolicy);
        }
Exemplo n.º 3
0
        public T Create <T>(ReturnPolicy noResultMethodExcecution)
        {
            RemoteExecutionPolicies policies = new RemoteExecutionPolicies(typeof(T), noResultMethodExcecution);
            var remoteCallInterceptor        = new RemoteCallInterceptor(
                new OneWayRemoteCallInterceptor(_channel, _messageFactory, typeof(T).Name),
                new TwoWayRemoteCallInterceptor(_channel, _dispatcher, _messageFactory, typeof(T).Name, policies), policies);

            var factory = new ProxyFactory(typeof(T), remoteCallInterceptor);

            return((T)factory.GetProxy());
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets the default remote execution policy for an interface.
        /// </summary>
        /// <param name="me"></param>
        /// <param name="defaultNoResultsMethodExecution"></param>
        /// <returns></returns>
        public static RemoteExecutionPolicy GetInterfaceDefaultPolicy(this Type me,
                                                                      ReturnPolicy defaultNoResultsMethodExecution)
        {
            if (me == null)
            {
                throw new ArgumentNullException(nameof(me));
            }
            if (!me.IsInterface)
            {
                throw new InvalidOperationException("Type must be an interface.");
            }
            var timeoutPolicy = me.GetAttributeOrDefault <TimeoutPolicyAttribute>();
            var durablePolicy = me.GetAttributeOrDefault <DurablePolicyAttribute>();
            var ipPolicy      = me.GetAttributeOrDefault <IpEndPointPolicyAttribute>();
            var returnPolicy  = me.GetAttributeOrDefault <ForcedReturnPolicyAttribute>();

            var ans = me.GetAttributeOrDefault <RemoteExecutionPolicy>()?.Clone() ?? new RemoteExecutionPolicy
            {
                Timeout             = DefaultConfig.Timeout,
                NoRetries           = DefaultConfig.NoRetries,
                TimeoutIsStrict     = DefaultConfig.TimeoutIsStrict,
                RequiresIpEndPoint  = DefaultConfig.RequiresIpEndpoint,
                DefaultReturnPolicy = defaultNoResultsMethodExecution,
                ForcedReturnPolicy  = null
            };

            ans.DefaultReturnPolicy = defaultNoResultsMethodExecution;
            if (timeoutPolicy != null)
            {
                ans.Timeout = timeoutPolicy.Timeout;
            }
            if (durablePolicy != null)
            {
                ans.NoRetries       = durablePolicy.NoRetries;
                ans.TimeoutIsStrict = durablePolicy.TimeoutIsStrict;
            }
            if (ipPolicy != null)
            {
                ans.RequiresIpEndPoint = ipPolicy.Required;
            }
            if (returnPolicy != null)
            {
                ans.ForcedReturnPolicy = returnPolicy.ForcedReturnPolicy;
            }

            return(ans);
        }
        public ActionResult getRetrunPolicys()
        {
            ReturnPolicy _returnPolicy = new ReturnPolicy();

            _returnPolicy.ReturnPolicyContent = _newsService.GetReturnPolicyAll(HCRGUser != null ? HCRGUser.OrganizationID : (Convert.ToInt32(_encryptionService.DecryptString2(System.Configuration.ConfigurationManager.AppSettings["OrganizationID"])))).ReturnPolicyContent;
            string decodedHTML = HttpUtility.HtmlDecode(_returnPolicy.ReturnPolicyContent);

            if (decodedHTML != null)
            {
                _returnPolicy.ReturnPolicyContent = decodedHTML.Replace(GlobalConst.Message.SlashStoragePath, GlobalConst.Message.StoragePath);
                _returnPolicy.ReturnPolicyContent = _returnPolicy.ReturnPolicyContent.Replace("/richtexteditor/", GlobalConst.Extension.http + GlobalConst.ConstantChar.Colon + GlobalConst.ConstantChar.ForwardSlash + GlobalConst.ConstantChar.ForwardSlash + Request.Url.Host.ToLower() + GlobalConst.ConstantChar.Colon + Request.Url.Port + "/richtexteditor/");
                _returnPolicy.ReturnPolicyContent = _returnPolicy.ReturnPolicyContent.Replace("&nbsp;", "");
            }
            else
            {
                _returnPolicy.ReturnPolicyContent = _returnPolicy.ReturnPolicyContent;
            }
            return(Json(_returnPolicy, GlobalConst.Message.text_html));
        }
Exemplo n.º 6
0
 public void Should_defer_execute_operations_returning_result_to_attribute_one_way_2(ReturnPolicy executionMode)
 {
     GetInvocationHelper(executionMode).IgnoreHello(5);
     _oneWayInterceptor.AssertWasCalled(i => i.Invoke(Arg <IMethodInvocation> .Is.Anything));
     _twoWayInterceptor.AssertWasNotCalled(i => i.Invoke(Arg <IMethodInvocation> .Is.Anything));
 }
Exemplo n.º 7
0
 public void Should_always_execute_operations_returning_result_as_two_way(ReturnPolicy executionMode)
 {
     GetInvocationHelper(executionMode).Hello(5);
     _twoWayInterceptor.AssertWasCalled(i => i.Invoke(Arg <IMethodInvocation> .Is.Anything));
     _oneWayInterceptor.AssertWasNotCalled(i => i.Invoke(Arg <IMethodInvocation> .Is.Anything));
 }
Exemplo n.º 8
0
 /// <summary>
 /// Basic constructor.
 /// </summary>
 /// <param name="policy"></param>
 public ForcedReturnPolicyAttribute(ReturnPolicy policy)
 {
     ForcedReturnPolicy = policy;
 }