Пример #1
0
 private static void Communicate(Package package)
 {
     Console.WriteLine("COMMUNICATE");
     Console.WriteLine("TO {0}", package.To.Type);
     if (package.To.Type == BaseInfoType.Client)
     {
         foreach (var item in DataStructure.ClientList)
         {
             if (package.To.UID == item.UID)
             {
                 TcpClient        communicationSocket = item.Connector.ClientSocket;
                 NetworkStream    communicationStream = communicationSocket.GetStream();
                 TransportPackage TransportPackage    = Serializer.Serialize(package);
                 communicationStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length);
                 communicationStream.Flush();
                 Console.WriteLine("SENT");
             }
         }
     }
     else if (package.To.Type == BaseInfoType.Master)
     {
         foreach (var item in DataStructure.MasterList)
         {
             if (package.To.UID == item.UID)
             {
                 TcpClient        communicationSocket = item.Connector.ClientSocket;
                 NetworkStream    communicationStream = communicationSocket.GetStream();
                 TransportPackage TransportPackage    = Serializer.Serialize(package);
                 communicationStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length);
                 communicationStream.Flush();
                 Console.WriteLine("SENT");
             }
         }
     }
 }
        public ActionResult InfoRefs(
            [ModelBinder(typeof(SmartHttpPathBinder))] string path,
            string service)
        {
            Response.ContentType =
                string.Format(
                    "application/x-{0}-advertisement",
                    service);

            Response.Charset = string.Empty;
            Response.WriteNoCache();

            Response.PacketWrite(string.Format("# service={0}\n", service));
            Response.PacketFlush();

            if (service.Equals("git-upload-pack", StringComparison.OrdinalIgnoreCase))
            {
                TransportPackage.AdvertiseUploadPack(
                    path, Response.OutputStream);
            }
            else if (service.Equals("git-receive-pack", StringComparison.OrdinalIgnoreCase))
            {
                TransportPackage.AdvertiseReceivePack(
                    path, Response.OutputStream);
            }

            return(new EmptyResult());
        }
Пример #3
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            TransportPackage package = model.DefaultPackage;

            package.Content     = viewModel.SendText;
            package.PackageType = (int)PackageType.NormalMessage;
            model.SendMessage(package);
        }
Пример #4
0
            private void Write(BaseInfo to, BaseInfo from)
            {
                Package          package          = new Package(new Command("RECEIVE", "RECEIVE".GetType()), to, from);
                TransportPackage TransportPackage = Serializer.Serialize(package);

                serverStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length);
                serverStream.Flush();
                Console.WriteLine("WRITE");
            }
Пример #5
0
 public static object Deserialize(TransportPackage package)
 {
     using (var memoryStream = new MemoryStream(package.Data))
     {
         BinaryFormatter bf = new BinaryFormatter();
         bf.Binder = new Binder();
         return((bf).Deserialize(memoryStream));
     }
 }
Пример #6
0
 public void SendMessage(TransportPackage package)
 {
     try
     {
         Network.Send(package);
     }
     catch
     {
         OnNetworkFailed();
     }
 }
        public ActionResult UploadPack(
            [ModelBinder(typeof(SmartHttpPathBinder))] string path)
        {
            Response.ContentType = "application/x-git-upload-pack-result";
            Response.Charset     = string.Empty;
            Response.WriteNoCache();

            TransportPackage.Upload(
                path, Request.GetRequestStream(), Response.OutputStream);

            return(new EmptyResult());
        }
Пример #8
0
 private void Get()
 {
     while (true)
     {
         serverStream = masterSocket.GetStream();
         TransportPackage TransportPackage = new TransportPackage();
         serverStream.Read(TransportPackage.Data, 0, masterSocket.ReceiveBufferSize);
         Package package = (Package)Serializer.Deserialize(TransportPackage);
         Console.WriteLine(package.Content.ToString());
         Console.WriteLine("GET");
     }
 }
Пример #9
0
        private void PackageReviced(object sender, Eventarg.PackageRevicedEventArgs e)
        {
            TransportPackage package = (TransportPackage)e.Package.Load;

            Dispatcher.Invoke((Action)(() =>
            {
                switch ((PackageType)(package.PackageType))
                {
                case PackageType.NormalMessage:
                    {
                        Msg msg = new Msg();
                        MsgViewModel viewModel = new MsgViewModel
                        {
                            Publisher = package.Name,
                            Content = new TextBlock(new Run(package.Content))
                        };
                        msg.DataContext = viewModel;
                        ViewModel.Msgs.Children.Add(msg);
                        break;
                    }

                case PackageType.ImageMessage:
                    {
                        Msg msg = new Msg();
                        MsgViewModel viewModel = new MsgViewModel
                        {
                            Publisher = package.Name,
                            Content = new TextBlock(new InlineUIContainer(new Image()
                            {
                                Source = BaseToImageSource(package.Content), Height = 200
                            }))
                        };
                        msg.DataContext = viewModel;
                        ViewModel.Msgs.Children.Add(msg);
                        break;
                    }

                case PackageType.ChangeChannelName:
                    ViewModel.ChannelName = package.Content;
                    break;

                case PackageType.Login:
                    DefaultPackage.ClientGuid = package.Content;
                    break;

                default:
                    ViewModel.Msgs.Children.Add(new TextBlock(new Run(package.Content)));
                    break;
                }
            }));
        }
Пример #10
0
 private void handleConnection()
 {
     while (true)
     {
         networkStream = null;
         networkStream = ClientSocket.GetStream();
         TransportPackage TransportPackage = new TransportPackage();
         networkStream.Read(TransportPackage.Data, 0, ClientSocket.ReceiveBufferSize);
         networkStream.Flush();
         Package package = (Package)Serializer.Deserialize(TransportPackage);
         Console.WriteLine("GET PACKAGE\nType - {0}\nValue - {1}\nFrom - {2}\nTo - {3}", package.ContentType.ToString(), package.Content.ToString(), package.From.UID, package.To.UID);
         Communicate(package);
     }
 }
Пример #11
0
 private void Write()
 {
     while (true)
     {
         Console.ReadLine();
         Command          command          = new Command("OK", "OK".GetType());
         BaseInfo         to               = new BaseInfo("2");
         Package          package          = new Package(new Command(command, command.GetType()), to, MasterInfo);
         TransportPackage TransportPackage = Serializer.Serialize(package);
         serverStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length);
         serverStream.Flush();
         Console.WriteLine("WRITE");
     }
 }
Пример #12
0
 private void Get()
 {
     while (true)
     {
         serverStream = clientSocket.GetStream();
         TransportPackage TransportPackage = new TransportPackage();
         serverStream.Read(TransportPackage.Data, 0, clientSocket.ReceiveBufferSize);
         serverStream.Flush();
         Package package = (Package)Serializer.Deserialize(TransportPackage);
         Command command = (Command)package.Content;
         Console.WriteLine(command.Data);
         Write(package.From, ClientInfo);
         Console.WriteLine("GET");
     }
 }
Пример #13
0
            public PlatiniumMaster()
            {
                masterSocket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 55555));
                serverStream = masterSocket.GetStream();
                Package          package          = new Package(MasterInfo, new BaseInfo(BaseInfoType.Server), MasterInfo);
                TransportPackage TransportPackage = Serializer.Serialize(package);

                serverStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length);
                serverStream.Flush();
                Thread GetThread = new Thread(Get);

                GetThread.Start();
                Thread WriteThread = new Thread(Write);

                WriteThread.Start();
            }
Пример #14
0
            public PlatiniumClient()
            {
                clientSocket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 55555));
                serverStream = clientSocket.GetStream();
                Package          package          = new Package(ClientInfo, new BaseInfo(BaseInfoType.Server), ClientInfo);
                TransportPackage TransportPackage = Serializer.Serialize(package);

                serverStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length);
                serverStream.Flush();
                Thread GetThread = new Thread(Get);

                GetThread.IsBackground = true;
                GetThread.Start();
                while (true)
                {
                }
            }
Пример #15
0
        public void RegisterService()
        {
            var serviceDetails = new WindowsServiceDetails
            {
                ServiceAccount    = ServiceAccount,
                ServiceAccountPwd = ServiceAccountPwd,
                DisplayName       = DisplayName,
                Name               = Name,
                ImagePath          = $"\"{Path.Combine(InstallPath, Constants.ServiceControlExe)}\" --serviceName={Name}",
                ServiceDescription = ServiceDescription
            };
            var dependencies = new List <string>();

            if (TransportPackage.Equals("MSMQ", StringComparison.OrdinalIgnoreCase))
            {
                dependencies.Add("MSMQ");
            }
            WindowsServiceController.RegisterNewService(serviceDetails, dependencies.ToArray());

            // Service registered so pull out not configured flag files.
            RemoveFlagFiles();
        }
Пример #16
0
            private void Listen()
            {
                TcpListener ServerSocket = new TcpListener(IPEndPoint);

                ServerSocket.Start();
                while (true)
                {
                    TcpClient        Socket           = ServerSocket.AcceptTcpClient();
                    TransportPackage TransportPackage = new TransportPackage();
                    NetworkStream    networkStream    = Socket.GetStream();
                    networkStream.Read(TransportPackage.Data, 0, Socket.ReceiveBufferSize);
                    Package  package = (Package)Serializer.Deserialize(TransportPackage);
                    BaseInfo Info    = (BaseInfo)package.Content;
                    Info.Connector = new Connector();
                    if (Info.Type == BaseInfoType.Client)
                    {
                        if (!DataStructure.ClientList.Contains(Info))
                        {
                            DataStructure.ClientList.Add(Info);
                        }
                    }
                    else if (Info.Type == BaseInfoType.Master)
                    {
                        if (!DataStructure.MasterList.Contains(Info))
                        {
                            DataStructure.MasterList.Add(Info);
                        }
                    }
                    if (!DataStructure.ClientList.Contains(Info) || !DataStructure.MasterList.Contains(Info))
                    {
                        Dictionary <string, object> ddata = Converter.ClassToDictionary(Info);
                        foreach (var item in ddata)
                        {
                            Console.WriteLine("{0} - {1}", item.Key, item.Value);
                        }
                        Info.Connector.StartConnection(Socket);
                    }
                }
            }
Пример #17
0
        public void Validate(Func <PathInfo, bool> promptToProceed)
        {
            if (TransportPackage.Equals("MSMQ", StringComparison.OrdinalIgnoreCase))
            {
                try
                {
                    MsmqConfigValidator.Validate();
                }
                catch (EngineValidationException ex)
                {
                    ReportCard.Errors.Add(ex.Message);
                }
            }

            try
            {
                PortValidator.Validate(this);
            }
            catch (EngineValidationException ex)
            {
                ReportCard.Errors.Add(ex.Message);
            }

            try
            {
                DatabaseMaintenancePortValidator.Validate(this);
            }
            catch (EngineValidationException ex)
            {
                ReportCard.Errors.Add(ex.Message);
            }

            try
            {
                ReportCard.CancelRequested = new PathsValidator(this).RunValidation(true, promptToProceed);
            }
            catch (EngineValidationException ex)
            {
                ReportCard.Errors.Add(ex.Message);
            }

            try
            {
                ServiceControlQueueNameValidator.Validate(this);
            }
            catch (EngineValidationException ex)
            {
                ReportCard.Errors.Add(ex.Message);
            }

            try
            {
                CheckForConflictingUrlAclReservations();
            }
            catch (EngineValidationException ex)
            {
                ReportCard.Errors.Add(ex.Message);
            }

            try
            {
                ServiceAccountValidation.Validate(this);
                ConnectionStringValidator.Validate(this);
            }
            catch (IdentityNotMappedException)
            {
                ReportCard.Errors.Add("The service account specified does not exist");
            }
            catch (EngineValidationException ex)
            {
                ReportCard.Errors.Add(ex.Message);
            }
        }