Ejemplo n.º 1
0
        public MessagingCenterResponse CallServiceMethod(MessagingCenterPackage package)
        {
            if (WpClients.All(c => c.ConnectionId != Context.ConnectionId))
                return ErrorResponse(null,
                                     "CONNECTIONS LIMIT HAS REACHED",
                                     MessagingCenterErrors.ERROR_LIMIT_CONNECTIONS_REACHED);
            if (package == null)
                return ErrorResponse(null,
                                     "PACKAGE IS NULL",
                                     MessagingCenterErrors.ERROR_MESSANGING_CENTERE_PACKAGE_IS_NULL);

            if (string.IsNullOrEmpty(package.Method))
                return ErrorResponse(package,
                                     "NO METHOD REQUESTED",
                                     MessagingCenterErrors.ERROR_MESSANGING_CENTERE_NO_METHOD_REQUESTED);

            var mmethodInfo = GetType().GetMethod(package.Method);

            if (mmethodInfo == null)
                return ErrorResponse(package,
                                     $"METHOD [{package.Method}] NOT FOUND",
                                     MessagingCenterErrors.ERROR_MESSANGING_CENTERE_METHOD_NOT_FOUND);

            try
            {
                return (MessagingCenterResponse)mmethodInfo.Invoke(this, new object[] { package });
            }
            catch (Exception mex)
            {
                return ErrorResponse(package,
                                     $"EXCEPTION DURING THE EXECUTION OF {package.Method}",
                                     MessagingCenterErrors.ERROR_MESSANGING_CENTERE_DURING_THE_EXECUTION,
                                     mex);
            }

        }
Ejemplo n.º 2
0
        public MessagingCenterResponse ErrorResponse(MessagingCenterPackage package, string message, int errorCode, Exception exception = null)
        {
            WpException mex = new WpException(errorCode, message, exception)
            {
                Metadata = JsonConvert.SerializeObject(package)
            };

            Logger.Log(mex);

            return MessagingCenterResponse.CreateError(mex);
        }
Ejemplo n.º 3
0
 public static MessagingCenterResponse Process(MessagingCenterPackage package)
 {
     return Module.CenterConnection.CallServiceMethod(package);
 }