private List <UserSequence> CreateUserSequences(DateTime startDate, DateTime endDate) { var customerOrders = _dbContext.UkRetailOriginalSales .Where(a => a.InvoiceDate.Date >= startDate.Date && a.InvoiceDate.Date <= endDate.Date && a.CustomerID != null && a.CustomerID < 13000 && a.Quantity > 0 && string.Compare(a.StockCode, "a") == -1) .Select(a => new { a.CustomerID, Year = a.InvoiceDate.Year, Month = a.InvoiceDate.Month, a.StockCode }) //.OrderBy(a => new { a.Year, a.Month }) .GroupBy(a => new { a.CustomerID }); //.GroupBy(a => new { a.CustomerID, a.Year, a.Month }); List <UserSequence> userSequences = new List <UserSequence>(); foreach (var groupCustomer in customerOrders) { var customerMonthlyorder = groupCustomer.GroupBy(a => new { a.Year, a.Month }); UserSequence userSequence = new UserSequence(); List <List <string> > sequence = new List <List <string> >(); foreach (var groupCustomerMontlyOrder in customerMonthlyorder) { List <string> itemset = new List <string>(); foreach (var order in groupCustomerMontlyOrder) { itemset.Add(order.StockCode); } sequence.Add(itemset); userSequence.User = groupCustomerMontlyOrder.Select(a => a.CustomerID.GetValueOrDefault()).FirstOrDefault(); userSequence.Sequence = sequence; } userSequences.Add(userSequence); } return(userSequences); }
public void OnAddUserList(UserSequence users) { foreach (User user in users.Elements) { this._users[user.Identity] = user; } this.HandleUpdateUserListEvent(users.Elements); Logger.LogInfo("Get user list , Length : {0} ", new object[] { users.Elements.Count }); }
public async Task <UserSequence> GetFollowings(int limit = 100, string cursor = null) { if (this.Account == null) { throw new InvalidOperationException(); } var param = new Dictionary <string, object> { ["userId"] = this.Account.Id, ["limit"] = limit }; if (cursor != null) { param.Add("cursor", cursor); } var res = await this.Account.Request("users/following", param); return(UserSequence.FromJObject(res)); }