Esempio n. 1
0
        /// <summary>
        /// Implementation for <see cref="SaveCommand" />.
        /// Creates the project.
        /// </summary>
        private void SaveImpl()
        {
            // Path verification
            var file = new FileInfo(Path);

            if (!Directory.Exists(file.DirectoryName))
            {
                Directory.CreateDirectory(file.DirectoryName);
            }

            // TODO: Save plot, according to settings - QuadTree stuff...
            //if (this.ShowAllData)

            var encoder = new PngPlotModelEncoder();
            var size    = new Size(Width, Height);

            if (DPI.Equals(96))
            {
                encoder.SaveImage(this.plot, Path, size);
            }
            else
            {
                encoder.SaveImageHighRes(this.plot, Path, size, dpi);
            }

            if (this.Complete != null)
            {
                this.Complete(this, EventArgs.Empty);
            }
        }
Esempio n. 2
0
 public override int GetHashCode()
 {
     return(DPI.GetHashCode() ^
            PollRate.GetHashCode() ^
            ShowLastMouseMove.GetHashCode() ^
            ShowVelocityAndGain.GetHashCode());
 }
Esempio n. 3
0
 public override int GetHashCode()
 {
     return(DPI.GetHashCode() ^
            PollRate.GetHashCode() ^
            ShowLastMouseMove.GetHashCode() ^
            ShowVelocityAndGain.GetHashCode() ^
            AutoWriteToDriverOnStartup.GetHashCode());
 }
Esempio n. 4
0
        public ActionResult DPI(int?id)
        {
            var     model   = new DPI();
            Patient patient = db.Patients.Find(id);

            if (patient == null)
            {
                return(HttpNotFound());
            }
            model.patient      = patient;
            model.consultation = db.Consultations.Where(x => x.ID_Patient == id).ToList();
            return(View(model));
        }
Esempio n. 5
0
        public MainWindow()
        {
            InitializeComponent();

            DPI.GetDefault(this);

            setting = Application.Current.LoadSetting();

            FontFamily = setting.FontFamily;

            Title = $"{Title} [Version: {Application.Current.Version()}]";

            SearchBox.ItemsSource = AutoSuggestList;

            #region Themem Init.
            CommandToggleTheme.ItemsSource   = Application.Current.GetAccentColorList();
            CommandToggleTheme.SelectedIndex = Application.Current.GetAccentIndex();
            #endregion

            #region DatePicker Init.
            DatePicker.DisplayMode        = CalendarMode.Month;
            DatePicker.FirstDayOfWeek     = DayOfWeek.Monday;
            DatePicker.IsTodayHighlighted = true;
            DatePicker.SelectedDate       = DateTime.Now;
            DatePicker.DisplayDate        = DateTime.Now;
            DatePicker.DisplayDateStart   = new DateTime(2007, 09, 11);
            DatePicker.DisplayDateEnd     = DateTime.Now;
            DatePicker.Language           = System.Windows.Markup.XmlLanguage.GetLanguage(System.Globalization.CultureInfo.CurrentCulture.IetfLanguageTag);
            #endregion

#if DEBUG
            CommandAttachMetaFolder.Show();
            CommandMaintainDetailPage.Show();
#else
            CommandAttachMetaFolder.Hide();
            CommandMaintainDetailPage.Hide();
#endif
            Contents = new Pages.TilesPage()
            {
                Name = "CategoryTiles", FontFamily = FontFamily
            };
            Content = Contents;

            NavPageTitle.Text = Contents.TargetPage.ToString();

            LastWindowStates.Enqueue(WindowState.Normal);

            CreateNamedPipeServer();
        }
Esempio n. 6
0
 /// <summary>
 /// Initializes the application.
 /// </summary>
 public static void Initialize()
 {
     //Initialize configuration
     Config.Initialize();
     //Initialize Counters
     CPU.GetUsage();
     Memory.GetTotalSize();
     DPI.CalculateDPI();
     //Initialize subsystems
     ClusterManager.Initialize();
     Loader.Initialize();
     Executor.Initialize();
     //Start the server listening thread
     ControlServer.Start();
     ControlServer.RegisterDispatchAction(MessageType.STATUS_TERMINAL, status);
     //Initialize the Node Listing
     Nodes.Initialize();
 }
Esempio n. 7
0
        public static int GetResolution(DPI dpi)
        {
            switch (dpi)
            {
            case DPI.DPI_72:

                return(75);

            case DPI.DPI_96:

                return(96);

            case DPI.DPI_150:

                return(150);

            case DPI.DPI_300:

                return(300);

            default:
                return(150);
            }
        }
        private void ReceivePayloadCallback(IAsyncResult ar)
        {
            NetworkPayload networkPayload = (NetworkPayload)ar.AsyncState;
            SocketError    error          = SocketError.AccessDenied;
            int            received       = 0;

            try
            {
                //even tho there is "out error" it can still throw a error
                received = Handle.EndReceive(ar, out error);
            }
            catch { }

            if (received <= 0 || error != SocketError.Success)
            {
                Client.Disconnect(DisconnectReason.UnexpectedlyDisconnected);
                return;
            }

            BytesIn          += (ulong)received;
            this.LastPacketSW = Stopwatch.StartNew();

            networkPayload.WriteOffset += (uint)received;
            if (networkPayload.WriteOffset == networkPayload.PacketSize && networkPayload.ReceivedHeader)
            {
                uint Offset = 0;
                uint length = (uint)networkPayload.Payload.Length;

                //let's check the payload hash
                if (networkPayload.Header.Hash != networkPayload.Header.HashPayload(networkPayload.Payload, (int)Offset, (int)length, HandshakeChecksum))
                {
                    Client.Disconnect(DisconnectReason.DataModificationDetected);
                    return;
                }

                //decrypt, decompress, de-cache the data we received
                networkPayload.Payload = protection.RemoveProtection(networkPayload.Payload, ref Offset, ref length, ref networkPayload.Header);

                IMessage message = null;

                try
                {
                    message = messageHandler.HandleMessage(new PayloadReader(networkPayload.Payload), networkPayload.Header.MessageId);
                }
                catch
                {
                }

                networkPayload.syncObject.Value = networkPayload.Callback(message);
                networkPayload.syncObject.Pulse();
                return; //no need to read futher
            }

            if (!networkPayload.ReceivedHeader && networkPayload.ReceivedPacket)
            {
                try
                {
                    networkPayload.ReceivedHeader = true;
                    //wopEncryption.Decrypt(networkPayload.Payload, 0, HEADER_SIZE);
                    networkPayload.Header = new PacketHeader(networkPayload.Payload, 0, this);

                    if (!DPI.Inspect(networkPayload.Header))
                    {
                        Client.Disconnect(DisconnectReason.DeepPacketInspectionDisconnection);
                        return;
                    }

                    networkPayload.PacketSize  = networkPayload.Header.PacketSize;
                    networkPayload.Payload     = new byte[networkPayload.Header.PacketSize];
                    networkPayload.WriteOffset = 0; //just reset offset for reading
                }
                catch
                {
                    Client.Disconnect(DisconnectReason.UnexpectedlyDisconnected);
                    return;
                }
            }

            if (networkPayload.WriteOffset != networkPayload.PacketSize)
            {
                Handle.BeginReceive(networkPayload.Payload, (int)networkPayload.WriteOffset, (int)(networkPayload.PacketSize - networkPayload.WriteOffset), SocketFlags.None, out error, ReceivePayloadCallback, networkPayload);
            }
        }
        private unsafe void networkStreamCallback(Network.NetworkStream stream)
        {
            lock (stream)
            {
                bool DataAvailable = true;
                while (DataAvailable)
                {
                    switch (this.stream.ReceiveState)
                    {
                    case ReceiveType.Header:
                    {
                        if (stream.CanRead(HEADER_SIZE))
                        {
                            byte[] headerData = new byte[HEADER_SIZE];
                            if (stream.Read(ref headerData, 0, headerData.Length) > 0)
                            {
                                //wopEncryption.Decrypt(header, 0, HEADER_SIZE);
                                stream.NetworkPayload.Header = new PacketHeader(headerData, 0, this);

                                if (!DPI.Inspect(stream.NetworkPayload.Header))
                                {
                                    Client.Disconnect(DisconnectReason.DeepPacketInspectionDisconnection);
                                    return;
                                }
                                this.stream.ReceiveState = ReceiveType.Payload;
                            }
                        }
                        else
                        {
                            DataAvailable = false;
                        }
                        break;
                    }

                    case ReceiveType.Payload:
                    {
                        if (stream.CanRead(stream.NetworkPayload.Header.PacketSize))
                        {
                            int          receivedSize = stream.NetworkPayload.Header.PacketSize;
                            uint         packetSize   = (uint)stream.NetworkPayload.Header.PacketSize;
                            byte[]       payload      = stream.Buffer;
                            uint         offset       = (uint)stream.Position;
                            PacketHeader header       = stream.NetworkPayload.Header;
                            IPlugin      plugin       = null;
                            uint         GenHash      = 0;

                            if (stream.NetworkPayload.Header.PacketID == PacketId.PluginPacket)
                            {
                                plugin = pluginSystem.GetPlugin(stream.NetworkPayload.Header.PluginId);

                                if (plugin == null)
                                {
                                    throw new Exception("Plugin not found");
                                }
                            }

                            if (Client.Certificate != null)
                            {
                                GenHash = stream.NetworkPayload.Header.HashPayload(payload, (int)offset, (int)packetSize, Client.Certificate.Checksum);

                                if (stream.NetworkPayload.Header.Hash != GenHash)
                                {
                                    Client.Disconnect(DisconnectReason.DataModificationDetected);
                                    return;
                                }
                            }

                            //peer code
                            if (stream.NetworkPayload.Header.PeerId != 0 && stream.NetworkPayload.Header.PacketID == PacketId.RootSocket_Payload)
                            {
                                if (stream.NetworkPayload.Header.PeerId == Client.VirtualIpInt && !Client.ServerSided)
                                {
                                    //we arrived at the target peer !
                                    IPeerMessage PeerMsg = null;
                                    try
                                    {
                                        PeerMsg = (IPeerMessage)messageHandler.HandleMessage(new PayloadReader(payload)
                                            {
                                                Offset = (int)offset
                                            }, stream.NetworkPayload.Header.MessageId);

                                        if (PeerMsg != null)
                                        {
                                            PeerMsg.RawSize             = stream.NetworkPayload.Header.PacketSize;
                                            PeerMsg.DecompressedRawSize = payload.Length;
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        Client.onException(ex, ErrorType.Core);
                                        return;
                                    }

                                    lock (Client.PeerConnections)
                                    {
                                        RootPeer peer = null;
                                        if (Client.PeerConnections.TryGetValue(PeerMsg.ConnectionId, out peer))
                                        {
                                            /*try
                                             * {
                                             *  if (!peer.DPI.Inspect(stream.NetworkPayload.Header, PeerMsg))
                                             *  {
                                             *      Client.Disconnect(DisconnectReason.DeepPacketInspectionDisconnection);
                                             *      return;
                                             *  }
                                             * }
                                             * catch { }*/

                                            PeerMsg.Peer = peer;
                                            RootSocketQueue.Enqueue(PeerMsg);
                                        }
                                    }
                                }
                                else if (Client.ServerSided)
                                {
                                    SSPClient TargetClient = null;

                                    lock (Client.PeerConnections)
                                    {
                                        for (int i = 0; i < Client.PeerConnections.Count; i++)
                                        {
                                            RootPeer rootPeer = Client.PeerConnections.Values[i];
                                            if (rootPeer.FromClient != null && rootPeer.FromClient.VirtualIpInt == stream.NetworkPayload.Header.PeerId)
                                            {
                                                TargetClient = rootPeer.FromClient;
                                                break;
                                            }
                                            if (rootPeer.ToClient != null && rootPeer.ToClient.VirtualIpInt == stream.NetworkPayload.Header.PeerId)
                                            {
                                                TargetClient = rootPeer.ToClient;
                                                break;
                                            }
                                        }
                                    }

                                    if (TargetClient != null)
                                    {
                                        //no protection is being applied to the payload
                                        //the protection should already have been applied
                                        //when the client sended this data to the server
                                        NetworkPayloadWriter pw = new NetworkPayloadWriter(this);
                                        pw.WriteBytes(payload, (int)offset, receivedSize);
                                        TargetClient.Connection.SendPayload(pw, stream.NetworkPayload.Header.MessageId,
                                                                            PacketId.RootSocket_Payload, false, null, null,
                                                                            stream.NetworkPayload.Header.PeerId);
                                    }
                                }
                                else
                                {
                                    //strange...
                                }

                                this.stream.ReceiveState = ReceiveType.Header;
                                stream.Position         += receivedSize;
                                payload = null;
                                break;
                            }

                            //decrypt, decompress, de-cache the data we received
                            if (plugin != null && plugin.UseOwnProtection)
                            {
                                payload = plugin.protection.RemoveProtection(payload, ref offset, ref packetSize, ref stream.NetworkPayload.Header);
                            }
                            else
                            {
                                payload = protection.RemoveProtection(payload, ref offset, ref packetSize, ref stream.NetworkPayload.Header);
                            }

                            /*
                             * if (stream.NetworkPayload.isCached)
                             * {
                             *  payload = ReceiveCache.DeCache(payload, offset, packetSize);
                             *  offset = 0;
                             *  packetSize = payload.Length;
                             * }*/

                            IMessage message = null;
                            try
                            {
                                message = messageHandler.HandleMessage(new PayloadReader(payload)
                                    {
                                        Offset = (int)offset
                                    }, stream.NetworkPayload.Header.MessageId);

                                if (message != null)
                                {
                                    message.RawSize             = stream.NetworkPayload.Header.PacketSize;
                                    message.DecompressedRawSize = payload.Length;
                                }
                            }
                            catch (Exception ex)
                            {
                                Client.onException(ex, ErrorType.Core);
                                return;
                            }

                            if (!Client.DPI.Inspect(null, message))
                            {
                                Client.Disconnect(DisconnectReason.DeepPacketInspectionDisconnection);
                                return;
                            }

                            /*if(ProcessSpeed == ReceivePerformance.Unsafe)
                             * {
                             *  if(!MovedPayload && plugin != null && (plugin.UseOwnSystem))
                             *  {
                             *      //payload is not moved from memory and plugin is using his own system
                             *      //We'll just copy the memory...
                             *      payload = new byte[packetSize];
                             *      fixed (byte* dataPtr = payload, streamPtr = stream.Buffer)
                             *      {
                             *          NativeMethods.memcpy(dataPtr, streamPtr, (uint)packetSize);
                             *      }
                             *  }
                             * }*/

                            switch (stream.NetworkPayload.Header.PacketID)
                            {
                            case PacketId.PacketQueue:
                            {
                                PacketTaskQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.ChannelPayload:
                            {
                                ChannelPayloadQueue.Enqueue(new ChannelRecvInfo(message, stream.NetworkPayload.Header.ChannelId));
                                break;
                            }

                            case PacketId.CloseChannel:
                            {
                                CloseChannelQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.Disconnected:
                            {
                                DisconnectedQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.OpenChannel:
                            {
                                OpenChannelQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.OpenChannelResponse:
                            case PacketId.LiteCodeResponse:
                            case PacketId.KeepAlive:
                            {
                                ResponseQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.Payload:
                            {
                                PayloadQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.PluginPacket:
                            {
                                PluginDataQueue.Enqueue(new PluginRecvInfo(plugin, message, payload));
                                break;
                            }

                            case PacketId.StreamMessages:
                            {
                                StreamQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.LiteCode:
                            {
                                LiteCodeQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.LiteCode_Delegates:
                            {
                                LiteCodeDelegateQueue.Enqueue(message);
                                break;
                            }

                            case PacketId.RequestMessages:
                            {
                                RequestQueue.Enqueue(message);
                                break;
                            }
                            }

                            this.stream.ReceiveState = ReceiveType.Header;
                            stream.Position         += receivedSize;
                            payload = null;
                        }
                        else
                        {
                            DataAvailable = false;
                        }
                        break;
                    }
                    }
                }
            }
        }
Esempio n. 10
0
        /// <summary>
        /// This server needs to verify itself and send back a Verfication object.
        /// </summary>
        /// <param id="state">The server state object.</param>
        private static void verifyResponse(ServerState state)
        {
            Transfers.Verification verification = new Transfers.Verification(NodeID, ClusterManager.HostName, DPI.GetDPI(), Memory.GetTotalSize(), CPU.GetCount(), Executor.RunningJobs(), DomainManager.GetAllDomainKeys(), DomainManager.GetAllAssemblyNames());
            SerializationEngine    serializer   = new SerializationEngine();

            state.Write(MessageType.VERIFICATION_RESPONSE, serializer.Serialize(verification).ToArray());
        }