static async Task Subscribe() { var orleans = OrleansManagementGrainFactory.GetGrain(0); var hosts = await orleans.GetHosts(true); foreach (var silo in hosts) { var address = silo.Key; var status = silo.Value; if (status != SiloStatus.Active) { continue; } var hub = HubGateway.GetHub(address.Endpoint); try { await hub.Subscribe(proxy); } catch (AggregateException e) { if (IsAlreadySubscribed(e)) { continue; } throw; } } }
// GET: Sets public async Task <ActionResult> Index() { await HubGateway.GetInstance().SendNormalMessage(user.Email, "Get Set operation."); var sets = db.Sets.Include(s => s.AspNetUser).Where(o => o.AspNetUser.Id.ToLower().CompareTo(user.Id.ToLower()) == 0); return(View(await sets.ToListAsync())); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); HubGateway.GetInstance().SourceID = "MVC WebAPP"; }
// GET: Exercises public async Task <ActionResult> Index() { await HubGateway.GetInstance().SendNormalMessage(user.Email, "Get Exercise operation."); var exercises = db.Exercises.Include(e => e.Set).Where(o => o.Set.UserId.ToLower().CompareTo(user.Id.ToLower()) == 0); return(View(await exercises.ToListAsync())); }
void On(Publish x) { var notifications = x.Events .Select(e => new Notification(e, DateTime.Now, HubGateway.LocalHubId())) .ToArray(); observers.Notify(notifications); }
public async Task <ActionResult> DeleteConfirmed(long id) { await HubGateway.GetInstance().SendNormalMessage(user.Email, "Delete Set operation."); await HubGateway.GetInstance().IsDataUpdateRequiredForMobileClient(user.Email, true, "Client Mobile Application needs to update UI with new data from server."); Set set = await db.Sets.FindAsync(id); db.Sets.Remove(set); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <IHttpActionResult> PostExerciseRecord(ExerciseRecord exerciseRecord) { await HubGateway.GetInstance().IsDataUpdateRequiredForWeb(user.Email, true, "Create exercise record operation"); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.ExerciseRecords.Add(exerciseRecord); await db.SaveChangesAsync(); return(CreatedAtRoute("DefaultApi", new { id = exerciseRecord.Id }, exerciseRecord)); }
// GET: Sets/Details/5 public async Task <ActionResult> Details(long?id) { await HubGateway.GetInstance().SendNormalMessage(user.Email, "Get Set operation."); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Set set = await db.Sets.FindAsync(id); if (set == null) { return(HttpNotFound()); } return(View(set)); }
public async Task <ActionResult> Edit([Bind(Include = "Id,Name,UserId")] Set set) { await HubGateway.GetInstance().SendNormalMessage(user.Email, "Update Set operation."); await HubGateway.GetInstance().IsDataUpdateRequiredForMobileClient(user.Email, true, "Client Mobile Application needs to update UI with new data from server."); if (ModelState.IsValid) { db.Entry(set).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.UserId = new SelectList(db.AspNetUsers, "Id", "Email", set.UserId); return(View(set)); }
public async Task <ActionResult> Edit([Bind(Include = "Id,Name,Target,SetId")] Exercise exercise) { await HubGateway.GetInstance().SendNormalMessage(user.Email, "Update Exercise operation."); await HubGateway.GetInstance().IsDataUpdateRequiredForMobileClient(user.Email, true, "Client Mobile Application needs to update UI with new data from server."); if (ModelState.IsValid) { db.Entry(exercise).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.SetId = new SelectList(db.Sets.Where(o => o.AspNetUser.Id.ToLower().CompareTo(user.Id.ToLower()) == 0), "Id", "Name", exercise.SetId); return(View(exercise)); }
// GET: Sets/Edit/5 public async Task <ActionResult> Edit(long?id) { await HubGateway.GetInstance().SendNormalMessage(user.Email, "Get Set operation."); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Set set = await db.Sets.FindAsync(id); if (set == null) { return(HttpNotFound()); } ViewBag.UserId = new SelectList(db.AspNetUsers, "Id", "Email", set.UserId); return(View(set)); }
public async Task <IHttpActionResult> DeleteExerciseRecord(long id) { await HubGateway.GetInstance().IsDataUpdateRequiredForWeb(user.Email, true, "Delete exercise record operation"); ExerciseRecord exerciseRecord = await db.ExerciseRecords.FindAsync(id); if (exerciseRecord.Exercise.Set.AspNetUser.Id.ToLower().CompareTo(user.Id.ToLower()) != 0) { exerciseRecord = null; } if (exerciseRecord == null) { return(NotFound()); } db.ExerciseRecords.Remove(exerciseRecord); await db.SaveChangesAsync(); return(Ok(exerciseRecord)); }
static async Task Subscribe() { var orleans = ManagementGrainFactory.GetGrain(0); var hosts = await orleans.GetHosts(true); foreach (var silo in hosts) { var address = silo.Key; var status = silo.Value; if (status != SiloStatus.Active) { continue; } var id = HubGateway.HubId(address.Endpoint); var hub = MvcApplication.System.ActorOf <Hub>(id); await hub.Tell(new Subscribe { Observer = observer }); } }
static async Task Subscribe() { var orleans = MvcApplication.System.Client.GetGrain <IManagementGrain>(0); var hosts = await orleans.GetHosts(true); foreach (var silo in hosts) { var address = silo.Key; var status = silo.Value; if (status != SiloStatus.Active) { continue; } var id = HubGateway.HubId(address.Endpoint); var path = ActorPath.From("Hub", id); var hub = MvcApplication.System.ActorOf(path); await hub.Tell(new SubscribeHub { Observer = notifications.Ref }); } }
public async Task <IHttpActionResult> PutExerciseRecord(long id, ExerciseRecord exerciseRecord) { await HubGateway.GetInstance().IsDataUpdateRequiredForWeb(user.Email, true, "Update exercise record operation"); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != exerciseRecord.Id) { return(BadRequest()); } if (db.Entry(exerciseRecord).Entity.Exercise.Set.AspNetUser.Id.ToLower().CompareTo(user.Id.ToLower()) != 0) { return(NotFound()); } db.Entry(exerciseRecord).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ExerciseRecordExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <ActionResult> Create([Bind(Include = "Id,Name,UserId")] Set set) { await HubGateway.GetInstance().SendNormalMessage(user.Email, "Create Set operation."); await HubGateway.GetInstance().IsDataUpdateRequiredForMobileClient(user.Email, true, "Client Mobile Application needs to update UI with new data from server."); if (ModelState.IsValid) { db.Sets.Add(set); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } if (!User.IsInRole("Admin")) { ViewBag.UserId = new SelectList(db.AspNetUsers.Where(o => o.Id.ToLower().CompareTo(user.Id.ToLower()) == 0), "Id", "Email", set.UserId); } else { ViewBag.UserId = new SelectList(db.AspNetUsers, "Id", "Email", set.UserId); } return(View(set)); }