Esempio n. 1
0
        public IAgentAdapter CreateAgent(AgentModel agentModel)
        {
            if (agentModel == null)
            {
                return(null);
            }

            try
            {
                Assembly assembly  = Assembly.LoadFile(PATH + agentModel.Name + "\\" + agentModel.DLLFile);
                Type     agentType = assembly.GetType(agentModel.FullClassName);

                IAgentAdapter agent = (IAgentAdapter)Activator.CreateInstance(agentType);
                return(agent);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Esempio n. 2
0
        private void StartAgent(AgentModel agentModel)
        {
            Task.Factory.StartNew(() =>
            {
                IAgentAdapter agent = AgentsFactory.Instance.CreateAgent(agentModel);

                if (agent != null)
                {
                    string lastReference = agent.Execute(agentModel.MaxRequestPerDay, agentModel.Rating, (string)agentModel.LastReference, agentModel.Name);

                    // Terminou e actualiza dados
                    agentModel.LastExecutionDate = DateTime.Now;
                    agentModel.LastReference     = lastReference;
                    new AgentService().UpdateAgent(agentModel);

                    // Notify
                    NoticeService.Instance.Notify("Agent " + agentModel.Name + " ended!");
                    NoticeService.Instance.Notify("Next Parse: " + DateTime.Now.AddHours(agentModel.Periodicity).ToString());
                }
            });
        }