protected void ValidateMovieModel(out string message) { if (String.IsNullOrWhiteSpace(Name) || !(Name.Length > 3)) { message = "O nome do cinema deve conter no mínimo 4 caracteres"; } else if (String.IsNullOrWhiteSpace(StreetName) || !(StreetName.Length > 3)) { message = "A rua deve conter no mínimo 4 caracteres"; } else if (!Regex.IsMatch(ZipCode.ToString(), @"^\d{8}$")) { message = "Cep com formato inválido"; } else if (!Regex.IsMatch(NumberAddress.ToString(), @"^\d{0,6}$")) { message = "Quantidade de digitos inválida"; } else if (String.IsNullOrWhiteSpace(CityName) || !(CityName.Length > 2)) { message = "Informe uma cidade válida"; } else if (String.IsNullOrWhiteSpace(State) || !Regex.IsMatch(State, @"^[A-Z]{2}$")) { message = "Informe um Estado válido Ex: RJ"; } else { message = ""; } }
public static string FindNumbers(string sentence, Dialect dialect) { if (sentence.Length < 2) { return(sentence); } if (sentence.ContainsCheck("#")) { //HACK: Could be a stray # return(sentence); } string lastBit = ""; if ("!.?:".ContainsCheck(sentence[sentence.Length - 1])) { lastBit = sentence[sentence.Length - 1].ToString(); sentence = sentence.Substring(0, sentence.Length - 1); } Token[] tokens = sentence.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => new Token(x)).ToArray(); List <NumberAddress> numbers = new List <NumberAddress>(); NumberAddress number = new NumberAddress(); string[] validNumberTokens = Token.StupidNumbers; if (dialect.NumberType == "Stupid") { validNumberTokens = Token.StupidNumbers;//ala, wan, tu, mute } else if (dialect.NumberType == "Half Stupid" || dialect.NumberType == "Poman") { validNumberTokens = Token.HalfStupidNumbers; //mute, ale etc. } else if (dialect.NumberType == "Body") { validNumberTokens = Token.BodyNumbers; //0-10 using various body parts. } bool inNumber = false; for (int i = 0; i <= tokens.Length - 1; i++) { if (Number.IsPomanNumber(tokens[i])) { number.NumberEndsAt = i; number.NumberEndsAt = i; numbers.Add(number); inNumber = false; number = new NumberAddress(); continue; } if (inNumber) { if (validNumberTokens.Contains(tokens[i].Text)) { if (inNumber && i == tokens.Length - 1) { number.NumberEndsAt = i; numbers.Add(number); inNumber = false; number = new NumberAddress(); } continue; } else { number.NumberEndsAt = i - 1; numbers.Add(number); inNumber = false; number = new NumberAddress(); } } else if (validNumberTokens.Contains(tokens[i].Text)) { if (tokens[i].Text == "ala") { //Can't start with 0. (ala wan?) //Also causes too many false positives continue; } if (i > 0 && "mi|sina|ona".ContainsCheck(tokens[i - 1])) { //mi tu isn't really a number. It's a dual pronoun. continue; } number.NumberStartsAt = i; inNumber = true; } if (inNumber && i == tokens.Length - 1) { number.NumberEndsAt = i; numbers.Add(number); inNumber = false; number = new NumberAddress(); } } StringBuilder sb = new StringBuilder(sentence.Length); inNumber = false; NumberAddress address = null; for (int i = 0; i <= tokens.Length - 1; i++) { if (address == null) { address = numbers.FirstOrDefault(x => x.NumberStartsAt == i); if (address != null) { sb.Append("#"); inNumber = true; } } if (address != null) { sb.Append(tokens[i]); if (i >= address.NumberStartsAt && i < address.NumberEndsAt) { sb.Append("-"); } else { address = null; sb.Append(" "); } } else { sb.Append(tokens[i]); sb.Append(" "); } } if (sb.Length > 0) { sb.Remove(sb.Length - 1, 1); } sb.Append(lastBit); return(sb.ToString()); }