private static ProcessReturn HandleUse(string[] args) { List <string> errors = new List <string>(); if (ValidateArguments(args, 0)) { _entity = null; } else if (!ValidateArguments(args, 1)) { errors.Add("Argumentos invalidos para use de tabela"); } else { if ((new string[] { "ingredient", "ingrediente", "recipe", "receita" }).Contains(args[0])) { _entity = args[0]; } else { errors.Add("Tabela desconhecida"); } } return(ProcessReturn.FromErrors(errors.ToArray())); }
private static ProcessReturn HandleSelect(string[] args) { if (!Valid(args)) { return(ProcessReturn.FromErrors(new string[] { "Faltando entidade para ser atualizada" })); } List <string> errors = new List <string>(); switch (_entity ?? args[0]) { case "ingrediente": case "ingredient": if (ValidateArguments(args, _entity != null ? 0 : 1)) { Ingredient.Select(out var _); } else if (ValidateArguments(args, _entity != null ? 1 : 2)) { Ingredient.Select(args[_entity != null ? 0 : 1], ref errors, out var _); } else if (ValidateArguments(args, _entity != null ? 2 : 3)) { Ingredient.Select(_entity != null ? args : args.Skip(1).ToArray(), ref errors, out var _); } else { errors.Add($"Numero de argumentos invalido"); } break; case "recipe": case "receita": if (ValidateArguments(args, _entity != null ? 0 : 1)) { Recipe.Select(out var _); } else if (ValidateArguments(args, _entity != null ? 1 : 2)) { Recipe.Select(args[_entity != null ? 0 : 1], ref errors, out var _); } else { errors.Add($"Numero de argumentos invalido"); } break; default: errors.Add($"Entidade desconhecida '{args[0]}'"); break; } return(ProcessReturn.FromErrors(errors.ToArray())); }
private static ProcessReturn ProcessStatement(string[] statements) { List <string> errors = new List <string>(); switch (statements[0]) { case "novo": case "create": return(HandleCreate(statements.Skip(1).ToArray())); case "selecionar": case "select": return(HandleSelect(statements.Skip(1).ToArray())); case "atualizar": case "update": return(HandleUpdate(statements.Skip(1).ToArray())); case "deletar": case "delete": return(HandleDelete(statements.Skip(1).ToArray())); case "link": case "linkar": return(HandleLink(statements.Skip(1).ToArray())); case "unlink": case "deslinkar": return(HandleUnlink(statements.Skip(1).ToArray())); case "use": return(HandleUse(statements.Skip(1).ToArray())); default: errors.Add($"Token desconhecido '{statements[0]}'"); break; } return(ProcessReturn.FromErrors(errors.ToArray())); }
private static ProcessReturn HandleUnlink(string[] args) { if (!Valid(args)) { return(ProcessReturn.FromErrors(new string[] { "Faltanda entidade para ser deslinkada" })); } List <string> errors = new List <string>(); switch (_entity ?? args[0]) { case "recipe": case "receita": if (ValidateArguments(args, _entity != null ? 2 : 3)) { Recipe.Unlink(_entity != null ? args : args.Skip(1).ToArray(), ref errors); } else { errors.Add("Numero de argumentos invalido"); } break; } return(ProcessReturn.FromErrors(errors.ToArray())); }