private async Task SubscribeUserAsync(SubscribedCallback callback) { if (await _userDataStore.ExistAsync(x => x.ViberId == callback.User.Id).ConfigureAwait(false)) { return; } var entity = ViberUserFactory.ToEntity(callback); await _userDataStore.CreateAsync(entity).ConfigureAwait(false); await _userDataStore.SaveAsync().ConfigureAwait(false); }
public static ViberUserEntity ToEntity(SubscribedCallback callback) { var now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); return(new ViberUserEntity { Avatart = callback.User.Avatart, Country = callback.User.Country, CreatedTimestamp = now, UpdatedTimestamp = now, IsSubscribed = true, Language = callback.User.Language, SessionId = Guid.NewGuid().ToString(), Name = callback.User.Name, ViberId = callback.User.Id }); }
public void Unsubscribe <T>(SubscribedCallback cb) where T : IEvent { unsubscribeRequestQueue.Enqueue(new KeyValuePair <Type, SubscribedCallback>(typeof(T), cb)); }