public static async Task<List<MemberNotificationType>> GetRecentCategorized(string userId, SimpleMessage[] msgs, int? typeId, int max)
 {
     var cntx = Cntx;
     MembershipPlusServiceProxy svc = new MembershipPlusServiceProxy();
     MemberNotificationTypeServiceProxy tsvc = new MemberNotificationTypeServiceProxy();
     MemberNotificationServiceProxy nsvc = new MemberNotificationServiceProxy();
     var categs = await tsvc.QueryDatabaseAsync(cntx, new MemberNotificationTypeSet(), null);
     List<MemberNotificationType> tlist = new List<MemberNotificationType>();
     DateTime dt = DateTime.UtcNow.AddDays(-1);
     foreach (var categ in categs)
     {
         if (typeId.HasValue && categ.ID != typeId.Value)
             continue;
         var cond = new MemberNotificationSetConstraints
         {
             ApplicationIDWrap = new ForeignKeyData<string> { KeyValue = AppId },
             UserIDWrap = new ForeignKeyData<string> { KeyValue = userId },
             TypeIDWrap = new ForeignKeyData<int> { KeyValue = categ.ID }
         };
         QueryExpresion qexpr = new QueryExpresion();
         qexpr.OrderTks = new List<QToken>(new QToken[] { 
             new QToken { TkName = "PriorityLevel" },
             new QToken { TkName = "desc" },
             new QToken { TkName = "CreatedDate" },
             new QToken { TkName = "desc" }
         });
         qexpr.FilterTks = new List<QToken>(new QToken[] { 
             new QToken { TkName = "ReadCount == 0 && CreatedDate >= " + svc.FormatRepoDateTime(dt) }
         });
         foreach (var msg in msgs)
         {
             qexpr.FilterTks.Add(new QToken
             {
                 TkName = " && ID != \"" + msg.Id + "\""
             });
         }
         var list = (await nsvc.ConstraintQueryLimitedAsync(cntx, new MemberNotificationSet(), cond, qexpr, max)).ToList();
         if (list.Count > 0)
         {
             categ.ChangedMemberNotifications = list.ToArray();
             tlist.Add(categ);
         }
     }
     return tlist;
 }
Exemplo n.º 2
0
 /// <summary>
 /// Is it the same as the input one
 /// </summary>
 /// <param name="constraints">The one to be compared with.</param>
 /// <returns></returns>
 public bool IsTheSameAs(MemberNotificationSetConstraints constraints)
 {
     return(ApplicationIDWrap.KeyValue == constraints.ApplicationIDWrap.KeyValue && TypeIDWrap.KeyValue == constraints.TypeIDWrap.KeyValue && UserIDWrap.KeyValue == constraints.UserIDWrap.KeyValue);
 }
 /// <summary>
 /// Is it the same as the input one
 /// </summary>
 /// <param name="constraints">The one to be compared with.</param>
 /// <returns></returns>
 public bool IsTheSameAs(MemberNotificationSetConstraints constraints)
 {
     return ApplicationIDWrap.KeyValue == constraints.ApplicationIDWrap.KeyValue && TypeIDWrap.KeyValue == constraints.TypeIDWrap.KeyValue && UserIDWrap.KeyValue == constraints.UserIDWrap.KeyValue;
 }