private static DateTime?FindfirstCrumbDtm(AggregatedCrumData aggregatedTemperature, AggregatedCrumData aggregatedHumidty)
        {
            DateTime?firstCrumbDtm = null;

            if (aggregatedTemperature.FirstCrumbDtm.HasValue || aggregatedHumidty.LastCrumbDtm.HasValue)
            {
                if (!aggregatedTemperature.FirstCrumbDtm.HasValue)
                {
                    aggregatedTemperature.FirstCrumbDtm = DateTime.MaxValue;
                }

                if (!aggregatedHumidty.LastCrumbDtm.HasValue)
                {
                    aggregatedHumidty.LastCrumbDtm = DateTime.MinValue;
                }

                firstCrumbDtm = aggregatedTemperature.FirstCrumbDtm <= aggregatedHumidty.LastCrumbDtm ? aggregatedTemperature.FirstCrumbDtm : aggregatedHumidty.FirstCrumbDtm;
            }

            return(firstCrumbDtm);
        }
        public static Contracts.Models.TrackerData CreateTrakerData(
            Company company,
            NormilizedTracker tracker,
            AggregatedCrumData aggregatedTemperature,
            AggregatedCrumData aggregatedHumidty)
        {
            DateTime?firstCrumbDtm = FindfirstCrumbDtm(aggregatedTemperature, aggregatedHumidty);
            DateTime?lastCrumbDtm  = FindLastCrumbDtm(aggregatedTemperature, aggregatedHumidty);

            return(new Contracts.Models.TrackerData
            {
                CompanyId = company.CompanyId,
                CompanyName = company.CompanyName,
                TrackerId = tracker.TrackerId,
                TrackerName = tracker.TrackerName,
                FirstCrumbDtm = firstCrumbDtm,
                LastCrumbDtm = lastCrumbDtm,
                TempCount = aggregatedTemperature.CrumbCount,
                AvgTemp = aggregatedTemperature.AvgValue,
                HumidityCount = aggregatedHumidty.CrumbCount,
                AvgHumdity = aggregatedHumidty.AvgValue
            });
        }