Ejemplo n.º 1
0
 private static bool UpdateField(Account account, string field, string newValue )
 {
     switch (field.ToLower())
     {
         case "firstname":
             if (newValue.Contains('@') || newValue.Contains('.'))
             {
                 return false;
             }
             account.FirstName = newValue;
             break;
         case "lastname":
             if (newValue.Contains('@') || newValue.Contains('.'))
             {
                 return false;
             }
             account.LastName = newValue;
             break;
         case "age":
             try
             {
                 account.Age = Byte.Parse(newValue);
             }
             catch (Exception)
             {
                 return false;
             }
             break;
         case "position":
             if (newValue.Contains('@') || newValue.Contains('.'))
             {
                 return false;
             }
             account.Position = newValue;
             break;
         case "email":
             if (newValue.Contains(' '))
             {
                 return false;
             }
             account.Email = newValue;
             break;
         case "salary":
             try
             {
                 account.Salary = UInt32.Parse(newValue);
             }
             catch (Exception)
             {
                 return false;
             }
             break;
         default:
             return false;
     }
     return true;
 }
 public void Add(Account newAcc)
 {
     uint maxId = 0;
     foreach (Account account in accounts)
     {
         if (account.Id > maxId)
         {
             maxId = account.Id;
         }
     }
     newAcc.Id = maxId + 1;
     accounts.Add(newAcc);
 }
Ejemplo n.º 3
0
        public void AddNewAccount(List<String> userCommands)
        {
            int accountsAdded = 0;

            if (userCommands.Count < 2)
            {
                SendMessage("Информация о новом каталоге не указана");
                return;
            }

            userCommands.RemoveAt(0);
            string command = String.Join(" ", userCommands.ToArray());
            Regex parseBrackets = new Regex(@"\(([A-z,А-я,0-9,'\,,@,\.,\-,\s]*)\)");

            // Контроль почтового адреса не строгий умышленно. Туда можно записать и пустую строку
            Regex parseFields = new Regex(@"'([A-z,А-я,0-9,\-,\s]*)'\s*,\s*
                                            '([A-z,А-я,0-9,\-,\s]*)'\s*,\s*
                                            '([0-9]*)'\s*,\s*
                                            '([A-z,А-я,0-9,\-,\s]*)'\s*,\s*
                                            '([A-z,0-9,\-,@,\.]*)'\s*,\s*
                                            '([0-9]*)'\s*\s*", RegexOptions.IgnorePatternWhitespace);

            Match inBrackets = parseBrackets.Match(command);

            while (inBrackets.Success)
            {
                Match fields = parseFields.Match(inBrackets.Groups[1].Value);
                while (fields.Success)
                {
                    try
                    {
                        Account account = new Account();
                        account.FirstName = fields.Groups[1].Value;
                        account.LastName = fields.Groups[2].Value;
                        if (fields.Groups[3].Value == "")
                        {
                            account.Age = null;
                        }
                        else
                        {
                            account.Age = Byte.Parse(fields.Groups[3].Value);
                        }
                        account.Position = fields.Groups[4].Value;
                        account.Email = fields.Groups[5].Value;
                        if (fields.Groups[6].Value == "")
                        {
                            account.Salary = null;
                        }
                        else
                        {
                            account.Salary = UInt32.Parse(fields.Groups[6].Value);
                        }

                        ConsoleMenu.AccountTable.Add(account);
                        accountsAdded++;
                    }
                    catch (Exception)
                    {
                        // Это сообщение выводиться не должно.
                        SendMessage("Ошибка парсинга строк.");
                        return;
                    }
                    fields = fields.NextMatch();
                }
                inBrackets = inBrackets.NextMatch();
            }
            SendMessage("Добавлено " + accountsAdded + " каталогов.");
        }