Beispiel #1
0
        private static void Crud()
        {
            var petaPoco = new PetaPoco.Database("Chinook");

            var customer = new Customer {
                FirstName = "Ian", LastName = "Russell", Email = "*****@*****.**"
            };

            petaPoco.Insert(customer);

            var id = customer.CustomerId;

            customer = petaPoco.Single <Customer>(id);

            ObjectDumper.Write(customer);

            customer.Country = "United Kingdom";

            petaPoco.Update(customer);

            customer = petaPoco.Single <Customer>(id);

            ObjectDumper.Write(customer);

            petaPoco.Delete <Customer>(id);

            customer = petaPoco.SingleOrDefault <Customer>(id);

            ObjectDumper.Write(customer);
        }
Beispiel #2
0
        private static void Crud()
        {
            var petaPoco = new PetaPoco.Database("Chinook");

            var customer = new Customer { FirstName = "Ian", LastName = "Russell", Email = "*****@*****.**" };

            petaPoco.Insert(customer);

            var id = customer.CustomerId;

            customer = petaPoco.Single<Customer>(id);

            ObjectDumper.Write(customer);

            customer.Country = "United Kingdom";

            petaPoco.Update(customer);

            customer = petaPoco.Single<Customer>(id);

            ObjectDumper.Write(customer);

            petaPoco.Delete<Customer>(id);

            customer = petaPoco.SingleOrDefault<Customer>(id);

            ObjectDumper.Write(customer);
        }
Beispiel #3
0
        public ActionResult details(int id)
        {
            var dataContext = new PetaPoco.Database("sqladdress");
            var details     = dataContext.Single <Contacts>("SELECT * FROM contacts WHERE id=@0", id);

            return(View(details));
        }
Beispiel #4
0
        public static void StopAll()
        {
            var db = new PetaPoco.Database("LocalSQLite");

            // stop all running threads\monitors
            foreach (MonitorClass mc in _monitorRunPool)
            {
                // stop the Timer
                if (!mc.DisableTimer())
                {
                    log.WarnFormat("Unable to disable the timer for Monitor ID: {0}", mc.MonitorID);
                }
                // TODO: Does the thread need joining back??

                // change the monitor state
                try
                {
                    Model.Monitor monitor = db.Single <Model.Monitor>("Select * from Monitor WHERE MonitorID = @monitorID", new { monitorID = mc.MonitorID });
                    monitor.State = Model.MonitorState.Idle.ToString();
                    db.Update(monitor);
                }
                catch (Exception ex)
                {
                    log.WarnFormat("Unable to set the monitor state to Idle for monitor ID: {0}", mc.MonitorID);
                    log.ErrorFormat(ex.ToString());
                }
            }
        }
Beispiel #5
0
        public bool DeleteValueItem(int id)
        {
            string msg = "";
            var    it  = db.Single <ValueItem>(id);


            if (it == null)
            {
                throw new Exception("项目不存在!");
            }

            it.IsDelete = true;

            db.Save(it);

            return(true);
        }
Beispiel #6
0
        public RunMonitor()
            : base("/run/monitor")
        {
            this.RequiresAuthentication();
            // TODO: need to change to have run claims
            this.RequiresAnyClaim(new[] { "editMonitor", "admin" });

            var db = new PetaPoco.Database("LocalSQLite");

            Get["/{id}"] = parameters =>
            {
                try
                {
                    int monitorID = (int)parameters.id;

                    Model.Monitor monitor = db.Single <Model.Monitor>("Select * from Monitor WHERE MonitorID = @monitorID", new { monitorID = monitorID });

                    // check the monitor should run
                    if (monitor.State == Model.MonitorState.Running.ToString() && monitor.RunMultiple == 0)
                    {
                        log.InfoFormat("Monitor [{0}] is in a running state - not running a multiple version (initiated from web request)", monitor.MonitorID);
                        return(Response.AsJson(new
                        {
                            success = false,
                            message = "Monitor is already running and is configured not to run multiple versions."
                        }));
                    }

                    // should check id is an int and the state of the monitor
                    //Thread thread = new Thread(App.Monitor.Run(monitor));
                    // maybe change to a task factory or thread pool
                    //http://stackoverflow.com/questions/8014037/c-sharp-call-a-method-in-a-new-thread
                    Thread thread = new Thread(() => App.Monitor.Run(monitor));
                    thread.Start();
                    return(Response.AsJson(new
                    {
                        success = true,
                        message = "Running the monitor"
                    }));;
                }
                catch (Exception ex)
                {
                    // Log error on the server - maybe should have ID in the URL so it can be part of the exception
                    log.WarnFormat("Error whilst trying to run monitor. Exception: {0}", ex.ToString());
                    // TODO: alert?
                    return(Response.AsJson(new
                    {
                        success = false,
                        message = ex.ToString()
                    }));
                }
            };
        }
        public void Handle(AccountCreditedEvent domainEvent)
        {
            // Update the Read database
            Console.WriteLine("Updating account record {0}", domainEvent.Amount.ToString("C"));

            using (var db = new PetaPoco.Database("DemoConnectionString"))
            {
                var account = db.Single <BankAccountReadModel>(domainEvent.Id);
                account.CurrentBalance += domainEvent.Amount;

                db.Update(account);
            }
        }
Beispiel #8
0
        public static void Run(object input)
        {
            var db = new PetaPoco.Database("LocalSQLite");

            // cast the input object
            //Model.Monitor monitor = input as Model.Monitor;

            int monitorID = (int)input;

            Model.Monitor monitor = db.Single <Model.Monitor>("Select * from Monitor WHERE MonitorID = @monitorID", new { monitorID = monitorID });

            Run(monitor);
        }
Beispiel #9
0
        public Job()
            : base("/Job")
        {
            this.RequiresAuthentication();

            // db reference
            var db = new PetaPoco.Database("LocalSQLite");

            // datatable functions
            Get["/dt"] = parameters =>
            {
                var jobs = db.Query <Model.JobView>("select j.JobID, j.MonitorID, m.Name, m.Type, j.StartTime, j.EndTime, j.FinalState, j.Info from Job J, Monitor m WHERE j.MonitorID = m.MonitorID;");

                return(Response.AsJson(new
                {
                    aaData = jobs
                }));
            };
            Get["/dt/{id}"] = parameters =>
            {
                Model.JobView j = db.Single <Model.JobView>("select j.JobID, j.MonitorID, m.Name, m.Type, j.StartTime, j.EndTime, j.FinalState, j.Batch, j.Info from Job J, Monitor m WHERE j.MonitorID = m.MonitorID AND JobID = @JobID", new { JobID = parameters.id });

                return(Response.AsJson(new
                {
                    aaData = j
                }));
            };
            Get["/dt/{type}/{id}"] = parameters =>
            {
                string MonitorType = parameters.type.ToString();

                switch (MonitorType.ToUpper())
                {
                case "EVENTVWR":
                    //TODO: limited to 50 to avoid generating too much data - needs to be paged
                    IEnumerable <Model.Eventvwr> Eventvwrdata = db.Query <Model.Eventvwr>("select * from Eventvwr WHERE JobID = @JobID", new { JobID = parameters.id });
                    return(Response.AsJson(new
                    {
                        aaData = Eventvwrdata
                    }));

                case "IIS":
                    //TODO: limited to 50 to avoid generating too much data - needs to be paged
                    IEnumerable <Model.IIS> IISdata = db.Query <Model.IIS>("select * from IIS WHERE JobID = @JobID limit 50", new { JobID = parameters.id });
                    return(Response.AsJson(new
                    {
                        aaData = IISdata
                    }));

                default:
                    log.WarnFormat("Type ({0}) not supported in Nancy Module for Job", MonitorType);
                    break;
                }

                var jobs = db.Query <Model.JobView>("select j.JobID, j.MonitorID, m.Name, m.Type, j.StartTime, j.EndTime, j.FinalState, j.Info from Job J, Monitor m WHERE j.MonitorID = m.MonitorID AND j.JobId=@id;", new { id = parameters.id });

                return(Response.AsJson(new
                {
                    aaData = jobs
                }));
            };

            Get["/vanilla"] = parameters =>
            {
                var jobs = db.Query <Model.JobView>("select j.JobID, j.MonitorID, m.Name, m.Type, j.StartTime, j.EndTime, j.FinalState, j.Info from Job J, Monitor m WHERE j.MonitorID = m.MonitorID;");

                return(View["Web\\Views\\Job-vanilla.html", new { jobs = jobs }]);
            };

            Get["/"] = parameters =>
            {
                return(View["Web\\Views\\Job.html", baseModel]);
            };

            Get["/{id}"] = parameters =>
            {
                /*
                 * IEnumerable<Model.JobView> jobs = db.Query<Model.JobView>("select j.JobID, j.MonitorID, m.Name, m.Type, j.StartTime, j.EndTime, j.FinalState, j.Info from Job J, Monitor m WHERE j.MonitorID = m.MonitorID AND j.JobId=@id;",new { id = parameters.id });
                 * Model.JobView job = jobs.FirstOrDefault();
                 */
                Model.JobView jobView = db.Single <Model.JobView>("select j.JobID, j.MonitorID, m.Name, m.Type, j.StartTime, j.EndTime, j.FinalState, j.Batch, j.Info from Job J, Monitor m WHERE j.MonitorID = m.MonitorID AND j.JobId=@id;", new { id = parameters.id });
                if (jobView.Batch == 1)
                {
                    baseModel.jobs = jobView;
                    return(View["Web\\Views\\JobBatch.html", baseModel]);
                }
                else
                {
                    // switch on the type of monitor
                    switch (jobView.Type.ToUpper())
                    {
                    case "EVENTVWR":
                        IEnumerable <Model.Eventvwr> Eventvwrdata = db.Query <Model.Eventvwr>("select * from Eventvwr WHERE JobID = @JobID", jobView);
                        baseModel.jobs    = jobView;
                        baseModel.Results = Eventvwrdata;
                        return(View["Web\\Views\\JobEventvwr.html", baseModel]);     // new { jobs = job, Results = Eventvwrdata }];

                    case "IIS":
                        IEnumerable <Model.IIS> IISdata = db.Query <Model.IIS>("select * from IIS WHERE JobID = @JobID", jobView);
                        baseModel.jobs    = jobView;
                        baseModel.Results = IISdata;
                        return(View["Web\\Views\\JobIIS.html", baseModel]);    // new { jobs = job, Results = IISdata }];

                    default:
                        log.WarnFormat("Type ({0}) not supported in Nancy Module for Job", jobView.Type);
                        break;
                    }
                }
                return("ah, didn't expect you to be here!");
            };
        }
        public ValueSet GetValueSetByID(int id)
        {
            var vs = _db.Single <ValueSet>(id);

            return(vs);
        }