Example #1
0
        private void LoadCorrectList(ConfigField configParam, TobaccoData dataToAdd)
        {
            switch (configParam)
            {
            case ConfigField.CSMOKER:
                ValidCSMOKERDataList.Add(dataToAdd);
                break;

            case ConfigField.CTOB:
                ValidCTOBDataList.Add(dataToAdd);
                break;

            case ConfigField.OTOB:
                ValidOTOBDataList.Add(dataToAdd);
                break;

            default:
                throw new InvalidDataException("Unkown config parameter " + configParam);
                break;
            }
        }
Example #2
0
        public TobaccoData Parse(string variableName)
        {
            try
            {
                string startSearchCriteria = "Analysis Variable" + " " + variableName + " ";
                string endSearchCriteria   = "n ";


                int startIndex = 0;
                int endIndex   = 0;

                var allInputData = File.ReadAllLines(InputFile);
                foreach (var lineItem in allInputData)
                {
                    if (lineItem.TrimStart().Contains(startSearchCriteria))
                    {
                        startIndex = Array.IndexOf(allInputData, lineItem);
                    }
                    if (lineItem.TrimStart().StartsWith(endSearchCriteria))
                    {
                        endIndex = Array.IndexOf(allInputData, lineItem);
                    }

                    if (startIndex > 0 && endIndex > 0 && endIndex > startIndex)
                    {
                        break;
                    }
                }

                var allDataSubset = allInputData.Skip(startIndex).Take(endIndex - startIndex + 1).ToArray();
                foreach (var lineItem in allDataSubset)
                {
                    if (lineItem.TrimStart().Contains("%"))
                    {
                        startIndex = Array.IndexOf(allDataSubset, lineItem);
                        break;
                    }
                }
                var     linesWorthProcessing = allDataSubset.Skip(startIndex).ToArray();
                var     percentData          = linesWorthProcessing[0].Trim().Substring(10).Replace("     ", "|").Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                var     lower95Data          = linesWorthProcessing[3].Trim().Substring(10).Replace("     ", "|").Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                var     upper95Data          = linesWorthProcessing[6].Trim().Substring(10).Replace("     ", "|").Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                var     nData = linesWorthProcessing[8].Trim().Substring(10).Replace("    ", "|").Replace(",", "").Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                decimal tryParseOutDecimal;
                int     tryParseOutInt;
                var     rtnTobaccoData = new TobaccoData
                {
                    Country       = CountryConfigVariable.Country,
                    Year          = CountryConfigVariable.Year,
                    PercentTotal  = System.Decimal.TryParse(percentData[0], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    PercentMale   = System.Decimal.TryParse(percentData[1], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    PercentFemale = System.Decimal.TryParse(percentData[2], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    Percent13     = System.Decimal.TryParse(percentData[3], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    Percent14     = System.Decimal.TryParse(percentData[4], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    Percent15     = System.Decimal.TryParse(percentData[5], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,

                    LowerNintyFivePercentTotal  = System.Decimal.TryParse(lower95Data[0], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    LowerNintyFivePercentMale   = System.Decimal.TryParse(lower95Data[1], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    LowerNintyFivePercentFemale = System.Decimal.TryParse(lower95Data[2], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    LowerNintyFivePercent13     = System.Decimal.TryParse(lower95Data[3], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    LowerNintyFivePercent14     = System.Decimal.TryParse(lower95Data[4], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    LowerNintyFivePercent15     = System.Decimal.TryParse(lower95Data[5], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,

                    UpperNintyFivePercentTotal  = System.Decimal.TryParse(upper95Data[0], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    UpperNintyFivePercentMale   = System.Decimal.TryParse(upper95Data[1], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    UpperNintyFivePercentFemale = System.Decimal.TryParse(upper95Data[2], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    UpperNintyFivePercent13     = System.Decimal.TryParse(upper95Data[3], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    UpperNintyFivePercent14     = System.Decimal.TryParse(upper95Data[4], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,
                    UpperNintyFivePercent15     = System.Decimal.TryParse(upper95Data[5], out tryParseOutDecimal) ? (decimal?)tryParseOutDecimal : null,

                    TotalN  = System.Int32.TryParse(nData[0], out tryParseOutInt) ? (int?)tryParseOutInt : null,
                    NMale   = System.Int32.TryParse(nData[1], out tryParseOutInt) ? (int?)tryParseOutInt : null,
                    NFemale = System.Int32.TryParse(nData[2], out tryParseOutInt) ? (int?)tryParseOutInt : null,
                    N13     = System.Int32.TryParse(nData[3], out tryParseOutInt) ? (int?)tryParseOutInt : null,
                    N14     = System.Int32.TryParse(nData[4], out tryParseOutInt) ? (int?)tryParseOutInt : null,
                    N15     = System.Int32.TryParse(nData[5], out tryParseOutInt) ? (int?)tryParseOutInt : null,
                };
                if (!rtnTobaccoData.PercentTotal.HasValue || !rtnTobaccoData.PercentMale.HasValue ||
                    !rtnTobaccoData.PercentFemale.HasValue || !rtnTobaccoData.Percent13.HasValue ||
                    !rtnTobaccoData.Percent14.HasValue || !rtnTobaccoData.Percent15.HasValue ||

                    !rtnTobaccoData.LowerNintyFivePercentTotal.HasValue || !rtnTobaccoData.LowerNintyFivePercentMale.HasValue ||
                    !rtnTobaccoData.LowerNintyFivePercentFemale.HasValue || !rtnTobaccoData.LowerNintyFivePercent13.HasValue ||
                    !rtnTobaccoData.LowerNintyFivePercent14.HasValue || !rtnTobaccoData.LowerNintyFivePercent15.HasValue ||

                    !rtnTobaccoData.UpperNintyFivePercentTotal.HasValue || !rtnTobaccoData.UpperNintyFivePercentMale.HasValue ||
                    !rtnTobaccoData.UpperNintyFivePercentFemale.HasValue || !rtnTobaccoData.UpperNintyFivePercent13.HasValue ||
                    !rtnTobaccoData.UpperNintyFivePercent14.HasValue || !rtnTobaccoData.UpperNintyFivePercent15.HasValue ||

                    !rtnTobaccoData.TotalN.HasValue || !rtnTobaccoData.NMale.HasValue ||
                    !rtnTobaccoData.NFemale.HasValue || !rtnTobaccoData.N13.HasValue ||
                    !rtnTobaccoData.N14.HasValue || !rtnTobaccoData.N15.HasValue)
                {
                    Status = ParseStatus.SuccessWithNulls;
                }
                else
                {
                    Status = ParseStatus.Sucess;
                }

                return(rtnTobaccoData);
            }
            catch (Exception)
            {
                Status = ParseStatus.Error;
                return(new TobaccoData());
            }
        }