public RunModule(IHamstringData db, Models models) { this.RequiresAuthentication(); Post["/run"] = p => { var member = Context.CurrentUser.ToMember(db); try { var runModel = this.Bind<RunModel>(); var run = new Run { Id = Guid.NewGuid(), Duration = runModel.Time, MemberId = member.Id, RouteId = runModel.Where, ScheduledAt = runModel.When }; db.Runs.Add(run); db.SaveChanges(); return Response.AsJson(new { id = run.Id }); } catch (Exception ex) { return Response.AsJson( new { error = ex.Message }, HttpStatusCode.InternalServerError); } }; Get["/run/{id}"] = p => { var member = Context.CurrentUser.ToMember(db); Guid? id = p.id; if (id == null) return HttpStatusCode.NotFound; var run = db.Runs .SingleOrDefault(r => r.Id == id && r.MemberId == member.Id); if (run == null) return HttpStatusCode.NotFound; dynamic model = models.RunModel(member, id.Value).Create(); return Response.AsJson((Object)model); }; }
public RunModelFactory(IHamstringData db, Member member, Guid runId) { _db = db; _member = member; _runId = runId; }
public static Member ToMember(this IUserIdentity @this, IHamstringData db) { return db.Members.Single(m => m.Handle == @this.UserName); }
public PortalModelFactory(IHamstringData db, Member member) { _db = db; _member = member; }
public MainModelFactory(IHamstringData db, IRaceServiceProxy proxy) { _db = db; _proxy = proxy; }
public Models(IHamstringData db, IRaceServiceProxy proxy) { _db = db; _proxy = proxy; }