Ejemplo n.º 1
0
        public bool Handle(IPacket header, IIBLVMSocket socket)
        {
            if (header.Type == PacketType.ManagerBitLockerUnlock)
            {
                Utils.PacketValidation(socket.Status, (int)ClientSocketStatus.LoggedIn, header.GetPayloadSize(), false);

                IPayload <ManagerBitLockerUnlock> packet = socket.PacketFactory.CreateManagerBitLockerUnlockRequest(null, null, cryptor);
                packet.ParsePayload(header.GetPayloadSize(), socket.SocketStream);

                IDevice receiver = (from device in deviceController.GetUserDevices(session.Account.Id) where device.DeviceIP.Equals(packet.Payload.Drive.IP) select device).FirstOrDefault();
                if (receiver != null)
                {
                    Utils.SendPacket(socket.SocketStream, socket.PacketFactory.CreateServerBitLockerCommandResponse(broadcaster.RequestBitLockerUnlock(receiver, packet.Payload.Drive.Drive, packet.Payload.Password)));
                }
                else
                {
                    Utils.SendPacket(socket.SocketStream, socket.PacketFactory.CreateServerBitLockerCommandResponse(false));
                }

                return(true);
            }

            return(false);
        }