private AppSettings() { JavaScriptSerializer js = new JavaScriptSerializer(); using (WSClientModelEntities db = new WSClientModelEntities()) { foreach (var pair in db.Settings.ToList()) { Values[pair.Key] = pair.Value; } } }
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); } } }
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(); } } }
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); }