public async Task <IActionResult> Create(RegexForm data) { if (data != null) { Regex regex = new Regex(); regex.Name = data.Name; regex.Description = data.Description; regex.Value = this.Builder(data); _context.Add(regex); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } else { return(View(data)); } }
public string Builder(RegexForm data) { try { string length, uppercase, lowercase, specsigs, digits; int min, max; if (data.checkMinLength == true) { min = data.minLength; } else { min = 0; } if (data.checkMaxLength == true && data.minLength <= data.maxLength) //Quick fix for exception parsing regex if minlength greater than maxlength { max = data.maxLength; } else { max = Int32.MaxValue; } length = "(?=^.{" + min + "," + max + "}$)"; if (data.checkUppercase == true) { uppercase = "(?=(.*[A-Z]){" + data.minUppercase + ",})"; } else { uppercase = null; } if (data.checkLowercase == true) { lowercase = "(?=(.*[a-z]){" + data.minLowercase + ",})"; } else { lowercase = null; } if (data.checkDigits == true) { digits = @"(?=(.*\d){" + data.minDigits + ",})"; } else { digits = null; } if (data.checkSpecialSigns == true) { specsigs = @"(?=(.*[^\da-zA-Z]){" + data.minSpecialSigns + ",})"; } else { specsigs = null; } string result = length + uppercase + lowercase + digits + specsigs; return(result); } catch (Exception ex) { return(null); } }