internal override IDictionary <string, string> GetFilterDictionary() { var dict = base.GetFilterDictionary(); if (Scheduled.HasValue) { dict["scheduled"] = Scheduled.Value ? "true" : "false"; } if (SendAfter.HasValue || SendBefore.HasValue) { var obj = new { gt = SendAfter?.ToString("o"), lt = SendBefore?.ToString("o") }; dict["send_date"] = JsonConvert.SerializeObject(obj, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); } if (MailType.HasValue) { // TODO this is mouthful dict["mail_type"] = MailType.Value == Models.MailType.UspsFirstClass ? "usps_first_class" : "usps_standard"; } if (SortBy != null) { var sortByKey = SortBy.SortBy == Models.SortBy.DateCreated ? "date_created" : "send_date"; dict[$"sort_by[{sortByKey}]"] = SortBy.SortDirection == SortDirection.Ascending ? "asc" : "desc"; } return(dict); }
void ContinueAt(NativeActivityContext context, Bookmark bookmark, Object obj) { if (!(obj is RequestResult)) { throw new WorkflowException("Invalid ResponseType. Must be RequestResult"); } IDbContext dbContext = context.GetExtension <IDbContext>(); Process process = Process.GetProcessFromContext(context); var rr = obj as RequestResult; Inbox inbox = Inbox.Get <Inbox>(context); inbox.Resumed(dbContext, rr.InboxId, rr.UserId, rr.Answer); context.TrackRecord($"Inbox resumed {{Id: {rr.InboxId}, UserId: {rr.UserId}) Result:'{rr.Answer}'}}"); // track after var trAfter = TrackAfter.Get <TrackRecord>(context); if (trAfter != null) { trAfter = trAfter.Clone(); trAfter.UserId = rr.UserId; trAfter.Message = rr.Resolve(trAfter.Message); context.DoTrack(dbContext, trAfter); } // send after SendMessage(SendAfter.Get <MessageInfo>(context), inbox, context); // state after context.DoModelState(dbContext, StateAfter.Get <ModelStateInfo>(context), rr.InboxId, rr.UserId); this.Result.Set(context, rr); }
void ContinueAt(NativeActivityContext context, Bookmark bookmark, Object obj) { if (!(obj is RequestResult)) { throw new WorkflowException("Invalid ResponseType. Must be RequestResult"); } IDbContext dbContext = context.GetExtension <IDbContext>(); Process process = Process.GetProcessFromContext(context.DataContext); process.DbContext = dbContext; var rr = obj as RequestResult; Inbox inbox = Inbox.Get <Inbox>(context); inbox.Resumed(dbContext, rr.InboxId, rr.UserId, rr.Answer); TrackRecord(context, $"Inbox resumed {{Id: {rr.InboxId}, UserId: {rr.UserId}) Result:'{rr.Answer}'}}"); // track after DoTrack(dbContext, TrackAfter.Get <TrackRecord>(context), context, rr.UserId); // send after SendMessage(SendAfter.Get <MessageInfo>(context), inbox, context); this.Result.Set(context, rr); }