static void Main()
        {
            var input = Console.ReadLine().Split(new string[] { " -> ", " | " }, StringSplitOptions.RemoveEmptyEntries).ToList();
            Dictionary <string, Dictionary <int, string> >   data  = new Dictionary <string, Dictionary <int, string> >();
            KeyValuePair <string, Dictionary <int, string> > cache = new KeyValuePair <string, Dictionary <int, string> >();

            while (input[0] != "thetinggoesskrra")
            {
                if (input.Count == 1)
                {
                    string dataSet = input[0];
                    if (!data.ContainsKey(dataSet))
                    {
                        data.Add(dataSet, new Dictionary <int, string>());
                        if (cache.Key == dataSet)
                        {
                            Dictionary <int, string> size = cache.Value;
                            data[dataSet] = size;
                        }
                    }
                }
                else
                {
                    string dataSet  = input[2];
                    int    dataSize = int.Parse(input[1]);
                    string dataKey  = input[0];

                    if (!data.ContainsKey(dataSet))
                    {
                        cache.Add(dataSet, dataKey);
                        cache.Add(dataSet, new Dictionary <int, string>());
                        cache[dataSet][dataSize] = dataKey;
                    }
                    else
                    {
                        data[dataSet][dataSize] = dataKey;
                    }
                }

                input = Console.ReadLine().Split(new string[] { " -> ", " | " }, StringSplitOptions.RemoveEmptyEntries).ToList();
            }

            foreach (var dataSet in data.OrderByDescending(x => x.Value.Keys.Sum()))
            {
                Console.WriteLine($"Data Set: {dataSet.Key}, Total Size: {dataSet.Value.Keys.Sum()}");
                foreach (var dataKey in dataSet.Value)
                {
                    Console.WriteLine($"$.{dataKey.Value}");
                }
                break;
            }
        }
Esempio n. 2
0
 public QueryParameterCollection(string queryString, IEqualityComparer <string> keyComparer)
 {
     _keyComparer     = keyComparer ?? StringComparer.InvariantCulture;
     _innerDictionary = new Dictionary <string, List <KeyValuePair> >(_keyComparer);
     if (string.IsNullOrEmpty(queryString))
     {
         return;
     }
     foreach (string kvp in queryString.Split('='))
     {
         KeyValuePair.Add(this, new KeyValuePair(kvp, true));
     }
 }
Esempio n. 3
0
        private static int[] FindTwoSum(int[] nums, int target)
        {
            int[] result = new int[2];

            if (nums.Length == 0 || target == 0)
            {
                return(result);
            }

            // 4 2 3
            // target = 6
            //keyPairs[4] = 0
            //keyPairs[2] = 1
            //keyPairs[3] = 2

            KeyValuePair <int, int> keyPairs = new KeyValuePair <int, int>();

            for (int index = 0; index < nums.Length; index++)
            {
                try
                {
                    keyPairs.Add(nums[index], index);
                }
                catch (ArgumentException ex)
                {
                    throw new Exception("Invalid input array");
                }
            }

            for (int index = 0; index < nums.Length; index++)
            {
                int temp;

                if (keyPairs.TryGetValue(target - nums[index], out temp))
                {
                    if (index == temp)
                    {
                        continue;
                    }

                    result[0] = index;
                    result[1] = temp;

                    break;
                }
            }

            return(result);
        }
        /// <summary>
        /// Generates the json files.
        /// </summary>
        /// <param name="section">The section.</param>
        private void GenerateJsonFiles(string section)
        {
            try
            {
                // Setup the base parameters being passed in.
                KeyValuePair <string, object>[] baseOptions = new KeyValuePair <string, object>[]
                {
                    new KeyValuePair <string, object>("@ReportID", ReportID),
                };

                string sectionStart = "Utilization Region - Output {0} Data - Starting generation of output files by {1}";
                string sectionEnd   = "Utilization Region - Output {0} Data - Generated output files by {1} in {2:c}";

                // Reset the timer in the base file that tracks the json conversion and file write time.
                FileIOTime = TimeSpan.Zero;

                TimeSpan elapsedTime;
                DateTime groupStartAll = DateTime.Now;

                // Generate the main json files

                #region DRG Output
                // Output the two DRG sections
                if (section == "DRG")
                {
                    LogMessage(string.Format(sectionStart, "DRG", "clinical dimension"));
                    elapsedTime = GenerateUtilizationJsonFileCombinations(DRGDataDir, "DRG/DRG_", jsonDomain, "spUtilRegionGetSummaryDataByClinical", "spUtilRegionGetDetailData",
                                                                          baseOptions.Add(new KeyValuePair <string, object>("@UtilTypeID", 1)), DRGList, "@UtilID", "Id", RegionList, "@RegionID", "RegionID");
                    Logger.Write(string.Format(sectionEnd, "DRG", "clinical dimension", elapsedTime));

                    LogMessage(string.Format(sectionStart, "DRG", "region"));
                    elapsedTime = GenerateUtilizationJsonFileCombinations(DRGHospitalRegionsDataDir, "Region_", jsonDomain, "spUtilRegionGetSummaryDataByGeo", "spUtilRegionGetDetailData",
                                                                          baseOptions.Add(new KeyValuePair <string, object>("@UtilTypeID", 1)), RegionList, "@RegionID", "RegionID", DRGList, "@UtilID", "Id");
                    Logger.Write(string.Format(sectionEnd, "DRG", "clinical dimension", elapsedTime));
                }
                #endregion DRG Output

                #region MDC Output
                // Output the two MDC sections
                if (section == "MDC")
                {
                    LogMessage(string.Format(sectionStart, "MDC", "clinical dimension"));
                    elapsedTime = GenerateUtilizationJsonFileCombinations(MDCDataDir, "MDC/MDC_", jsonDomain, "spUtilRegionGetSummaryDataByClinical", "spUtilRegionGetDetailData",
                                                                          baseOptions.Add(new KeyValuePair <string, object>("@UtilTypeID", 2)), MDCList, "@UtilID", "Id", RegionList, "@RegionID", "RegionID");
                    Logger.Write(string.Format(sectionEnd, "MDC", "clinical dimension", elapsedTime));

                    LogMessage(string.Format(sectionStart, "MDC", "region"));
                    elapsedTime = GenerateUtilizationJsonFileCombinations(MDCHospitalRegionsDataDir, "Region_", jsonDomain, "spUtilRegionGetSummaryDataByGeo", "spUtilRegionGetDetailData",
                                                                          baseOptions.Add(new KeyValuePair <string, object>("@UtilTypeID", 2)), RegionList, "@RegionID", "RegionID", MDCList, "@UtilID", "Id");
                    Logger.Write(string.Format(sectionEnd, "MDC", "clinical dimension", elapsedTime));
                }
                #endregion MDC Output

                #region CCS Output
                // Output the two CCS sections
                if (section == "DXCCS")
                {
                    LogMessage(string.Format(sectionStart, "DXCCS", "clinical dimension"));
                    elapsedTime = GenerateUtilizationJsonFileCombinations(CCSDataDir, "CCS/CCS_", jsonDomain, "spUtilRegionGetSummaryDataByClinical", "spUtilRegionGetDetailData",
                                                                          baseOptions.Add(new KeyValuePair <string, object>("@UtilTypeID", 3)), CCSList, "@UtilID", "Id", RegionList, "@RegionID", "RegionID");
                    Logger.Write(string.Format(sectionEnd, "DXCCS", "clinical dimension", elapsedTime));

                    LogMessage(string.Format(sectionStart, "DXCCS", "region"));
                    elapsedTime = GenerateUtilizationJsonFileCombinations(CCSHospitalRegionsDataDir, "Region_", jsonDomain, "spUtilRegionGetSummaryDataByGeo", "spUtilRegionGetDetailData",
                                                                          baseOptions.Add(new KeyValuePair <string, object>("@UtilTypeID", 3)), RegionList, "@RegionID", "RegionID", CCSList, "@UtilID", "Id");
                    Logger.Write(string.Format(sectionEnd, "DXCCS", "clinical dimension", elapsedTime));
                }
                #endregion CCS Output

                #region PRCCS Output
                // Output the two PRCCS sections
                if (section == "PRCCS")
                {
                    LogMessage(string.Format(sectionStart, "PRCCS", "clinical dimension"));
                    elapsedTime = GenerateUtilizationJsonFileCombinations(PRCCSDataDir, "PRCCS/PRCCS_", jsonDomain, "spUtilRegionGetSummaryDataByClinical", "spUtilRegionGetDetailData",
                                                                          baseOptions.Add(new KeyValuePair <string, object>("@UtilTypeID", 4)), PRCCSList, "@UtilID", "Id", RegionList, "@RegionID", "RegionID");
                    Logger.Write(string.Format(sectionEnd, "PRCCS", "clinical dimension", elapsedTime));

                    LogMessage(string.Format(sectionStart, "PRCCS", "region"));
                    elapsedTime = GenerateUtilizationJsonFileCombinations(PRCCSHospitalRegionsDataDir, "Region_", jsonDomain, "spUtilRegionGetSummaryDataByGeo", "spUtilRegionGetDetailData",
                                                                          baseOptions.Add(new KeyValuePair <string, object>("@UtilTypeID", 4)), RegionList, "@RegionID", "RegionID", PRCCSList, "@UtilID", "Id");
                    Logger.Write(string.Format(sectionEnd, "PRCCS", "clinical dimension", elapsedTime));
                }
                #endregion PRCCS Output

                // Log the total time.
                TimeSpan groupTimeDiffAll = DateTime.Now - groupStartAll;
                Logger.Write(string.Format("Utilization Region - Output {0} Data - Generated output files in {1:c}", section, groupTimeDiffAll));
                Logger.Write(string.Format("Utilization Region - Output {0} Data - Total file IO time was {1:c}", section, FileIOTime));
            }
            catch (Exception ex)
            {
                Logger.Write(ex);
            }
        }