예제 #1
0
파일: Request.cs 프로젝트: dmitrkov/A2v10
        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);
        }
예제 #2
0
        void ContinueAt(NativeActivityContext context, Bookmark bookmark, Object obj)
        {
            String result = String.Empty;

            if (obj != null)
            {
                result = obj.ToString();
            }
            this.Result.Set(context, result);
            IDbContext dbContext = context.GetExtension <IDbContext>();

            context.DoModelState(dbContext, StateAfter.Get <ModelStateInfo>(context));
            context.DoTrack(dbContext, TrackAfter.Get <TrackRecord>(context));
        }
예제 #3
0
        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);
        }