/// <summary> /// Execute. /// </summary> /// <param name="args">The arguments.</param> /// <param name="model"></param> /// <param name="client">The client.</param> /// <returns></returns> public RecieveInfo Execute(string[] args, IServerModel model, TcpClient client = null) { this.client = client; NetworkStream stream = client.GetStream(); StreamReader reader = new StreamReader(stream); string result = SendAndRecieve.RecieveInfo(reader); client.GetStream().Flush(); // the first finished before the other joined if (result.Equals("aborted")) { return(new RecieveInfo("close", false, "close")); } // if the message is invalid else if (!result.Equals("invalid command")) { // save start and end point Maze maze = Maze.FromJSON(result); model.CurrentRow = maze.InitialPos.Row; model.CurrentCol = maze.InitialPos.Col; model.OtherCurrentRow = maze.InitialPos.Row; model.OtherCurrentCol = maze.InitialPos.Col; model.Maze = maze; model.GameName = maze.Name; model.EndRow = maze.GoalPos.Row; model.EndCol = maze.GoalPos.Col; Game.server = client; Game.StartGame(model); } return(new RecieveInfo(result, true, "start")); }
public ServerController(ISoftwareController softwareController, AbstractViewFactory factory, string machineName, string serverId) { _softwareController = softwareController; _serverView = factory.CreateServerView(this, serverId); if (_serverView is ServerTabUserControl serverTabUserControl) { serverTabUserControl.OnUpdateRate += (sender, args) => { Console.WriteLine(@"The new update rage is {0} millisecond", args.StateUpdateRate); _group.UpdateRate = args.StateUpdateRate; } } ; _serverModel = new ServerModel(); _serverModel.ModelChanged += _serverView.ServerModelChange; _machineName = machineName; _serverId = serverId; _itemAccessMutex = new Mutex(); _server = null; _group = null; }
public RecieveInfo Execute(string[] args, IServerModel model, TcpClient client = null) { NetworkStream stream = client.GetStream(); StreamReader reader = new StreamReader(stream); string result = SendAndRecieve.RecieveInfo(reader); client.GetStream().Flush(); client.GetStream().Close(); client.Close(); result = result.Substring(1, result.Length - 2); if (result != "") { List <string> temp = new List <string>(); List <string> arr = result.Split(',').ToList(); foreach (string s in arr) { temp.Add(s.Substring(1, s.Length - 2)); } model.GameMultiPlayerList = temp; } else { model.GameMultiPlayerList = new List <string>(); } return(new RecieveInfo(result, false, "list")); }
public IDictionary <string, object> Get(IServerModel serverModel) { var result = new Dictionary <string, object> { { "success", true } }; var serverAdminNetworkCredential = _serverAdminNetworkCredentialBuilder.Build(); var webClient = new ServerQueryWebClient { Credentials = serverAdminNetworkCredential }; try { var serverStatusResponse = webClient.DownloadString(serverModel.WebAdminBaseUrl); var serverStatus = JsonConvert.DeserializeObject <Dictionary <string, object> >(serverStatusResponse); foreach (var key in serverStatus.Keys) { result.Add(key, serverStatus[key]); } } catch (Exception e) { result["success"] = false; } return(result); }
/// <summary> /// Execute. /// </summary> /// <param name="args">The arguments.</param> /// <param name="model"></param> /// <param name="client">The client.</param> /// <returns></returns> public RecieveInfo Execute(string[] args, IServerModel model, TcpClient client = null) { NetworkStream stream = client.GetStream(); StreamReader reader = new StreamReader(stream); string result = SendAndRecieve.RecieveInfo(reader); client.GetStream().Flush(); if (!result.Equals("invalid command")) { // save start and end point Maze maze = Maze.FromJSON(result); model.CurrentRow = maze.InitialPos.Row; model.CurrentCol = maze.InitialPos.Col; model.OtherCurrentRow = maze.InitialPos.Row; model.OtherCurrentCol = maze.InitialPos.Col; model.Maze = maze; model.GameName = maze.Name; // update end point model.EndRow = maze.GoalPos.Row; model.EndCol = maze.GoalPos.Col; } Game.server = client; Game.StartGame(model); return(new RecieveInfo(result, true, "join")); }
public ServerController(ISoftwareController p_SoftwareController, AbstractViewFactory p_Factory, string p_MachineName, string p_ServerID) { m_SoftwareController = p_SoftwareController; m_ServerModel = new ServerModel(); m_ServerView = p_Factory.CreateServerView(this, p_ServerID); m_ServerModel.ModelChanged += new ModelChangeEventHandler(m_ServerView.ServerModelChange); m_MachineName = p_MachineName; m_ServerID = p_ServerID; string[] ID_Spilts = p_ServerID.Split(new char[] { '.' }); if (ID_Spilts[0] == "Veriteq") { VeriteqOPCServer = true; System.Console.WriteLine("Connect to a Veriteq Server\n"); } m_DescriptionDictionary = new Dictionary <string, string>(); m_UnitDictionary = new Dictionary <string, string>(); m_ItemAccessMutex = new Mutex(); m_Server = null; m_Group = null; }
/** * Constructor **/ public CommandManager(IConfiguration conf) { configuration = conf; commandsQueue = new BlockingCollection <AsyncCommand>(); client = new MyClientModel(); serverModel = new ServerModel(conf); Task.Factory.StartNew(SendingCommands); }
public SteersViewModel(IServerModel model) { this.model = model; model.PropertyChanged += delegate(Object sender, PropertyChangedEventArgs e) { NotifyPropertyChanged("VM_" + e.PropertyName); }; }
/// <summary> /// Execute. /// </summary> /// <param name="args">The arguments.</param> /// <param name="client">The client.</param> /// <returns></returns> public RecieveInfo Execute(string[] args, IServerModel model, TcpClient client = null) { /* NetworkStream stream = client.GetStream(); * StreamReader reader = new StreamReader(stream); * string result = SendAndRecieve.RecieveInfo(reader); * client.GetStream().Flush(); * client.GetStream().Close(); * client.Close(); */ return(new RecieveInfo("close", false, "close")); }
public int?Get(IServerModel serverModel) { var result = default(int?); var info = _serverCurrentInfoDictionaryDictionaryGetter.Get(serverModel); if (Equals(info["success"], true)) { result = Convert.ToInt32(info["players_online"]); } return(result); }
public ClientModel(string localIP, string serverHost, DesktopViewer.DesktopChangedEventHandler onDesktopChanged) { _connected = false; _id = -1; _serverHost = serverHost; _ip = localIP; _hostname = Dns.GetHostName(); _commands = new CommandQueue(); _singletonServer = (IServerModel)Activator.GetObject(typeof(IServerModel), _serverHost); _viewer = new DesktopViewer( onDesktopChanged); }
IServerCurrentInfo GetServerCurrentInfo(IServerModel serverModel) { var serverCurrentInfoDictionary = _serverCurrentInfoDictionaryGetter.Get(serverModel); var serverCurrentInfo = _serverCurrentInfoAdapter.Adapt(serverCurrentInfoDictionary); var serverPlayers = serverCurrentInfo.Players.ToList(); var playersToShow = serverPlayers.Where(x => !x.IsBot).ToList(); var firstBot = serverPlayers.FirstOrDefault(x => x.IsBot); if (firstBot != default(IServerPlayer)) { playersToShow.Add(firstBot); } var result = new ServerCurrentInfo(serverCurrentInfo.MapName, playersToShow, serverCurrentInfo.ServerName); return(result); }
/// <summary> /// Initializes a new instance of the <see cref="ViewModel"/> class. /// </summary> /// <param name="model">The model.</param> public ViewModel(IServerModel model) { this.model = model; Task connectTask = new Task(() => { this.model.ConnectClient(); }); connectTask.Start(); this.model.reciveFromServer += ReciveInfo; this.model.updateFromServer += Update; this.model.connection += ReciveInfo; this.model.initializeEvent += InitializeGame; model.PropertyChanged += delegate(Object sender, PropertyChangedEventArgs e) { NotifyPropertyChanged("VM_" + e.PropertyName); }; }
/// <summary> /// Plays the specified json result. /// </summary> /// <param name="jsonResult">The json result.</param> /// <param name="model">The model.</param> private static void Play(JObject jsonResult, IServerModel model) { string direction = (string)jsonResult["Direction"]; Key key = GetKeyByString(direction); Object[] newRowAndCol = model.GetNewRowAndCol(key, model.OtherCurrentRow, model.OtherCurrentCol); int newRow = (int)newRowAndCol[0]; int newCol = (int)newRowAndCol[1]; if (newRow < model.MazeRows && newRow >= 0 && newCol < model.MazeRows && newCol >= 0 && model.Maze[newRow, newCol] != MazeLib.CellType.Wall) { model.OtherCurrentRow = newRow; model.OtherCurrentCol = newCol; // other player won if (newRow == model.Maze.GoalPos.Row && newCol == model.Maze.GoalPos.Col) { model.OtherPlayerWon(); } } }
/// <summary> /// Starts the game. /// </summary> public static void StartGame(IServerModel model) { gameAlive = true; new Task(() => { // wait for join NetworkStream stream = server.GetStream(); StreamReader reader = new StreamReader(stream); while (gameAlive) { string result = SendAndRecieve.RecieveInfo(reader); if (result != "") { JObject jsonResult = JObject.Parse(result); // if it's the end of the game: if ((string)jsonResult[""] == "game closed") { gameAlive = false; model.GameOver(); model.InitializeGame(); } else { // play one move Play(jsonResult, model); } } else { // model.GameOver(); gameAlive = false; } } }).Start(); }
public ServerViewModel Adapt(IServerModel server) { var result = new ServerViewModel(server.ID, server.Name, server.WebAdminBaseUrl); return(result); }
public void SetModel(IServerModel serverModel) { this._serverModel = serverModel; }
public ServerControl(IServerModel serverModel, IServerView serverView) { this._serverModel = serverModel; this._serverView = serverView; }
/// <summary> /// Initializes a new instance of the ServerViewModel class. /// </summary> public ServerViewModel(IEventAggregator eventAggregator, IDataService dataService, IServerModel serverModel) { _dataService = dataService; _serverModel = serverModel; _eventAggregator = eventAggregator; }
public void InsertData(ServerModel type, IServerModel model) { Data.Add(new KeyValuePair <ServerModel, IServerModel>(type, model)); }
public ServerPresenter(IServerView view, IServerModel model) { _view = view; _model = model; }
/// <summary> /// FlightModel constctor. create with server model and flight plan model. /// </summary> /// <param name="flightPlanModel"> flight plan maneger </param> /// <param name="serverModel"> server manger </param> public FlightModel(IFlightPlanModel flightPlanModel, IServerModel serverModel) { this.flightPlanModel = flightPlanModel; this.serverModel = serverModel; }
private static void Present( IServerModel aModel, IServerView aView ) { aModel.EventOccurred += aView.LogEvent; aView.AbortRequested += aModel.Abort; return; }
/// <summary> /// controler constctor. create controler with server manger. /// </summary> /// <param name="manger"></param> public ServersController(IServerModel serverModel) { this.manger = serverModel; }