public async Task <object> GetFrame(ITicketHolder ticketHolder, IContext context, CancellationToken cancellationToken = default(CancellationToken)) { if (!context.User.Identity.IsAuthenticated) { return(null); } var myState = ticketHolder.GetTicket <UserState>(); // this is our DB poll interval if (myState != null && (DateTime.UtcNow - myState.Created).TotalSeconds < 10) { return(null); } // find useraccount var useraccount = await _userService.FindById(context.User.UserId()); if (useraccount == null) { useraccount = UserAccount.Map(context.User); } if (myState != null && useraccount.CalculateChecksum() == myState.Checksum) { return(null); } ticketHolder.UpdateTicket(new UserState { Created = DateTime.UtcNow, Checksum = useraccount.CalculateChecksum() }); return(UserAccountViewModel.Map(useraccount)); }
public async Task <object> GetFrame(ITicketHolder ticket, IContext context, CancellationToken cancellationToken = default(CancellationToken)) { var myState = ticket.GetTicket <MyState>(); if (myState != null) { if (DateTime.UtcNow < myState.NextRefresh) { return(null); } } int counter = 0; if (myState != null) { counter = myState.CallCount + 1; } ticket.UpdateTicket(new MyState { NextRefresh = DateTime.UtcNow.AddMilliseconds(100), CallCount = counter }); // simulate some work await Task.Delay(2); return(new PingResponse { SampleHeader = (context as CustomContext)?.SampleHeader, CallCount = counter }); }
public Task <object> GetFrame(ITicketHolder ticket, IContext context, CancellationToken cancellationToken = default(CancellationToken)) { var myState = ticket.GetTicket <MyState>(); ticket.UpdateTicket(new { created = DateTime.UtcNow }); return(Task.FromResult((object)new { hello = "world" })); }
public Task <object> GetFrame(ITicketHolder ticket, IContext context, ICitylineWriter writer, CancellationToken cancellationToken = default(CancellationToken)) { var myState = ticket.GetTicket <MyState>(); ticket.UpdateTicket(new { created = DateTime.UtcNow }); return(Task.FromResult(sampleObject)); }
public async Task <object> GetFrame(ITicketHolder ticketHolder, IContext context, CancellationToken cancellationToken = default(CancellationToken)) { if (!context.User.Identity.IsAuthenticated) { return(null); } var myState = ticketHolder.GetTicket <ChatState>(); // this is our DB poll interval if (myState != null && (DateTime.UtcNow - myState.Created).TotalSeconds < 1) { return(null); } // find useraccount var useraccount = await _userService.FindById(context.User.UserId()); // get orders and calculate status var monikers = myState?.Monikers ?? new Dictionary <string, string>(); var update = await _chatService.GetUserUpdate(context.User, monikers); foreach (var key in update.Keys) { if (update[key].Any()) { monikers[key] = update[key].Max(m => m.Moniker); } } ticketHolder.UpdateTicket(new ChatState { Created = DateTime.UtcNow, Monikers = monikers }); var all = update.Keys .SelectMany(key => update[key]) .ToList(); var userIds = all.Select(m => m.UserId).Distinct(); var userAccounts = await _userService.LookupUsers(userIds); var lookup = userAccounts.ToDictionary(m => m.Id, m => m) as IDictionary <string, UserAccount>; return(all .Select(sentence => SentenceViewModel.Map(sentence, lookup)) .ToList()); }
public Task <object> GetFrame(ITicketHolder ticket, IContext context, CancellationToken cancellationToken = default(CancellationToken)) { var myState = ticket.GetTicket <object>(); if (myState != null) { return(Task.FromResult((object)null)); } ticket.UpdateTicket(new {}); return(Task.FromResult((object)new { Version = System.Reflection.Assembly.GetEntryAssembly().GetName().Version, Started = started, ClientStarted = DateTime.UtcNow })); }
public async Task <object> GetFrame(ITicketHolder ticket, IContext context, CancellationToken cancellationToken = default(CancellationToken)) { var myState = ticket.GetTicket <MyState>(); if (myState != null) { if ((DateTime.UtcNow - myState.Created).TotalSeconds < 5) { return(null); } } ticket.UpdateTicket(new MyState()); // simulate some work await Task.Delay(2); return(new { Ping = DateTime.UtcNow }); }
public async Task <object> GetFrame(ITicketHolder ticketHolder, IContext context, CancellationToken cancellationToken = default(CancellationToken)) { if (!context.User.Identity.IsAuthenticated) { return(null); } var myState = ticketHolder.GetTicket <ChannelState>(); // this is our DB poll interval if (myState != null && (DateTime.UtcNow - myState.Created).TotalSeconds < 1) { return(null); } // find useraccount var useraccount = await _userService.FindById(context.User.UserId()); if (!useraccount.Channels.Contains("global")) { useraccount.Channels.Add("global"); } string checksum; using (var md5 = MD5.Create()) checksum = new Guid(md5.ComputeHash(Encoding.UTF8.GetBytes(string.Join(", ", useraccount.Channels)))).ToString("N"); if (myState != null && myState.Checksum == checksum) { return(null); } ticketHolder.UpdateTicket(new ChannelState { Created = DateTime.UtcNow, Checksum = checksum }); return(await _channelService.GetChannels(context.User, useraccount.Channels)); }
public async Task <object> GetFrame(ITicketHolder ticket, IContext context, CancellationToken cancellationToken = default(CancellationToken)) { var myState = ticket.GetTicket <MyState>(); if (myState != null) { if (DateTime.UtcNow < myState.NextRefresh) { return(null); } } var seconds = random.Next(0, 30); ticket.UpdateTicket(new MyState { NextRefresh = DateTime.UtcNow.AddSeconds(seconds) }); // simulate some work await Task.Delay(2); return(new { NextResponseInSeconds = seconds }); }
private void RegisterUser(IUserFactory userFactory) { ITicketHolder user = userFactory.CreateUser(); }
static void RegisterUser(IUserFactory userFactory) { ITicketHolder holder = userFactory.CreateUser(); }