// Occurs whenever validation of the value provided by the user failed, and the user didn't agree to retry. private void OnProvidedSerialNumberValidationFailed(object sender, UserWithSaturn5SerialNumberEventArgs e) { // Displays appropriate logs informing user about empty serial number input being provided. this._consolesServices.OnEmergencyAllocateSaturn5BySerialNumber_ProvidedSerialNumberValidationFailed(sender, e); // Close the application. this._form.Close(); }
// Occurs whenever user pressed enter when appropriate for this UI task validation box is enable, // and right before a validation of provided by the user value will begin. private void OnProvidedSerialNumberValidationBegan(object sender, UserWithSaturn5SerialNumberEventArgs e) { // Subscribe to appropriate method of canceling awaiting for input. this.ChangeCancelationMethodForSerialNumberInput(e); // Displays appropriate logs informing user about empty serial number input being provided. this._consolesServices.OnEmergencyAllocateSaturn5BySerialNumber_ProvidedSerialNumberValidationBegan(sender, e); }
private void OnCancelToRetrieveSaturn5Data(object sender, UserWithSaturn5SerialNumberEventArgs e) { // Displays appropriate logs informing user that application canceled obtaining saturn 5 data. this._consolesServices.OnRetrievingSaturn5DataBySerialNumberCanceled(sender, new Saturn5SerialNumberEventArgs(e.SerialNumber)); this._consolesServices.OnBackToIdle(sender, e); // Clears info boxes this._dataDisplayServices.ClearInfoBoxes(sender, e); // Clears the content of all of the main form text boxes displaying User/Satur5 etc. data. this._dataDisplayServices.ClearAllDataDisplayTextBoxes(sender, e); // Enable appropriate controls. this._controlsEnabler.OnEmergencyAllocateSaturn5BySerialNumber_CancelToRetrieveSaturn5Data(sender, e); }
// Occurs whenever validation of the value provided by the user has been canceled. private void OnProvidedSerialNumberValidationCanceled(object sender, UserWithSaturn5SerialNumberEventArgs e) { // Stop listening for serial number text box input. this.StopListenForSerialNumberInput(); // Enables/Disables appropriate controls. this._controlsEnabler.OnEmergencyAllocateSaturn5BySerialNumber_ProvidedSerialNumberValidationCanceled(sender, e); // Displays appropriate logs informing user about empty serial number input being provided. this._consolesServices.OnEmergencyAllocateSaturn5BySerialNumber_ProvidedSerialNumberValidationCanceled(sender, e); this._consolesServices.OnBackToIdle(sender, e); // Clears the content of all of the main form text boxes displaying User/Satur5 etc. data. this._dataDisplayServices.ClearAllDataDisplayTextBoxes(sender, e); // Clears info boxes this._dataDisplayServices.ClearInfoBoxes(sender, e); }
private void OnFailToRetrieveSaturn5Data(object sender, UserWithSaturn5SerialNumberEventArgs e) { // Displays appropriate logs informing user that application failed to obtaining saturn 5 data . this._consolesServices.OnRetrievingSaturn5DataBySerialNumberFailed(sender, new Saturn5SerialNumberEventArgs(e.SerialNumber)); // Ask user what to do in case of failure DialogResult result = MessageBox.Show($"Application failed to obtain saturn 5 data using provided serial number: {e.SerialNumber} {Environment.NewLine}Would You like to Retry or Cancel the operation?", "Failed to obtain saturn 5 data.", MessageBoxButtons.RetryCancel); switch (result) { case DialogResult.Cancel: this.OnCancelToRetrieveSaturn5Data(sender, e); break; case DialogResult.Retry: this.OnValidSerialNumberProvided(sender, e); break; } }
// Occurs whenever user provided valid serialNumber into the appropriate preBrief text box private void OnValidSerialNumberProvided(object sender, UserWithSaturn5SerialNumberEventArgs e) { // Stop listening for saturn 5 serial number this.StopListenForSerialNumberInput(); // Displays appropriate logs informing user about valid serial number being provided. this._consolesServices.OnEmergencyAllocateSaturn5BySerialNumber_ValidSerialNumberProvided(sender, e); // Disables saturn serial number input text box this._controlsEnabler.OnEmergencyAllocateSaturn5BySerialNumber_ValidSerialNumberProvided(sender, e); // Displays appropriate logs informing user that application began to obtaining Saturn5 data based on the provided serial number this._consolesServices.OnRetrievingSaturn5DataBySerialNumberBegan(sender, new Saturn5SerialNumberEventArgs(e.SerialNumber)); // Set text boxes according to the current state of the UITask. this._dataDisplayServices.OnRetrievingSaturn5DataBySerialNumberBegan(sender, new Saturn5SerialNumberEventArgs(e.SerialNumber)); // Attempt to obtain saturn 5 data... Task <Saturn5> getSaturn5Task = this._saturn5Services.GetBySerialNumberAsync(e.SerialNumber); getSaturn5Task.ContinueWith((t) => { switch (t.Status) { case TaskStatus.RanToCompletion: // ... execute if succeed to obtain saturn 5 data. this.OnSuccessfullyRetrievedSaturn5Data(sender, new UserWithSaturn5EventArgs(e.User, t.Result)); break; case TaskStatus.Faulted: // ... execute if failed to obtain saturn 5 data. this.OnFailToRetrieveSaturn5Data(sender, e); break; case TaskStatus.Canceled: // ... execute if attempt to obtain saturn 5 data has been canceled. this.OnCancelToRetrieveSaturn5Data(sender, e); break; } }, TaskScheduler.FromCurrentSynchronizationContext()); }
private void StopListenForSerialNumberInput() { if (this.tbxPreBriefSaturn5SerialNumber.InvokeRequired) { Action d = new Action(StopListenForSerialNumberInput); if (!_form.IsDisposed) { tbxPreBriefSaturn5SerialNumber.Invoke(d); } } else if (!this.tbxPreBriefSaturn5SerialNumber.IsDisposed) { this.AwaitingSerialNumberCanceled -= this.OnAwaitingSerialNumberCanceled; this.ValidatingSerialNumberCanceled -= this.OnProvidedSerialNumberValidationCanceled; this.tbxPreBriefSaturn5SerialNumber.InputValidationBegan -= this.OnProvidedSerialNumberValidationBegan; this.tbxPreBriefSaturn5SerialNumber.InputValidationFailed -= this.OnProvidedSerialNumberValidationFailed; this.tbxPreBriefSaturn5SerialNumber.InputValidationCanceled -= this.OnProvidedSerialNumberValidationCanceled; this.tbxPreBriefSaturn5SerialNumber.ValidInputValueProvided -= this.OnValidSerialNumberProvided; this.tbxPreBriefSaturn5SerialNumber.EmptyInputValueProvided -= this.OnEmptySerialNumberProvided; this.tbxPreBriefSaturn5SerialNumber.InvalidInputValueProvided -= this.OnInvalidSerialNumberProvided; this._serialNumberValidationCancelationArgs = null; } }
private void ChangeCancelationMethodForSerialNumberInput(UserWithSaturn5SerialNumberEventArgs e) { if (this.tbxPreBriefSaturn5SerialNumber.InvokeRequired) { Action <UserWithSaturn5SerialNumberEventArgs> d = new Action <UserWithSaturn5SerialNumberEventArgs>(ChangeCancelationMethodForSerialNumberInput); if (!this.tbxPreBriefSaturn5SerialNumber.IsDisposed) { this.tbxPreBriefSaturn5SerialNumber.Invoke(d, e); } } else if (!this.tbxPreBriefSaturn5SerialNumber.IsDisposed) { this._serialNumberValidationCancelationArgs = e; this.AwaitingSerialNumberCanceled -= this.OnAwaitingSerialNumberCanceled; //this.AwaitingSerialNumberCanceled += this.OnAwaitingSerialNumberCanceled; this.ValidatingSerialNumberCanceled -= this.OnProvidedSerialNumberValidationCanceled; this.ValidatingSerialNumberCanceled += this.OnProvidedSerialNumberValidationCanceled; this.tbxPreBriefSaturn5SerialNumber.InputValidationCanceled -= this.OnProvidedSerialNumberValidationCanceled; this.tbxPreBriefSaturn5SerialNumber.InputValidationCanceled += this.OnProvidedSerialNumberValidationCanceled; } }
// Occurs whenever user will provide invalid serial number. private void OnInvalidSerialNumberProvided(object sender, UserWithSaturn5SerialNumberEventArgs e) { // Displays appropriate logs informing user about invalid serial number being provided. this._consolesServices.OnEmergencyAllocateSaturn5BySerialNumber_InvalidSerialNumberProvided(sender, e); }
// Occurs whenever user will provide empty value in place of valid serial number. private void OnEmptySerialNumberProvided(object sender, UserWithSaturn5SerialNumberEventArgs e) { // Displays appropriate logs informing user about empty serial number input being provided. this._consolesServices.OnAllocateSaturn5BySerialNumber_EmptySerialNumberProvided(sender, e); }