Esempio n. 1
0
 private static void InvalidLogin(Connection conn, LoginInfo login)
 {
     try {
         Logger.Fatal(
             "Callback de InvalidLogin foi chamada, tentando logar novamente no barramento.");
         conn.LoginByCertificate(Entity, _privateKey);
         _offer = ORBInitializer.Context.OfferRegistry.registerService(_ic,
                                                                       _properties);
     }
     catch (AlreadyLoggedInException) {
         // outra thread reconectou
     }
     catch (Exception e) {
         Logger.Fatal(e);
     }
 }
Esempio n. 2
0
        private static void InvalidLogin(Connection conn, LoginInfo login)
        {
            OpenBusContext context = ORBInitializer.Context;

            context.SetCurrentConnection(conn);
            try {
                Console.WriteLine(
                    "Callback de InvalidLogin foi chamada, tentando logar novamente no barramento.");
                conn.LoginByCertificate(Entity, _privateKey);
                _offer = context.OfferRegistry.registerService(_ic, _properties);
            }
            catch (AlreadyLoggedInException) {
                // outra thread reconectou
            }
            catch (Exception e) {
                Console.WriteLine(e);
            }
        }
Esempio n. 3
0
        public bool HoursAvailable(int serviceOfferId, DateTime date, TimeSpan from, TimeSpan to)
        {
            ServiceOffer      s         = _context.GetTable <ServiceOffer>().FirstOrDefault(x => x.ID == serviceOfferId);
            TimeRange         timeRange = new TimeRange(from, to);
            IList <TimeRange> times     = new List <TimeRange>();
            var salelines = _context.GetTable <Saleline>().Where(x => x.ServiceOffer_ID == s.ID);

            foreach (var t in salelines)
            {
                if (t.BookedDate.BookedDate1.ToShortDateString() == date.ToShortDateString())
                {
                    times.Add(new TimeRange(t.BookedDate.HourFrom, t.BookedDate.HourTo));
                }
            }

            foreach (var w in times)
            {
                if (timeRange.Clashes(w))
                {
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 4
0
        private static void Main(String[] args)
        {
            // Registra handler para o caso do processo ser finalizado
            AppDomain.CurrentDomain.ProcessExit += CurrentDomainProcessExit;

            // Obtém dados através dos argumentos
            string host   = args[0];
            ushort port   = Convert.ToUInt16(args[1]);
            string entity = args[2];
            AsymmetricCipherKeyPair privateKey = Crypto.ReadKeyFile(args[3]);

            // Cria o componente que conterá as facetas do servidor
            ORBInitializer.InitORB();
            ComponentContext component =
                new DefaultComponentContext(new ComponentId("messenger", 1, 0, 0, ".net"));

            // Cria a faceta Messenger para o componente
            component.AddFacet("Messenger",
                               Repository.GetRepositoryID(typeof(Messenger)),
                               new MessengerImpl(entity));

            // Define propriedades para a oferta de serviço a ser registrada no barramento
            IComponent ic = component.GetIComponent();

            ServiceProperty[] properties =
            {
                new ServiceProperty("offer.domain",
                                    "Demo CallChain"),
                new ServiceProperty("offer.role",
                                    "mensageiro real")
            };

            // Cria conexão e a define como conexão padrão tanto para entrada como saída.
            // O uso exclusivo da conexão padrão (sem uso de current e callback de despacho) só é recomendado para aplicações que criem apenas uma conexão e desejem utilizá-la em todos os casos. Para situações diferentes, consulte o manual do SDK OpenBus e/ou outras demos.
            OpenBusContext context = ORBInitializer.Context;

            _conn = context.ConnectByAddress(host, port);
            context.SetDefaultConnection(_conn);

            bool failed = true;

            try {
                // Faz o login
                _conn.LoginByCertificate(entity, privateKey);
                // Registra a oferta no barramento
                _offer = context.OfferRegistry.registerService(ic, properties);
                failed = false;
            }
            // Login
            catch (AccessDenied) {
                Console.WriteLine(Resources.ServerAccessDenied);
            }
            catch (MissingCertificate) {
                Console.WriteLine(Resources.MissingCertificateForEntity + entity);
            }
            // Registro
            catch (UnauthorizedFacets) {
                Console.WriteLine(Resources.UnauthorizedFacets);
            }
            // Barramento
            catch (ServiceFailure e) {
                Console.WriteLine(Resources.BusServiceFailureErrorMsg);
                Console.WriteLine(e);
            }
            catch (TRANSIENT) {
                Console.WriteLine(Resources.BusTransientErrorMsg);
            }
            catch (COMM_FAILURE) {
                Console.WriteLine(Resources.BusCommFailureErrorMsg);
            }
            catch (Exception e) {
                NO_PERMISSION npe = null;
                if (e is TargetInvocationException)
                {
                    // caso seja uma exceção lançada pelo SDK, será uma NO_PERMISSION
                    npe = e.InnerException as NO_PERMISSION;
                }
                if ((npe == null) && (!(e is NO_PERMISSION)))
                {
                    // caso não seja uma NO_PERMISSION não é uma exceção esperada então deixamos passar.
                    throw;
                }
                npe = npe ?? (NO_PERMISSION)e;
                if (npe.Minor == NoLoginCode.ConstVal)
                {
                    Console.WriteLine(Resources.NoLoginCodeErrorMsg);
                }
                else
                {
                    throw;
                }
            }
            finally {
                if (failed)
                {
                    Exit(1);
                }
            }

            // Mantém a thread ativa para aguardar requisições
            Console.WriteLine(Resources.ServerOK);
            Thread.Sleep(Timeout.Infinite);
        }
        private static void Main()
        {
            //TextWriterTraceListener writer = new TextWriterTraceListener(Console.Out);
            //Debug.Listeners.Add(writer);
            //Trace.Listeners.Add(writer);

            AppDomain.CurrentDomain.ProcessExit += CurrentDomainProcessExit;
            string hostName = DemoConfig.Default.busHostName;
            ushort hostPort = DemoConfig.Default.busHostPort;

            _privateKey = Crypto.ReadKeyFile(DemoConfig.Default.privateKey);
            bool   useSSL           = DemoConfig.Default.useSSL;
            string clientUser       = DemoConfig.Default.clientUser;
            string clientThumbprint = DemoConfig.Default.clientThumbprint;
            string serverUser       = DemoConfig.Default.serverUser;
            string serverThumbprint = DemoConfig.Default.serverThumbprint;
            ushort serverSSLPort    = DemoConfig.Default.serverSSLPort;
            ushort serverOpenPort   = DemoConfig.Default.serverOpenPort;
            string busIORFile       = DemoConfig.Default.busIORFile;

            if (useSSL)
            {
                Utils.InitSSLORB(clientUser, clientThumbprint, serverUser, serverThumbprint, serverSSLPort, serverOpenPort, true, true, "required", false, false);
            }
            else
            {
                ORBInitializer.InitORB();
            }

/*
 *    ConsoleAppender appender = new ConsoleAppender {
 *      Threshold = Level.Off,
 *      Layout =
 *        new SimpleLayout(),
 *    };
 *    BasicConfigurator.Configure(appender);
 */
            //FileInfo logFileInfo = new FileInfo(DemoConfig.Default.openbusLogFile);
            //XmlConfigurator.ConfigureAndWatch(logFileInfo);

            ConnectionProperties props = new ConnectionPropertiesImpl();

            props.AccessKey = _privateKey;
            OpenBusContext context = ORBInitializer.Context;

            if (useSSL)
            {
                string ior = File.ReadAllText(busIORFile);
                _conn = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior), props);
            }
            else
            {
                _conn = context.ConnectByAddress(hostName, hostPort, props);
            }
            context.SetDefaultConnection(_conn);

            ComponentContext component =
                new DefaultComponentContext(new ComponentId("hello", 1, 0, 0, ".net"));

            component.AddFacet("Hello", Repository.GetRepositoryID(typeof(Hello)),
                               new HelloImpl());

            _conn.LoginByCertificate(Entity, _privateKey);

            _ic         = component.GetIComponent();
            _properties = new[] {
                new ServiceProperty("offer.domain",
                                    "Interoperability Tests")
            };
            _offer = context.OfferRegistry.registerService(_ic, _properties);
            _conn.OnInvalidLogin = InvalidLogin;

            Logger.Fatal("Servidor no ar.");
            Thread.Sleep(Timeout.Infinite);
        }
Esempio n. 6
0
        private static void Main()
        {
            AppDomain.CurrentDomain.ProcessExit += CurrentDomainProcessExit;
            string hostName = DemoConfig.Default.busHostName;
            ushort hostPort = DemoConfig.Default.busHostPort;

            _privateKey = Crypto.ReadKeyFile(DemoConfig.Default.privateKey);
            bool   useSSL           = DemoConfig.Default.useSSL;
            string clientUser       = DemoConfig.Default.clientUser;
            string clientThumbprint = DemoConfig.Default.clientThumbprint;
            string serverUser       = DemoConfig.Default.serverUser;
            string serverThumbprint = DemoConfig.Default.serverThumbprint;
            ushort serverSSLPort    = DemoConfig.Default.serverSSLPort;
            ushort serverOpenPort   = DemoConfig.Default.serverOpenPort;
            string busIORFile       = DemoConfig.Default.busIORFile;

            if (useSSL)
            {
                Utils.InitSSLORB(clientUser, clientThumbprint, serverUser, serverThumbprint, serverSSLPort, serverOpenPort, true, true, "required", false, false);
            }
            else
            {
                ORBInitializer.InitORB();
            }

/*
 *    ConsoleAppender appender = new ConsoleAppender {
 *      Threshold = Level.Fatal,
 *      Layout =
 *        new SimpleLayout(),
 *    };
 *    BasicConfigurator.Configure(appender);
 */
            ConnectionProperties props = new ConnectionPropertiesImpl();

            props.AccessKey = _privateKey;
            OpenBusContext context = ORBInitializer.Context;

            if (useSSL)
            {
                string ior = File.ReadAllText(busIORFile);
                _conn = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior), props);
            }
            else
            {
                _conn = context.ConnectByAddress(hostName, hostPort, props);
            }
            context.SetDefaultConnection(_conn);

            _conn.LoginByCertificate(Entity, _privateKey);

            Messenger messenger = GetMessenger();

            if (messenger == null)
            {
                Logger.Fatal(
                    "Não foi possível encontrar um Messenger no barramento.");
                Console.Read();
                return;
            }

            ComponentContext component =
                new DefaultComponentContext(new ComponentId("Forwarder", 1, 0, 0, ".net"));

            _forwarder = new ForwarderImpl(messenger);
            component.AddFacet("forwarder",
                               Repository.GetRepositoryID(typeof(Forwarder)),
                               _forwarder);

            _ic         = component.GetIComponent();
            _properties = new[] {
                new ServiceProperty("offer.domain",
                                    "Interoperability Tests")
            };
            _offer = context.OfferRegistry.registerService(_ic, _properties);
            _conn.OnInvalidLogin = InvalidLogin;

            Logger.Fatal("Forwarder no ar.");

            Thread.Sleep(Timeout.Infinite);
        }