예제 #1
0
        public IList <string> GetOutputs(string path, bool largeInput)
        {
            string[] messages = messageRepository.GetAllLines(path);

            if (messages == null || !messages.Any())
            {
                return(null);
            }

            if (messages.Length < 2)
            {
                setErrorMsg("messages", ExceptionMessageResource.NotCorrectFileFormat_CountRow);
            }

            int maxN = 0;

            Int32.TryParse(messages[0], out maxN);

            if (maxN == 0)
            {
                setErrorMsg("messages", ExceptionMessageResource.NotCorrectFileFormat_FirstRow);
            }

            int inputLengthConstraint = 0;

            if (largeInput)
            {
                inputLengthConstraint = settingsRepository.GetLargeInputLengthConstraint();
            }
            else
            {
                inputLengthConstraint = settingsRepository.GetSmallInputLengthConstraint();
            }

            IDictionary <char, string> map     = letterMappingRepository.Get();
            IList <string>             outputs = new List <string>();
            int N = 0;

            for (int i = 1; i <= maxN && i < messages.Length; i++)
            {
                if (!String.IsNullOrEmpty(messages[i]))
                {
                    N++;
                    outputs.Add(String.Format(FormatStringResource.OutputMessage, N,
                                              stringService.GetT9Code(map, messages[i], largeInput, inputLengthConstraint)));
                }
            }

            return(outputs);
        }