Example #1
0
        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());
                }
            }
        }
Example #3
0
        /// <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));
            }
        }
Example #4
0
        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));
            }
        }
Example #6
0
        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);
        }
Example #7
0
        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));
        }
Example #8
0
        /// <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";
        }
Example #9
0
        /// <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";
        }