예제 #1
0
        public override bool Start()
        {
            try
            {
                OnStarted();

                using (Context = CreatContext())
                {
                    Result = base.Run();

                    OnCompleted(Result.Details.Result, Result.Details.Message);

                    return(Result.Details.Result != ActionExecutionResult.Error);
                }
            }
            catch (UserException exc)
            {
                OnCompleted(ActionExecutionResult.Error, exc.Message);
            }
            catch (Exception exc)
            {
                OnCompleted(ActionExecutionResult.Error, this.Context.Localizer["Unexptected error. See logs"]);
            }
            return(false);
        }
예제 #2
0
        public PartialViewResult GetStatistics(int id)
        {
            var result = new ModuleTaskResult <AntigateTaskResult>();
            var task   = _runtimeQueue[id] as ProjectModuleTask <string, AntigateTaskResult>;

            if (task != null)
            {
                result = task.Result;
            }
            return(PartialView("_Statistics", new ModuleResultViewModel <AntigateTaskResult>(id, result)));
        }
예제 #3
0
        public PartialViewResult GetStatistics(int id)
        {
            var result = new ModuleTaskResult <NotifResult>();
            var task   = _runtimeQueue[id] as ProjectModuleTask <NotifMessage, NotifResult>;

            if (task != null)
            {
                var modul = _moduleRegistry.OpenModule <EmailNotifModule>(_context, EmailNotifModule.ModuleCode, task.ModuleId);
                result         = task.Result;
                result.Details = modul.GetDetails(task.Result.Details.Id);
            }
            return(PartialView("_Statistics", new ModuleResultViewModel <NotifResult>(id, result)));
        }
예제 #4
0
        public PartialViewResult GetStatistics(int id)
        {
            var result     = new ModuleTaskResult <List <SerpWebPage> >();
            var yandexTask = _runtimeQueue[id] as ProjectModuleTask <string, List <SerpWebPage> >;

            if (yandexTask != null)
            {
                var modul = _modulRegistry.OpenModule <YandexDirectModule>(_context, YandexDirectModule.ModuleCode, yandexTask.ModuleId);

                result         = yandexTask.Result;
                result.Details = modul.GetDetails(yandexTask.Result.Details.Id);
            }
            return(PartialView("_Statistics", new ModuleResultViewModel <List <SerpWebPage> >(id, result)));
        }
예제 #5
0
        public PartialViewResult GetStatistics(int id)
        {
            var result = new ModuleTaskResult <string>();
            var task   = _runtimeQueue[id] as HttpProviderTask;

            if (task != null)
            {
                var modul = _modulRegistry.OpenModule <HttpProviderModule>(_context, HttpProviderModule.ModuleCode, id);

                result         = task.Result;
                result.Details = modul.GetDetails(result.Details.Id);
            }

            return(PartialView("_Statistics", new ModuleResultViewModel <string>(id, result)));
        }
예제 #6
0
        public override bool LoadResults()
        {
            Results = new List <ModuleTaskResult <LexModuleData> >();
            foreach (var moduleResult in Context.Repository.GetProjectModuleResults(Id))
            {
                ModuleTaskResult <LexModuleData> lexModuleResult = new ModuleTaskResult <LexModuleData>();
                lexModuleResult.Id      = moduleResult.Id;
                lexModuleResult.Details = moduleResult.Stats;
                lexModuleResult.Data    = new LexModuleData()
                {
                    Stats = Context.Repository.GetLexModuleStats(Configuration.Id).FirstOrDefault()
                };
                Results.Add(lexModuleResult);
            }

            return(true);
        }
예제 #7
0
        public override bool LoadResults()
        {
            Results = new List <ModuleTaskResult <SerpModuleData> >();

            foreach (var modulResult in Context.Repository.GetProjectModuleResults(Id))
            {
                ModuleTaskResult <SerpModuleData> serpModuleResult = new ModuleTaskResult <SerpModuleData>();
                serpModuleResult.Id      = modulResult.Id;
                serpModuleResult.Details = modulResult.Stats;
                serpModuleResult.Data    = new SerpModuleData()
                {
                    RequestStats = new List <SerpModuleRequestStats>(Context.Repository.GetSerpModuleRequestStats(modulResult.Id))
                };
                Results.Add(serpModuleResult);
            }
            return(true);
        }
예제 #8
0
        public override bool SaveResult(ModuleTaskResult <SerpModuleData> result)
        {
            ProjectModuleResult moduleResult = new ProjectModuleResult();

            moduleResult.Stats           = result.Details;
            moduleResult.ProjectModuleId = Id;

            Context.Repository.AddModuleResults(moduleResult);

            if (result.Data != null)
            {
                foreach (var item in result.Data.RequestStats)
                {
                    item.ProjectModuleResultId = moduleResult.Id;
                    Context.Repository.AddSerpModuleRequestStats(item);
                }
            }
            return(true);
        }
예제 #9
0
        public PartialViewResult GetResult(int modulId)
        {
            var modul = _modulRegistry.OpenModule <YandexXMLModule>(_context, YandexXMLModule.ModuleCode, modulId);

            var result     = new ModuleTaskResult <List <SerpWebPage> >();
            var yandexTask = _runtimeQueue[modulId] as ProjectModuleTask <string, List <SerpWebPage> >;

            if (yandexTask != null)
            {
                result = yandexTask.Result;
            }

            if (result != null)
            {
                return(PartialView("_ModuleResultDetails", result.Details));
            }
            else
            {
                return(PartialView("_EmptyModuleResult"));
            }
        }
예제 #10
0
        public PartialViewResult GetResult(int modulId)
        {
            var modul = _modulRegistry.OpenModule <HttpProviderModule>(_context, HttpProviderModule.ModuleCode, modulId);

            var result = new ModuleTaskResult <string>();
            var task   = _runtimeQueue[modulId] as HttpProviderTask;

            if (task != null)
            {
                result = task.Result;
            }

            if (result != null)
            {
                return(PartialView("_ModuleResultDetails", result.Details));
            }
            else
            {
                return(PartialView("_EmptyModuleResult"));
            }
        }
예제 #11
0
        public PartialViewResult GetResult(int modulId)
        {
            var modul = _moduleRegistry.OpenModule <AntigateModule>(_context, AntigateModule.ModuleCode, modulId);

            var result = new ModuleTaskResult <AntigateTaskResult>();
            var task   = _runtimeQueue[modulId] as ProjectModuleTask <string, AntigateTaskResult>;

            if (task != null)
            {
                result = task.Result;
            }

            if (result != null)
            {
                return(PartialView("_ModuleResultDetails", result.Details));
            }
            else
            {
                return(PartialView("_EmptyModuleResult"));
            }
        }
예제 #12
0
        public PartialViewResult GetResult(int modulId)
        {
            var modul = _moduleRegistry.OpenModule <EmailNotifModule>(_context, EmailNotifModule.ModuleCode, modulId);

            var result = new ModuleTaskResult <NotifResult>();
            var task   = _runtimeQueue[modulId] as ProjectModuleTask <NotifMessage, NotifResult>;

            if (task != null)
            {
                result         = task.Result;
                result.Details = modul.GetDetails(task.Result.Details.Id);
            }

            if (result != null)
            {
                return(PartialView("_ModuleResultDetails", result.Details));
            }
            else
            {
                return(PartialView("_EmptyModuleResult"));
            }
        }
예제 #13
0
        public override bool SaveResult(ModuleTaskResult <LexModuleData> result)
        {
            Context.Repository.DropLexModuleStats(Configuration.Id);
            Context.Repository.ClearModuleResults(Id);

            ProjectModuleResult moduleResult = new ProjectModuleResult();

            moduleResult.Stats           = result.Details;
            moduleResult.ProjectModuleId = Id;

            Context.Repository.AddModuleResults(moduleResult);

            LexModuleStats resultData = new LexModuleStats()
            {
                LexModuleConfigId = Configuration.Id,
                SerpPages         = result.Data?.Stats?.SerpPages,
                Words             = result.Data?.Stats?.Words,
                FrequencyData     = result.Data?.Stats?.FrequencyData
            };

            Context.Repository.AddLexModuleStats(resultData);
            return(true);
        }
예제 #14
0
 public ModuleResultViewModel(int moduleId, ModuleTaskResult <TData> result)
 {
     this.ModuleId = moduleId;
     this.Result   = result;
 }
예제 #15
0
 public NotifResult Run(ModuleTaskResult <LexModuleData> config)
 {
     return(SendMessage($"Module {1} was completed", config.Details.Message));
 }