コード例 #1
0
        static string CalculateCheapestMonth(ListNodes<Residents> residentsListNodes, ListNodes<Utilities> utilitiesListNodes)
        {
            var cheapestMonth = new Dictionary<string, Dictionary<string, double>>();
            var cheapestMonthListNodes = new ListNodes<CheapestMonth>();
            var temp = residentsListNodes;
            for (residentsListNodes.StartingNode(); residentsListNodes.Contains(); residentsListNodes.RightNode())
            {
                if (cheapestMonth.ContainsKey(residentsListNodes.GetData().Month))
                {
                    if (cheapestMonth[residentsListNodes.GetData().Month].ContainsKey(residentsListNodes.GetData().UtilityCode))
                    {

                        cheapestMonth[residentsListNodes.GetData().Month][residentsListNodes.GetData().UtilityCode] +=
                            FindUtilityPrice(utilitiesListNodes, residentsListNodes.GetData().UtilityCode) * residentsListNodes.GetData().ServiceCount;
                    }
                    else
                    {
                        cheapestMonth[residentsListNodes.GetData().Month].Add(
                       residentsListNodes.GetData().UtilityCode,
                       FindUtilityPrice(utilitiesListNodes, residentsListNodes.GetData().UtilityCode) * residentsListNodes.GetData().ServiceCount
                       );
                    }
                }
                else
                {
                    cheapestMonth.Add(residentsListNodes.GetData().Month, new Dictionary<string, double>());
                    cheapestMonth[residentsListNodes.GetData().Month].Add(
                        residentsListNodes.GetData().UtilityCode,
                        FindUtilityPrice(utilitiesListNodes, residentsListNodes.GetData().UtilityCode) * residentsListNodes.GetData().ServiceCount
                        );
                }
            }

            foreach (KeyValuePair<string, Dictionary<string, double>> item in cheapestMonth)
            {
                foreach (KeyValuePair<string, double> utility in cheapestMonth[item.Key])
                {
                    cheapestMonthListNodes.AddData(new CheapestMonth(item.Key, utility.Key, utility.Value));
                }
            }

            var cheapestMonthUtility = cheapestMonthListNodes.OrderBy(x => x.Price).FirstOrDefault();

            for (utilitiesListNodes.StartingNode(); utilitiesListNodes.Contains(); utilitiesListNodes.RightNode())
            {
                if (cheapestMonthUtility.UtilityCode == utilitiesListNodes.GetData().ServiceCode)
                {
                    cheapestMonthUtility.UtilityCode = utilitiesListNodes.GetData().ServiceName;
                }
            }
            if (cheapestMonthUtility != null)
            {
                return $"{cheapestMonthUtility.Month} mėnesį {cheapestMonthUtility.UtilityCode} kainavo pigiausiai";
            }
            return "Nerasta";
        }
コード例 #2
0
        static ListNodes<Residents> FilterResidentsByMoneySpent(ListNodes<Residents> residentsListNodes)
        {
            var filteredResidents = new ListNodes<Residents>();
            var averageMoneySpent = CalculateResidentsAverageMoneySpent(residentsListNodes);

            for (residentsListNodes.StartingNode(); residentsListNodes.Contains(); residentsListNodes.RightNode())
            {
                if (averageMoneySpent > residentsListNodes.GetData().MoneySpent)
                {
                    filteredResidents.AddData(residentsListNodes.GetData());
                }
            }

            return filteredResidents;
        }
コード例 #3
0
        ListNodes<Utilities> ReadUtilitiesData(Stream file)
        {
            var utilitiesListNodes = new ListNodes<Utilities>();
            using (var reader = new StreamReader(file))
            {
                var line = reader.ReadLine();
                while (line != null)
                {
                    var values = line.Split(' ');
                    var serviceCode = values[0];
                    var serviceName = values[1];
                    var serviceUnitPrice = double.Parse(values[2]);
                    utilitiesListNodes.AddData(new Utilities(serviceCode, serviceName, serviceUnitPrice));
                    line = reader.ReadLine();
                }
            }

            return utilitiesListNodes;
        }
コード例 #4
0
        ListNodes<Residents> ReadResidentsData(Stream file)
        {
            var residentsListNodes = new ListNodes<Residents>();

            using (var reader = new StreamReader(file))
            {
                var line = reader.ReadLine();
                while (line != null)
                {
                    var values = line.Split(' ');
                    var surname = values[0];
                    var name = values[1];
                    var address = values[2];
                    var month = values[3];
                    var utilityCode = values[4];
                    var serviceCount = int.Parse(values[5]);
                    residentsListNodes.AddData(new Residents(surname, name, address, month, utilityCode, serviceCount));
                    line = reader.ReadLine();
                }
            }

            return residentsListNodes;
        }