protected override ValidationResult IsValid(object value, ValidationContext validationContext) { DateTime birthdayy = DateTime.Parse(value.ToString()); int age = YearCalculator.CalculateYear(birthdayy); if (age < MINYEAR) { var result = new ValidationResult(YEARSOLD); return(result); } return(null); }
/// <summary> /// создаёт окно с заданным рядом /// </summary> /// <param name="rang"></param> public FormCalcYear(RawRange rang) { InitializeComponent(); range = rang; try { years = YearCalculator.ProcessRange(range); dataGridViewExt1.DataSource = years.Years; dataGridViewExt1.ReadOnly = true; if (years.RecomendedYear != null) //если расчётный год найден { labelRecomendedYear.Text = "Рекомендуется в качестве расчетного принять " + years.RecomendedYear.Year + " год:"; labelAverageCalcYearSpeed.Text = "Средняя скорость: " + years.RecomendedYear.AverageSpeed.ToString("0.0") + " м/с"; labelCompletness.Text = "Полнота ряда: " + years.RecomendedYear.Completness.ToString("0.00") + " %"; labelExpectDeviation.Text = "Отклонение повторяемости скорости: " + years.RecomendedYear.ExpectancyDeviation.ToString("0.00") + "о.е."; labelInterval.Text = "Δt: " + years.RecomendedYear.Interval.Description() + ""; labelMaxSpeed.Text = "Максимальная скорость: " + years.RecomendedYear.Vmax.ToString("0.0") + " м/с"; labelSpeedDeviation.Text = "Отклонение скорости от многолетней: " + years.RecomendedYear.SpeedDeviation.ToString("0.00") + " м/с"; buttonOpenCalcYear.Visible = true; } else //если расчётный год не найден { _ = MessageBox.Show(this, "Не удалось найти расчётный год.\r\nРяд очень маленький или не содержит года необходимого качества"); labelAverageCalcYearSpeed.Text = "Средняя скорость: "; labelCompletness.Text = "Полнота ряда: "; labelExpectDeviation.Text = "Отклонение повторяемости скорости: "; labelInterval.Text = "Δt: "; labelMaxSpeed.Text = "Максимальная скорость: "; labelSpeedDeviation.Text = "Отклонение скорости от многолетней: "; } labelAverageYearsSpeed.Text = "Среднемноголетняя скорость: " + years.AverageSpeed.ToString("0.0") + " м/с"; } catch (ArgumentException wex) { _ = MessageBox.Show(this, wex.Message, "Выбор расчётного года", MessageBoxButtons.OK, MessageBoxIcon.Warning); Close(); } }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl ??= this.Url.Content("~/"); this.ExternalLogins = (await this.signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (!this.IsImageValid(this.Input.Images)) { this.ModelState.AddModelError("Images", "Invalid Images"); } if (this.ModelState.IsValid) { var age = YearCalculator.CalculateYear(this.Input.DateOfBirth); var user = new ApplicationUser { UserName = this.Input.Email, Email = this.Input.Email, PhoneNumber = this.Input.PhoneNumber, Age = age, }; var result = await this.userManager.CreateAsync(user, this.Input.Password); if (this.Input.Images.Any()) { await this.imageService.UploadImages(this.Input.Images.ToList(), this.Input.Images.Count(), user.Id); } if (result.Succeeded) { this.logger.LogInformation("User created a new account with password."); var code = await this.userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = this.Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl }, protocol: this.Request.Scheme); await this.emailSender.SendEmailAsync( this.Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); if (this.userManager.Options.SignIn.RequireConfirmedAccount) { return(this.RedirectToPage("RegisterConfirmation", new { email = this.Input.Email, returnUrl = returnUrl })); } else { await this.signInManager.SignInAsync(user, isPersistent : false); return(this.LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { this.ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(this.Page()); }