示例#1
0
        private void startInspection(PlanDS plan)
        {
            DataBase db = new DataBase();

            db.removePlan(plan);

            Scanner scanner = new Scanner();

            scanner.start(plan.path);


            while (scanner.getScanStatus())
            {
            }

            string[] result = scanner.getScanResult().Split('\n');

            if (result.Length <= 3)
            {
                return;
            }

            for (int i = 3; i < result.Length - 1; i += 1)
            {
                db.addToFoundViruses(result[i]);
            }
        }
示例#2
0
        public void removePlan(PlanDS plan)
        {
            connection.Open();
            var command = connection.CreateCommand();

            command.CommandText = $"DELETE FROM plans WHERE id = '{plan.id}'";
            command.ExecuteScalar();
            connection.Close();
        }
示例#3
0
        private void checkScheduledInspections(Object source, ElapsedEventArgs e)
        {
            DataBase      db    = new DataBase();
            List <PlanDS> plans = db.getAllPlans();

            foreach (PlanDS plan in plans)
            {
                DateTime now             = DateTime.Now;
                bool     isShouldInspect = PlanDS.getTimeStringFormat(now).Equals(PlanDS.getTimeStringFormat(plan.time));
                if (isShouldInspect)
                {
                    Thread inspectThread = new Thread(new ThreadStart(
                                                          () => this.startInspection(plan)
                                                          ));
                    inspectThread.Start();
                }
            }
        }
示例#4
0
        public bool addPlan(PlanDS plan)
        {
            List <PlanDS> ps = this.getAllPlans();

            foreach (PlanDS p in ps)
            {
                bool haveThisTime = PlanDS.getTimeStringFormat(p.time) == PlanDS.getTimeStringFormat(plan.time);
                bool haveThisPath = p.path == plan.path;
                if (haveThisTime && haveThisPath)
                {
                    return(false);
                }
            }

            connection.Open();
            var command = connection.CreateCommand();

            command.CommandText = $"insert into plans(path, time) values(\"{plan.path}\", \"{PlanDS.getTimeStringFormat(plan.time)}\")";
            command.ExecuteScalar();
            connection.Close();
            return(true);
        }
示例#5
0
        public List <PlanDS> getAllPlans()
        {
            connection.Open();
            List <PlanDS> plans   = new List <PlanDS>();
            var           command = connection.CreateCommand();

            command.CommandText = $"SELECT * FROM plans";

            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    PlanDS plan = new PlanDS(
                        reader.GetString(1),
                        PlanDS.getTimeFromStringFormat(reader.GetString(2)),
                        Int32.Parse(reader.GetString(0))
                        );
                    plans.Add(plan);
                }
            }
            connection.Close();
            return(plans);
        }
示例#6
0
 public System.Threading.Tasks.Task removePlanAsync(ServiceDll.PlanDS plan)
 {
     return(base.Channel.removePlanAsync(plan));
 }
示例#7
0
 public void removePlan(ServiceDll.PlanDS plan)
 {
     base.Channel.removePlan(plan);
 }
示例#8
0
 public System.Threading.Tasks.Task <bool> addPlanAsync(ServiceDll.PlanDS plan)
 {
     return(base.Channel.addPlanAsync(plan));
 }
示例#9
0
 public bool addPlan(ServiceDll.PlanDS plan)
 {
     return(base.Channel.addPlan(plan));
 }
示例#10
0
 public bool addPlan(PlanDS plan)
 {
     return(Service.database.addPlan(plan));
 }
示例#11
0
 public void removePlan(PlanDS plan)
 {
     Service.database.removePlan(plan);
 }