예제 #1
0
        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()));
        }
예제 #2
0
        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()));
        }
예제 #3
0
        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()));
        }
예제 #4
0
        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()));
        }