Esempio n. 1
0
        private static bool checkValidity(string str, COMMAND_CHECK_TYPES type, Logger logger)
        {
            if (str == "")
            {
                return(false);
            }
            bool valid = true;

            str = str.ToLower();                                            //legal chars for any type of input, first is for g_id, 2nd is for nickname and 3rd is for message
            string[] validChars = { "0123456789", "0123456789abcdefghijklmnopqrstuvwxyz",
                                    "0123456789abcdefghijklmnopqrstuvwxyz@^$.?,!#$%&/()=?»«@£§€{}.-;:'<@>_,]+ " };
            switch (type.ToString())
            {
            case "gID":
            {
                int i = 0;
                while (valid && i < str.Length)                           // chars in validChars which are numbers only
                {
                    string a = "" + str[i];
                    if (!(validChars[0].Contains(a)))
                    {
                        goto default;
                    }
                    i++;
                }
                if (Double.Parse(str) < 1 || Double.Parse(str) > 99)
                {
                    goto default;
                }
                return(true);
            }

            case "nickname":
            {
                int i = 0;
                while (valid && i < str.Length)                           // chars in validChars which are numbers and letters
                {
                    string a = "" + str[i];
                    if (!(validChars[1].Contains(a)))
                    {
                        goto default;
                    }
                    i++;
                }
                return(true);
            }

            case "message":
            {
                int i = 0;
                while (valid && i < str.Length)                           // chars in validChars which are numbers, letters and signs
                {
                    string a = "" + str[i];
                    if (!(validChars[2].Contains(a)))
                    {
                        goto default;
                    }
                    i++;
                }
                return(true);
            }

            default:
            {
                logger.logWarnMessage("The inserted input is ilegal for: " + type.ToString() + " parameter");
                return(false);
            }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// deals with inputs from user
        /// </summary>
        /// <param name="type"></param>
        /// <param name="logger"></param>
        /// <returns></returns>
        private static string receiveCMD(COMMAND_CHECK_TYPES type, Logger logger)
        {
            int    counter = 0;                                 //attemps counter. 3 is max attempts allowed
            string str     = "";

            switch (type.ToString())
            {
            case "gID":       //gID check
            {
                alerts(ALERTS_TYPE.menu, logger);
                do
                {
                    if (counter == 3)
                    {
                        goto default;
                    }
                    alerts(ALERTS_TYPE.g_ID, logger);
                    str = Console.ReadLine();
                    if (Equals(str, "menu") || counter == 3)
                    {
                        goto default;
                    }
                    counter++;
                }while (!(checkValidity(str, COMMAND_CHECK_TYPES.gID, logger)));         //g_ID valid numbers and range check
                return(str);
            }

            case "nickname":       //nickname check
            {
                do
                {
                    if (counter == 3)
                    {
                        goto default;
                    }
                    alerts(ALERTS_TYPE.nickname, logger);
                    str = Console.ReadLine();
                    if (Equals(str, "menu") || counter == 3)
                    {
                        goto default;
                    }
                    counter++;
                }while (!(checkValidity(str, COMMAND_CHECK_TYPES.nickname, logger)));              //nickname valid chars check
                return(str);
            }

            case "message":       //message check
            {
                do
                {
                    if (counter == 3)
                    {
                        goto default;
                    }
                    alerts(ALERTS_TYPE.message, logger);
                    str = Console.ReadLine();
                    if (Equals(str, "menu") || counter == 3)
                    {
                        goto default;
                    }
                    counter++;
                }while (!(checkValidity(str, COMMAND_CHECK_TYPES.message, logger)));         //message valid chars check
                return(str);
            }

            default:
            {
                Console.Clear();
                if (counter == 3)                           //max attempts
                {
                    alerts(ALERTS_TYPE.attemps, logger);
                }
                alerts(ALERTS_TYPE.menuSwitch, logger);
                return(null);
            }
            }
        }