예제 #1
0
        public AdHelper(string applicationId, string adUnitId)
        {
            _applicationId = applicationId;
            _adUnitId      = adUnitId;

            _ad            = new InterstitialAd();
            _ad.AdReady   += (s, e) => AfterReady?.Invoke();
            _ad.Completed += (s, e) => { if (IsReady)
                                         {
                                             AfterComplete?.Invoke();
                                         }
            };
            _ad.Cancelled     += (s, e) => AfterCanceled?.Invoke();
            _ad.ErrorOccurred += (s, e) => AfterError?.Invoke(e);
        }
예제 #2
0
 public override void Visit(CommandVisitor visitor)
 {
     base.Visit(visitor);
     if (AfterComplete != null)
     {
         AfterComplete.Visit(visitor);
     }
     if (BeforeCreate != null)
     {
         BeforeCreate.Visit(visitor);
     }
     if (InputControls != null)
     {
         foreach (var item in InputControls)
         {
             item.Visit(visitor);
         }
     }
 }
예제 #3
0
        public override CommandResult Do(IExecutionContext context)
        {
            _context = context;

            FlowLayoutPanel mainPanel = null;

            context.ControlContainer.Invoke(new Action(() =>
            {
                context.ControlContainer.SuspendLayout();
                context.ControlContainer.Controls.Clear();
                context.ControlContainer.Text = FormCaption;
                mainPanel = new FlowLayoutPanel {
                    Dock = DockStyle.Fill
                };
                context.ControlContainer.Controls.Add(mainPanel);
            }
                                                       ));

            if (BeforeCreate != null)
            {
                BeforeCreate.Do(context);
            }

            CreateUserInputControls(mainPanel);
            CreateCommonControls();

            context.ControlContainer.Invoke(new Action <bool>(context.ControlContainer.ResumeLayout), true);

            _nextWaitHandle.WaitOne();

            if (AfterComplete != null && _commandResult == CommandResult.Next)
            {
                AfterComplete.Do(context);
            }

            context.ControlContainer.Invoke(new Action(context.ControlContainer.Controls.Clear), null);

            return(_commandResult);
        }