コード例 #1
0
        private AppSettings()
        {
            JavaScriptSerializer js = new JavaScriptSerializer();

            using (WSClientModelEntities db = new WSClientModelEntities()) {
                foreach (var pair in db.Settings.ToList())
                {
                    Values[pair.Key] = pair.Value;
                }
            }
        }
コード例 #2
0
        public static void Update()
        {
            using (WSClientModelEntities db = new WSClientModelEntities()) {
                var list = Jobs.ToList();

                foreach (var job in db.WSJobs.Where(Queued()).Where(x => !list.Contains(x.JobID)).Select(x => x.JobID).ToList())
                {
                    Jobs.Add(job);
                }
            }
        }
コード例 #3
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            using (WSClientModelEntities db = new WSClientModelEntities()) {
                if (!db.WSUsers.Any())
                {
                    var user = new WSUser {
                        EmailAddress = "*****@*****.**", UserID = "*****@*****.**", PasswordHash = "change-me"
                    };
                    db.WSUsers.AddObject(user);
                    db.SaveChanges();
                }
            }
        }
コード例 #4
0
        private static void FetchResult(ControllerContext context)
        {
            TimeSpan ts = TimeSpan.FromSeconds(10);

            var User     = context.HttpContext.User;
            var Response = context.HttpContext.Response;

            string username = User.Identity.Name;

            long jobID;

            AtomJavaScriptSerializer js = new AtomJavaScriptSerializer(null);

            Response.Output.WriteLine("{ 'JobID': 0, 'Message': 'Welcome' }");
            Response.Flush();

            Update();

            do
            {
                if (!Response.IsClientConnected)
                {
                    break;
                }


                if (!Jobs.TryTake(out jobID, ts))
                {
                    Response.Output.WriteLine("{ 'JobID': 0, 'Message':'None' }");
                    Response.Flush();
                    Update();
                    continue;
                }

                using (WSClientModelEntities db = new WSClientModelEntities())
                {
                    using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromSeconds(60)))
                    {
                        DateTime utcNow = DateTime.UtcNow;

                        WSJob job = db.WSJobs.Where(Queued()).FirstOrDefault(x => x.JobID == jobID);
                        if (job == null)
                        {
                            continue;
                        }

                        job.AssigneeID = username;
                        job.JobStatus  = "Assigned";
                        job.EndTime    = DateTime.UtcNow;

                        var s = js.Serialize(new {
                            job.JobID,
                            job.JobStatus,
                            job.WSDLUrl,
                            job.IsDemo,
                            job.OutputType,
                            job.OutputTarget,
                            job.OutputPrefix,
                            job.OutputPackage
                        });



                        Response.Output.WriteLine(s);
                        Response.Flush();

                        db.SaveChanges();

                        scope.Complete();
                    }
                }
            } while (true);
        }