internal protected sealed override bool Process(ConversationMessage message)
        {
            switch (State)
            {
            case RequesterState.RequestRecovering:
                if (message is ConversationRecoverAgreedMessage)
                {
                    //对方同意恢复会话。
                    State = RequesterState.Running;
                    OnRecoverAgreed(message as ConversationRecoverAgreedMessage);
                    RecoverAgreed?.Invoke();
                }
                else if (message is ConversationRejectMessage)
                {
                    var rm = message as ConversationRejectMessage;
                    State = RequesterState.Rejected;
                    End();
                    OnRecoverRejected(rm);
                    RecoverRejected?.Invoke(rm.RejectCode);
                }
                else
                {
                    //对方再ConversationAgree或者Reject之前发来的消息,到底要不要处理?怎样才能保证对方不在我准备好之前发消息过来?
                    //其他消息,不理会。
                    OnMessageReceived(message);
                }
                break;

            case RequesterState.RequestStarting:
                if (message is ConversationAgreeMessage)
                {
                    WasAgreed = true;
                    State     = RequesterState.Running;
                    Agreed?.Invoke();
                    OnAgreed();
                }
                else if (message is ConversationRejectMessage)
                {
                    State = RequesterState.Rejected;
                    //终止此会话
                    End();
                    Rejected?.Invoke();
                }
                else
                {
                    //对方再ConversationAgree或者Reject之前发来的消息,到底要不要处理?怎样才能保证对方不在我准备好之前发消息过来?
                    //其他消息,不理会。
                    OnMessageReceived(message);
                }
                break;

            case RequesterState.Running:
                OnMessageReceived(message);
                break;
            }
            return(true);
        }
 public void AgreeTermsandConditions()
 {
     Agreed.Click();
 }
Exemple #3
0
        public override void Save()
        {
            DeleteFile(File);
            deleteFilePay();

            File    = WorkWithFiles.fileCopyByID(File, "cars", Car.ID, "Violation", Number);
            FilePay = WorkWithFiles.fileCopyByID(FilePay, "cars", Car.ID, "ViolationPay", Number);

            string datePay = string.Empty;

            if (DatePay != null)
            {
                datePay = string.Concat(DatePay.Value.Year.ToString(), "-", DatePay.Value.Month.ToString(), "-", DatePay.Value.Day.ToString());
            }

            int id;

            int.TryParse(_provider.Insert("Violation", ID, Car.ID, Date, Number, File, datePay,
                                          FilePay, _idViolationType, _sum, _sent, _noDeduction, Agreed.ToString()), out id);
            ID = id;
        }
 void Continue() => Agreed.InvokeAsync();