private async Task <ActivityTableEntity> GetActivityPerUserEntityAsync(string userId, DateTime timestamp) { var rowKey = ActivityKeyFactory.CreatePerUserRowKey(timestamp); var result = await this.storageAccessService.GetTableEntityAsync <ActivityTableEntity>(Constants.TableNames.ActivityPerUser, userId, rowKey); return(result); }
public static Activity CreateNotificationActivity( string userId, string userName, string message) { var timestamp = DateTime.UtcNow; return(CreateNotificationActivity(ActivityKeyFactory.CreateRowKey(timestamp, userId), timestamp, userId, userName, message)); }
public static Activity CreateMessageActivity( Location location, string userId, string userName, string message, Venue.Venue venue) { var timestamp = DateTime.UtcNow; return(CreateMessageActivity(ActivityKeyFactory.CreateRowKey(timestamp, userId), timestamp, location, userId, userName, message, venue)); }
public async Task <ActivityTableEntity> GetActivityEntityAsync(string id) { string partitionKey = ActivityKeyFactory.GetPartitionKeyFromRowKey(id); var entity = await this.storageAccessService.GetTableEntityAsync <ActivityTableEntity>(Constants.TableNames.Activity, partitionKey, id); if (entity == null) { throw new NotFoundException($"Activity [{id}] not found!"); } return(entity); }
public static Activity CreateDrinkActivity( Location location, string userId, string userName, DrinkType drinkType, string drinkId, string drinkName, double drinkAlcPrc, double drinkVolume, Venue.Venue venue) { var timestamp = DateTime.UtcNow; return(CreateDrinkActivity(ActivityKeyFactory.CreateRowKey(timestamp, userId), timestamp, location, userId, userName, drinkType, drinkId, drinkName, drinkAlcPrc, drinkVolume, venue)); }
public async Task <ActivityEntity> AddActivityAsync(ActivityEntity activity) { string activityFeedRowKey = ActivityKeyFactory.CreateRowKey(activity.Timestamp, activity.UserId); var entity = new ActivityTableEntity(ActivityKeyFactory.CreatePartitionKey(activity.Timestamp), activityFeedRowKey, activity); await this.storageAccessService.InsertAsync(Constants.TableNames.Activity, entity); string activityPerUserRowKey = ActivityKeyFactory.CreatePerUserRowKey(activity.Timestamp); var perUserEntity = new ActivityTableEntity(activity.UserId, activityPerUserRowKey, activity); await this.storageAccessService.InsertAsync(Constants.TableNames.ActivityPerUser, perUserEntity); await AddToPersonalizedFeedAsync(activity.UserId, activity); return(activity); }
public async Task <IEnumerable <ActivityEntity> > GetUserActivitiesAsync(string userId, DateTime startTimeUtc, ActivityType activityType = ActivityType.None) { string startRowKey = ActivityKeyFactory.CreatePerUserRowKey(startTimeUtc); var whereClause = TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, userId), TableOperators.And, TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThanOrEqual, startRowKey)); if (activityType != Core.Activity.Domain.ActivityType.None) { whereClause = TableQuery.CombineFilters(whereClause, TableOperators.And, TableQuery.GenerateFilterCondition(nameof(ActivityTableEntity.ActivityType), QueryComparisons.Equal, activityType.ToString())); } var result = await storageAccessService.QueryTableAsync <JsonTableEntity <ActivityEntity> >(Constants.TableNames.ActivityPerUser, whereClause); var activitys = result.Select(a => a.Entity).ToList(); return(activitys); }
public async Task <IEnumerable <ActivityEntity> > GetMasterActivitiesAsync(ActivityFilterArgs args) { string whereClause = null; string tableName = Constants.TableNames.Activity; string currentPartition = ActivityKeyFactory.CreatePartitionKey(DateTime.UtcNow); string previousPartition = ActivityKeyFactory.CreatePartitionKey(DateTime.UtcNow.AddDays(-(DateTime.UtcNow.Day + 1))); whereClause = TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, currentPartition), TableOperators.Or, TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, previousPartition)); if ((args.FilterOptions & ActivityFilterOptions.WithLocation) == ActivityFilterOptions.WithLocation) { whereClause = TableQuery.CombineFilters(whereClause, TableOperators.And, TableQuery.GenerateFilterConditionForBool(nameof(ActivityTableEntity.HasLocation), QueryComparisons.Equal, true)); } if ((args.FilterOptions & ActivityFilterOptions.WithVenue) == ActivityFilterOptions.WithVenue) { whereClause = TableQuery.CombineFilters(whereClause, TableOperators.And, TableQuery.GenerateFilterCondition(nameof(ActivityTableEntity.VenueId), QueryComparisons.NotEqual, null)); } if (args.ActivityType != ActivityType.None) { whereClause = TableQuery.CombineFilters(whereClause, TableOperators.And, TableQuery.GenerateFilterCondition(nameof(ActivityTableEntity.ActivityType), QueryComparisons.Equal, args.ActivityType.ToString())); } var result = await storageAccessService.QueryTableAsync <JsonTableEntity <ActivityEntity> >(tableName, whereClause, args.PageSize); var resultActivities = result.ResultPage.Select(a => a.Entity).ToList(); return(resultActivities); }
public static Activity CreateImageActivity(Location location, string userId, string userName, string imageUrl) { var timestamp = DateTime.UtcNow; return(CreateImageActivity(ActivityKeyFactory.CreateRowKey(timestamp, userId), timestamp, location, userId, userName, imageUrl)); }
public static Activity CreateGameActivity(GameEntity game, UserInfo winner) { var timestamp = DateTime.UtcNow; return(CreateGameActivity(ActivityKeyFactory.CreateRowKey(timestamp, winner.UserId), timestamp, game, winner)); }
public static Activity CreateVenueActivity(string userId, string userName, Venue.Venue venue, VenueAction action) { var timestamp = DateTime.UtcNow; return(CreateVenueActivity(ActivityKeyFactory.CreateRowKey(timestamp, userId), timestamp, userId, userName, venue, action)); }
public static Activity CreateRenameActivity(string userId, string userName, string originalUserName) { var timestamp = DateTime.UtcNow; return(CreateRenameActivity(ActivityKeyFactory.CreateRowKey(timestamp, userId), timestamp, userId, userName, originalUserName)); }
public static Activity CreateRegistrationActivity(string userId, string userName) { var timestamp = DateTime.UtcNow; return(CreateRegistrationActivity(ActivityKeyFactory.CreateRowKey(timestamp, userId), timestamp, userId, userName, new UserInfo(userId, userName))); }
public static Activity CreateProfileImageUpdateActivity(string userId, string userName) { var timestamp = DateTime.UtcNow; return(CreateProfileImageUpdateActivity(ActivityKeyFactory.CreateRowKey(timestamp, userId), timestamp, userId, userName)); }