public async Task <ActionResult> RegisterAgent(RegisterAgent model) { _logger.Info("Registering Agent Request! Params: " + model.ToJson()); ModelState.Remove(nameof(model.IsTermsAgreed)); ModelState.Remove(nameof(model.reCaptcha)); if (!ModelState.IsValid) { _logger.Error("Registering Agent Form Invalid! Errors:" + ModelState.ToJson()); return(View(model)); } var role = "Agent"; var result = await UserServices.RegisterTeamUser(model, role); if (result) { _logger.Info("Registration of Agent Successfully!"); return(RedirectToAction("Index", "Home")); } _logger.Error("Registration of Agent Failed due to Service Error!"); ModelState.AddModelError("", "Грешка при създаване на потребител!"); return(View(model)); }
private async void AuthCodeTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { // If the button has been made visible again, then cancel the check if (!this.IsAuthCodeProcessing) { ((System.Timers.Timer)sender).Stop(); ((System.Timers.Timer)sender).Elapsed -= AuthCodeTimer_Elapsed; ((System.Timers.Timer)sender).Dispose(); this.UserCode = string.Empty; this.DeviceCode = string.Empty; return; } if (await CheckCode(this.UserCode, this.DeviceCode)) { // We have great success ((System.Timers.Timer)sender).Stop(); ((System.Timers.Timer)sender).Elapsed -= AuthCodeTimer_Elapsed; ((System.Timers.Timer)sender).Dispose(); // The task has already set our config, all we need to do is call Register try { // Assert the XMDS url this.xmds.Url = ApplicationSettings.Default.XiboClient_xmds_xmds + "&method=registerDisplay"; var response = this.xmds.RegisterDisplay( ApplicationSettings.Default.ServerKey, ApplicationSettings.Default.HardwareKey, ApplicationSettings.Default.DisplayName, "windows", ApplicationSettings.Default.ClientVersion, ApplicationSettings.Default.ClientCodeVersion, Environment.OSVersion.ToString(), this.hardwareKey.MacAddress, this.hardwareKey.Channel, this.hardwareKey.getXmrPublicKey()); // Process the XML RegisterAgent.ProcessRegisterXml(response); // Launch Dispatcher.Invoke(new System.Action( () => { Close(); Process.Start(Process.GetCurrentProcess().MainModule.FileName); }) ); } catch (Exception ex) { this.textBoxStatus.Text = "Problem Claiming Code, please try again."; Trace.WriteLine(new LogMessage("OptionsForm", "AuthCodeTimer_Elapsed: Problem claiming code: " + ex.Message), LogType.Error.ToString()); } } }
/// <summary> /// Register display completed /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void xmds1_RegisterDisplayCompleted(object sender, XiboClient.xmds.RegisterDisplayCompletedEventArgs e) { tbStatus.ResetText(); if (e.Error != null) { tbStatus.AppendText("Status" + Environment.NewLine); tbStatus.AppendText(e.Error.Message); Debug.WriteLine("Error returned from Call to XMDS Register Display.", "xmds1_RegisterDisplayCompleted"); Debug.WriteLine(e.Error.Message, "xmds1_RegisterDisplayCompleted"); Debug.WriteLine(e.Error.StackTrace, "xmds1_RegisterDisplayCompleted"); } else { tbStatus.AppendText(RegisterAgent.ProcessRegisterXml(e.Result)); } }
public override bool InitLayer(LayerInitData layerInitData, RegisterAgent registerAgentHandle, UnregisterAgent unregisterAgentHandle) { var initiated = base.InitLayer(layerInitData, registerAgentHandle, unregisterAgentHandle); DeerEnvironment = new SpatialHashEnvironment <Deer>(Width - 1, Height - 1) { CheckBoundaries = true }; WolfEnvironment = new SpatialHashEnvironment <Wolf>(Width - 1, Height - 1) { CheckBoundaries = true }; AgentManager = layerInitData.Container.Resolve <IAgentManager>(); AgentManager.Spawn <Deer, ForestLayer>().ToList(); return(initiated); }
/// <summary> /// Register Display has been completed /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Xmds_RegisterDisplayCompleted(object sender, xmds.RegisterDisplayCompletedEventArgs e) { buttonConnect.IsEnabled = true; textBoxStatus.Clear(); if (e.Error != null) { textBoxStatus.AppendText("Status" + Environment.NewLine); textBoxStatus.AppendText(e.Error.Message); Debug.WriteLine("Error returned from Call to XMDS Register Display.", "xmds1_RegisterDisplayCompleted"); Debug.WriteLine(e.Error.Message, "xmds1_RegisterDisplayCompleted"); Debug.WriteLine(e.Error.StackTrace, "xmds1_RegisterDisplayCompleted"); } else { textBoxStatus.AppendText(RegisterAgent.ProcessRegisterXml(e.Result)); } }
public override bool InitLayer( Mars.Interfaces.Layer.Initialization.TInitData initData, RegisterAgent regHandle, UnregisterAgent unregHandle) { base.InitLayer(initData, regHandle, unregHandle); _Register = regHandle; _Unregister = unregHandle; _InitGrid(initData); _AnimalEnvironment = new SpatialHashEnvironment <Animal>(_dimensionX, _dimensionY, true); _AnimalAgents = Mars.Components.Services.AgentManager.SpawnAgents <Animal>( initData.AgentInitConfigs.First(config => config.Type == typeof(Animal)), regHandle, unregHandle, new List <ILayer> { this }); return(true); }
public async Task <ActionResult> RegisterTeamUser(RegisterAgent model, string role) { if (!UserServices.DoesRoleExist(role)) { return(HttpNotFound("The Role does not exist")); } if (!ModelState.IsValid) { ViewBag.Roles = UserServices.GetRoles("bg"); return(View(model)); } var result = await UserServices.RegisterTeamUser(model, role); if (result) { return(RedirectToAction("Index", "Home")); } ModelState.AddModelError("", "Error Creating User"); return(View(model)); }
/// <summary> /// Create a schedule /// </summary> /// <param name="scheduleLocation"></param> public Schedule(string scheduleLocation, ref CacheManager cacheManager, ref ClientInfo clientInfoForm) { Trace.WriteLine(string.Format("XMDS Location: {0}", ApplicationSettings.Default.XiboClient_xmds_xmds)); // Get the key for this display _hardwareKey = new HardwareKey(); // Save the schedule location _scheduleLocation = scheduleLocation; // Create a new collection for the layouts in the schedule _layoutSchedule = new Collection <ScheduleItem>(); // Set cachemanager _cacheManager = cacheManager; // Set client info form _clientInfoForm = clientInfoForm; // Create a Register Agent _registerAgent = new RegisterAgent(); _registerAgent.OnXmrReconfigure += _registerAgent_OnXmrReconfigure; _registerAgentThread = new Thread(new ThreadStart(_registerAgent.Run)); _registerAgentThread.Name = "RegisterAgentThread"; // Create a schedule manager _scheduleManager = new ScheduleManager(_cacheManager, scheduleLocation); _scheduleManager.OnNewScheduleAvailable += new ScheduleManager.OnNewScheduleAvailableDelegate(_scheduleManager_OnNewScheduleAvailable); _scheduleManager.OnRefreshSchedule += new ScheduleManager.OnRefreshScheduleDelegate(_scheduleManager_OnRefreshSchedule); _scheduleManager.OnScheduleManagerCheckComplete += _scheduleManager_OnScheduleManagerCheckComplete; _scheduleManager.ClientInfoForm = _clientInfoForm; // Create a schedule manager thread _scheduleManagerThread = new Thread(new ThreadStart(_scheduleManager.Run)); _scheduleManagerThread.Name = "ScheduleManagerThread"; // Create a RequiredFilesAgent _scheduleAndRfAgent = new ScheduleAndFilesAgent(); _scheduleAndRfAgent.CurrentCacheManager = cacheManager; _scheduleAndRfAgent.CurrentScheduleManager = _scheduleManager; _scheduleAndRfAgent.ScheduleLocation = scheduleLocation; _scheduleAndRfAgent.HardwareKey = _hardwareKey.Key; _scheduleAndRfAgent.OnFullyProvisioned += _requiredFilesAgent_OnFullyProvisioned; _scheduleAndRfAgent.ClientInfoForm = _clientInfoForm; _scheduleAndRfAgent.OnComplete += new ScheduleAndFilesAgent.OnCompleteDelegate(LayoutFileModified); // Create a thread for the RequiredFiles Agent to run in - but dont start it up yet. _scheduleAndRfAgentThread = new Thread(new ThreadStart(_scheduleAndRfAgent.Run)); _scheduleAndRfAgentThread.Name = "RequiredFilesAgentThread"; // Library Agent _libraryAgent = new LibraryAgent(); _libraryAgent.CurrentCacheManager = _cacheManager; // Create a thread for the Library Agent to run in - but dont start it up yet. _libraryAgentThread = new Thread(new ThreadStart(_libraryAgent.Run)); _libraryAgentThread.Name = "LibraryAgent"; // Log Agent _logAgent = new LogAgent(); _logAgentThread = new Thread(new ThreadStart(_logAgent.Run)); _logAgentThread.Name = "LogAgent"; // XMR Subscriber _xmrSubscriber = new XmrSubscriber(); _xmrSubscriber.HardwareKey = _hardwareKey; _xmrSubscriber.ClientInfoForm = _clientInfoForm; _xmrSubscriber.OnAction += _xmrSubscriber_OnAction; // Thread start _xmrSubscriberThread = new Thread(new ThreadStart(_xmrSubscriber.Run)); _xmrSubscriberThread.Name = "XmrSubscriber"; // Embedded Server _server = new EmbeddedServer(); _server.ClientInfoForm = _clientInfoForm; _server.OnServerClosed += _server_OnServerClosed; _serverThread = new Thread(new ThreadStart(_server.Run)); _serverThread.Name = "EmbeddedServer"; }
/// <summary> /// Create a schedule /// </summary> /// <param name="scheduleLocation"></param> public Schedule(string scheduleLocation, ref CacheManager cacheManager, ref ClientInfo clientInfoForm) { Trace.WriteLine(string.Format("XMDS Location: {0}", ApplicationSettings.Default.XiboClient_xmds_xmds)); // Get the key for this display _hardwareKey = new HardwareKey(); // Save the schedule location _scheduleLocation = scheduleLocation; // Create a new collection for the layouts in the schedule _layoutSchedule = new Collection <LayoutSchedule>(); // Set cachemanager _cacheManager = cacheManager; // Set client info form _clientInfoForm = clientInfoForm; // Create a Register Agent _registerAgent = new RegisterAgent(); _registerAgentThread = new Thread(new ThreadStart(_registerAgent.Run)); _registerAgentThread.Name = "RegisterAgentThread"; // Create a schedule manager _scheduleManager = new ScheduleManager(_cacheManager, scheduleLocation); _scheduleManager.OnNewScheduleAvailable += new ScheduleManager.OnNewScheduleAvailableDelegate(_scheduleManager_OnNewScheduleAvailable); _scheduleManager.OnRefreshSchedule += new ScheduleManager.OnRefreshScheduleDelegate(_scheduleManager_OnRefreshSchedule); _scheduleManager.ClientInfoForm = _clientInfoForm; // Create a schedule manager thread _scheduleManagerThread = new Thread(new ThreadStart(_scheduleManager.Run)); _scheduleManagerThread.Name = "ScheduleManagerThread"; // Create a Schedule Agent _scheduleAgent = new ScheduleAgent(); _scheduleAgent.CurrentScheduleManager = _scheduleManager; _scheduleAgent.ScheduleLocation = scheduleLocation; _scheduleAgent.HardwareKey = _hardwareKey.Key; _scheduleAgent.ClientInfoForm = _clientInfoForm; // Create a thread for the Schedule Agent to run in - but dont start it up yet. _scheduleAgentThread = new Thread(new ThreadStart(_scheduleAgent.Run)); _scheduleAgentThread.Name = "ScheduleAgentThread"; // Create a RequiredFilesAgent _requiredFilesAgent = new RequiredFilesAgent(); _requiredFilesAgent.CurrentCacheManager = cacheManager; _requiredFilesAgent.HardwareKey = _hardwareKey.Key; _requiredFilesAgent.ClientInfoForm = _clientInfoForm; _requiredFilesAgent.OnComplete += new RequiredFilesAgent.OnCompleteDelegate(LayoutFileModified); // Create a thread for the RequiredFiles Agent to run in - but dont start it up yet. _requiredFilesAgentThread = new Thread(new ThreadStart(_requiredFilesAgent.Run)); _requiredFilesAgentThread.Name = "RequiredFilesAgentThread"; // Library Agent _libraryAgent = new LibraryAgent(); _libraryAgent.CurrentCacheManager = _cacheManager; // Create a thread for the Library Agent to run in - but dont start it up yet. _libraryAgentThread = new Thread(new ThreadStart(_libraryAgent.Run)); _libraryAgentThread.Name = "LibraryAgent"; // Log Agent _logAgent = new LogAgent(); _logAgentThread = new Thread(new ThreadStart(_logAgent.Run)); _logAgentThread.Name = "LogAgent"; }