public IActionResult Update(long id, [FromBody] WorkerFunction item)
        {
            if (item == null || item.Id != id)
            {
                return(BadRequest());
            }

            var workerFunction = _context.WorkerFunctions.FirstOrDefault(t => t.Id == id);

            if (workerFunction == null)
            {
                return(NotFound());
            }

            workerFunction.WorkerId             = item.WorkerId;
            workerFunction.FunctionId           = item.FunctionId;
            workerFunction.Comment              = item.Comment;
            workerFunction.AuthorId             = item.AuthorId;
            workerFunction.DateOfRecordCreation = item.DateOfRecordCreation;
            workerFunction.DateOfRecordRemoval  = item.DateOfRecordRemoval;

            _context.WorkerFunctions.Update(workerFunction);
            _context.SaveChanges();
            return(new NoContentResult());
        }
        protected internal override CommandExecutorStat ExecuteCore(
            Stream inputStream,
            Stream outputStream,
            SqlCommand[] commands)
        {
            bool useDataFrameCommandExecutor = false;
            bool useArrowSqlCommandExecutor  = false;

            foreach (SqlCommand command in commands)
            {
                WorkerFunction workerFunc = command.WorkerFunction;
                if (workerFunc is DataFrameWorkerFunction dataFrameWorkedFunc)
                {
                    useDataFrameCommandExecutor = true;
                }
                else
                {
                    useArrowSqlCommandExecutor = true;
                }
            }
            if (useDataFrameCommandExecutor && useArrowSqlCommandExecutor)
            {
                // Mixed mode. Not supported
                throw new NotSupportedException("Combined Arrow and DataFrame style commands are not supported");
            }
            if (useDataFrameCommandExecutor)
            {
                return(ExecuteDataFrameSqlCommand(inputStream, outputStream, commands));
            }
            return(ExecuteArrowSqlCommand(inputStream, outputStream, commands));
        }
        private WorkerLoginResult Login(string workerBadgeCode, string stationName, WorkerFunction workerFunction)
        {
            WorkerLoginResult ret;

            if (!string.IsNullOrEmpty(workerBadgeCode))
            {
                try
                {
                    CurrentWorker.LoadFromDbByBadgeCode(workerBadgeCode);
                    ret = CurrentWorker.IsValid ? WorkerLoginResult.Ok : WorkerLoginResult.NotFound;
                    if (ret == WorkerLoginResult.Ok)
                    {
                        ret = CurrentWorker.IsEnabledOnStation(stationName) ? WorkerLoginResult.Ok : WorkerLoginResult.NotEnabled;
                    }
                    if (ret == WorkerLoginResult.Ok)
                    {
                        if (workerFunction != WorkerFunction.None)
                        {
                            ret = CurrentWorker.HasPermissionTo(workerFunction) ? WorkerLoginResult.Ok : WorkerLoginResult.NotEnabled;
                        }
                    }
                }
                catch (Exception ex)
                {
                    ExceptionMessage = ex.Message;
                    ret = WorkerLoginResult.Failed;
                }
            }
            else
            {
                ret = WorkerLoginResult.Failed;
            }
            return(ret);
        }
Exemple #4
0
 public void StartWorker(WorkerFunction function, object parameter)
 {
     if (function == null)
     {
         return;
     }
     mFunction = function;
     if (!backgroundWorker1.IsBusy)
     {
         backgroundWorker1.RunWorkerAsync(parameter);
     }
 }
Exemple #5
0
        public void Run(CrawlerWorkerArgs args)
        {
            _parent   = args.Parent;
            _callback = args.Function;
            if (_callback == null)
            {
                throw new ArgumentException("No callback was provided so no work would be done.");
            }

            _robots        = args.Robots;
            _bannedExts    = args.BannedExtensions;
            _visited       = args.Visited;
            _visitedLock   = args.VisitedLock;
            _sites         = args.Sites;
            _respectRobots = args.RespectRobots;
            _userAgent     = args.UserAgent;
            _maxDepth      = args.MaxDepth;
            _id            = args.ID;

            _web           = new HtmlWeb();
            _web.UserAgent = _userAgent;

            while (true)
            {
                Site next = null;
                if (!_sites.GetNextAvailableWorker(out next))
                {
                    Interlocked.Increment(ref _parent.PausedWorkers);
                    if (_sites.Empty() && _parent.PausedWorkers == _parent.TotalWorkers)
                    {
                        return;
                    }

                    Thread.Sleep(500);
                    Interlocked.Decrement(ref _parent.PausedWorkers);

                    continue;
                }

                String url = next.Url;


                _visitedLock.EnterReadLock();
                bool visited = _visited.Contains(url);
                _visitedLock.ExitReadLock();

                if (next.Depth < _maxDepth && !visited)
                {
                    VisitOneSite(next);
                }
            }
        }
Exemple #6
0
        public WorkerLoginResult Login(string stationName, string badgeCode, WorkerFunction workerFunction, string connectionString)
        {
            LoadFromDbByBadgeCode(badgeCode);
            WorkerAuthenticator wa  = new WorkerAuthenticator(AuthenticationMode.BadgeCode, connectionString);
            WorkerLoginResult   ret = wa.Login(string.Empty, string.Empty, badgeCode, stationName, workerFunction);

            if (ret == WorkerLoginResult.Ok)
            {
                LoadFromDbByBadgeCode(badgeCode);
                UpdateLoginDateOnStation(Id, stationName, DateTime.Now);
            }
            return(ret);
        }
        public IActionResult Post([FromBody] WorkerFunction item)
        {
            if (item == null)
            {
                return(BadRequest());
            }

            item.Id = _context.WorkerFunctions.Count() + 1;
            _context.WorkerFunctions.Add(item);
            _context.SaveChanges();

            return(CreatedAtRoute("GetWorkerFunction", new { id = item.Id }, item));
        }
Exemple #8
0
        protected WorkerFunction FindFunction(string method, int parameters)
        {
            WorkerFunction lFunction = null;

            if (Dictionary.TryGetValue(method, out lFunction))
            {
                return(lFunction);
            }

            if (Dictionary.TryGetValue(method + ":" + parameters.ToString(), out lFunction))
            {
                return(lFunction);
            }

            return(null);
        }
Exemple #9
0
        public static bool GetFunctionPermission(string loginName, WorkerFunction workerFunction)
        {
            bool ret = false;

            try
            {
                using (WorkersDataSetTableAdapters.QueriesTableAdapter q = new WorkersDataSetTableAdapters.QueriesTableAdapter())
                {
                    ret = q.GetWorkerPermission(loginName, workerFunction.ToString()) ?? false;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ExceptionBuilder.ComposeMessage(
                                        MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ex,
                                        new string[] { loginName, workerFunction.ToString() }));
            }
            return(ret);
        }
Exemple #10
0
        public static bool Execute(string command, string id, List <string> parameters, GoBoard goBoard, SearchEngine searchEngine, Worker.SendResponse proxy)
        {
            WorkerFunction lFunction = GetFunction(command, parameters.Count);

            if (lFunction == null)
            {
                return(false);
            }

            try
            {
                lFunction(goBoard, searchEngine, parameters, id, proxy);
                return(true);
            }
            catch (Exception e)
            {
                Console.Error.Write("ERROR: " + e.ToString());
                Respond(proxy, id, false, command, true);                 // async response
                return(false);
            }
        }
Exemple #11
0
 public void StartWorker(WorkerFunction function)
 {
     StartWorker(function, null);
 }
Exemple #12
0
 public WorkerLoginResult Login(string stationName, string badgeCode, WorkerFunction workerFunction)
 {
     return(Login(stationName, badgeCode, workerFunction, Properties.Settings.Default.TraMaConnectionString));
 }
Exemple #13
0
 protected void Add(string functionName, WorkerFunction WorkerFunction, int parameters)
 {
     Dictionary.Add(functionName + ":" + parameters.ToString(), WorkerFunction);
 }
Exemple #14
0
 protected void Add(string functionName, WorkerFunction WorkerFunction)
 {
     Dictionary.Add(functionName, WorkerFunction);
 }
Exemple #15
0
        public WorkerLoginResult Login(string stationName, string loginName, string password, WorkerFunction workerFunction, string connectionString)
        {
            LoadFromDbByLoginName(loginName);
            WorkerAuthenticator wa  = new WorkerAuthenticator(AuthenticationMode.UserPassword, connectionString);
            WorkerLoginResult   ret = wa.Login(loginName, password, string.Empty, stationName, workerFunction);

            if (ret == WorkerLoginResult.Ok)
            {
                UpdateLoginDateOnStation(Id, stationName, DateTime.Now);
            }
            return(ret);
        }
Exemple #16
0
 protected void Add(string functionName, WorkerFunction WorkerFunction, int parameters)
 {
     Dictionary.Add(functionName + ":" + parameters.ToString(), WorkerFunction);
 }
        public WorkerLoginResult Login(string loginName, string password, string badgeCode, string stationName, WorkerFunction workerFunction)
        {
            WorkerLoginResult ret = WorkerLoginResult.Failed;

            try
            {
                switch (AuthenticationMode)
                {
                case AuthenticationMode.Any:
                    ret = Login(loginName, password, stationName, workerFunction);
                    if (ret != WorkerLoginResult.Ok)
                    {
                        ret = Login(badgeCode, stationName, workerFunction);
                    }
                    break;

                case AuthenticationMode.UserPassword:
                    ret = Login(loginName, password, stationName, workerFunction);
                    break;

                case AuthenticationMode.BadgeCode:
                    ret = Login(badgeCode, stationName, workerFunction);
                    break;
                }
            }
            catch (Exception ex)
            {
                ExceptionMessage = ex.Message;
                ret = WorkerLoginResult.Failed;
            }
            return(ret);
        }
 public void StartWorker(WorkerFunction function, object parameter)
 {
     if (function == null) return;
     mFunction = function;
     if(!backgroundWorker1.IsBusy) backgroundWorker1.RunWorkerAsync(parameter);
 }
Exemple #19
0
 public void StartWorker(WorkerFunction function, object parameter)
 {
     progBar.StartWorker(function, parameter);
     //Application.Run(this);
     this.ShowDialog();
 }
Exemple #20
0
 protected void Add(string functionName, WorkerFunction WorkerFunction)
 {
     Dictionary.Add(functionName, WorkerFunction);
 }
Exemple #21
0
 public bool HasPermissionTo(WorkerFunction workerFunction)
 {
     return(GetFunctionPermission(LoginName, workerFunction));
 }
Exemple #22
0
 public void StartWorker(WorkerFunction function)
 {
     StartWorker(function, null);
 }
Exemple #23
0
 public WorkerLoginResult Login(string stationName, string loginName, string password, WorkerFunction workerFunction)
 {
     return(Login(stationName, loginName, password, workerFunction, Properties.Settings.Default.TraMaConnectionString));
 }
        private WorkerLoginResult Login(string workerLoginName, string workerPassword, string stationName, WorkerFunction workerFunction)
        {
            WorkerLoginResult ret;

            if (!string.IsNullOrEmpty(workerLoginName))
            {
                try
                {
                    CurrentWorker.LoadFromDbByLoginName(workerLoginName);
                    PasswordManager pm = new PasswordManager(CryptoKey);
                    ret = pm.CheckPassword(CurrentWorker.Password, workerPassword) ? WorkerLoginResult.Ok : WorkerLoginResult.Failed;
                    if (ret == WorkerLoginResult.Ok)
                    {
                        ret = CurrentWorker.IsEnabledOnStation(stationName) ? WorkerLoginResult.Ok : WorkerLoginResult.NotEnabled;
                    }
                    if (ret == WorkerLoginResult.Ok)
                    {
                        if (workerFunction != WorkerFunction.None)
                        {
                            ret = CurrentWorker.HasPermissionTo(workerFunction) ? WorkerLoginResult.Ok : WorkerLoginResult.NotEnabled;
                        }
                    }
                }
                catch (Exception ex)
                {
                    ExceptionMessage = ex.Message;
                    ret = WorkerLoginResult.Failed;
                }
            }
            else
            {
                ret = WorkerLoginResult.Failed;
            }
            return(ret);
        }
Exemple #25
0
 public void StartWorker(WorkerFunction function, object parameter)
 {
     progBar.StartWorker(function, parameter);
     //Application.Run(this);
     this.ShowDialog();
 }