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); } }
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); } }
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); }
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); }
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); }