Пример #1
0
        public JsonResult GetTodayGraphicAndToday()
        {
            PackageTodayGraphicAndPresent package = new PackageTodayGraphicAndPresent();
            DateTime    present           = DateTime.Now.Date;
            DateTime    endPresent        = present.AddDays(1);
            DateTime    nearestDate       = DateTime.Now.AddMinutes(-30);
            HistoryCard historyCard       = db.HistoryCards.FirstOrDefault(x => x.DateTime > nearestDate);
            var         historyCardsToday = db.HistoryCards
                                            .Where(x =>
                                                   x.DateTime > present)
                                            .ToList()
                                            .Select(card => new JsonTodayGraphic(card))
                                            .ToList();
            var forecastCardsToday = db.ForecastCards.Where(x =>
                                                            x.DateTime > present &&
                                                            x.DateTime < endPresent)
                                     .ToList()
                                     .Select(card => new JsonTodayGraphic(card))
                                     .ToList();

            if (historyCard != null)
            {
                package.Present = new JsonPresentCard(historyCard);
            }
            package.TodayGraphic = historyCardsToday.Concat(forecastCardsToday)
                                   .OrderBy(x => x.TimeHour)
                                   .ThenBy(y => y.TimeMin)
                                   .ToList();
            Response.AppendHeader("Access-Control-Allow-Origin", "*");
            return(Json(package, JsonRequestBehavior.AllowGet));
        }
 public void CheckHistoryCard(HistoryCard historyCard, HistoryCard card)
 {
     Assert.AreEqual(historyCard.Temperature, card.Temperature);
     Assert.AreEqual(historyCard.Humidity, card.Humidity);
     Assert.AreEqual(historyCard.Pressure, card.Pressure);
     Assert.AreEqual(historyCard.Radiation, card.Radiation);
     Assert.AreEqual(historyCard.WindDirection, card.WindDirection);
     Assert.AreEqual(historyCard.WindSpeed, card.WindSpeed);
     Assert.AreEqual(historyCard.Description, card.Description);
 }
        public void ParseInCard_FieldIsNull()
        {
            string      data        = "r:533|t:15.09|h:0|pt:19.43|p:983.65|g:10.60=r:470|t:15.08|h:84.22|pt:19.41|p:983.53|g:6.62=r:477|t:15.11|h:84.61|pt:19.41|p:983.61|g:21.19=";
            HistoryCard presentCard = new HistoryCard()
            {
                Temperature = 15, Humidity = 84.33f, Pressure = 983.6f, Radiation = 12.8f, Description = "-", WindDirection = "-", WindSpeed = 0
            };
            var card = ParserMeteoData.ParseInCard(data);

            CheckHistoryCard(presentCard, card);
        }
Пример #4
0
 public ActionResult MeteoData(string data)
 {
     //string data = "r:533|t:15.09|h:84.17|pt:19.43|p:983.65|g:10.60=r:470|t:15.08|h:84.22|pt:19.41|p:983.53|g:6.62=r:477|t:15.11|h:84.61|pt:19.41|p:983.61|g:21.19=";
     if (data != null)
     {
         HistoryCard historyCard = ParserMeteoData.ParseInCard(data);
         historyCard.DateTime = DateTime.Now;
         if (DataValidation.AllValidation(historyCard))
         {
             db.HistoryCards.Add(historyCard);
             db.SaveChanges();
         }
     }
     return(RedirectToAction("OpenWeatherData"));
 }
Пример #5
0
        public void AllValidation_CorrectHistoryCard()
        {
            HistoryCard card = new HistoryCard()
            {
                Temperature   = 15,
                Humidity      = 84.33f,
                Pressure      = 983.6f,
                Radiation     = 12.8f,
                Description   = "-",
                WindDirection = "NE",
                WindSpeed     = 23
            };

            Assert.IsTrue(DataValidation.AllValidation(card));
        }
Пример #6
0
        public static HistoryCard ParseInCard(string data)
        {
            string      pattern = @"r:[0-9]+\|t:([0-9]+|[0-9]+\.[0-9]+)\|h:([0-9]+|[0-9]+\.[0-9]+)\|pt:([0-9]+|[0-9]+\.[0-9]+)\|p:([0-9]+|[0-9]+\.[0-9]+)\|g:([0-9]+|[0-9]+\.[0-9]+)=";
            string      measurement, field;
            int         countMeasurementTemperature = 0, countMeasurementHumidity = 0, countMeasurementPressure = 0, countMeasurementRadiation = 0;
            HistoryCard presentCard = new HistoryCard()
            {
                Temperature = 0, Humidity = 0, Pressure = 0, Radiation = 0
            };
            Regex regexPackage     = new Regex(pattern);
            Regex regexTemperature = new Regex(@"t:([0-9]+\.[0-9]+|[0-9]+)");
            Regex regexHumidity    = new Regex(@"h:([0-9]+\.[0-9]+|[0-9]+)");
            Regex regexPressure    = new Regex(@"p:([0-9]+\.[0-9]+|[0-9]+)");
            Regex regexRadiation   = new Regex(@"g:([0-9]+\.[0-9]+|[0-9]+)");
            Match match            = regexPackage.Match(data);

            while (match.Success)
            {
                measurement              = match.Value;
                field                    = regexTemperature.Match(measurement).Value.Remove(0, 2);
                presentCard.Temperature += (int)Convert.ToSingle(field, new CultureInfo("en-US"));
                field                    = regexHumidity.Match(measurement).Value.Remove(0, 2);
                presentCard.Humidity    += Convert.ToSingle(field, new CultureInfo("en-US"));
                field                    = regexPressure.Match(measurement).Value.Remove(0, 2);
                presentCard.Pressure    += Convert.ToSingle(field, new CultureInfo("en-US"));
                field                    = regexRadiation.Match(measurement).Value.Remove(0, 2);
                presentCard.Radiation   += Convert.ToSingle(field, new CultureInfo("en-US"));
                match                    = match.NextMatch();
                countMeasurementHumidity++;
            }
            presentCard.Temperature  /= countMeasurementHumidity;
            presentCard.Humidity      = (float)Math.Round(presentCard.Humidity / countMeasurementHumidity, 2);
            presentCard.Pressure      = (float)Math.Round(presentCard.Pressure / countMeasurementHumidity, 2);
            presentCard.Radiation     = (float)Math.Round(presentCard.Radiation / countMeasurementHumidity, 2);
            presentCard.Description   = "-";
            presentCard.WindDirection = "-";
            presentCard.WindSpeed     = 0;
            HistoryCard card = new HistoryCard()
            {
                Temperature = 15, Humidity = 84.33f, Pressure = 983.6f, Radiation = 12.8f
            };

            presentCard.Description   = "-";
            presentCard.WindDirection = "-";
            presentCard.WindSpeed     = 0;
            return(presentCard);
        }
Пример #7
0
 public static bool AllValidation(HistoryCard historyCard)
 {
     if (historyCard == null)
     {
         return(false);
     }
     if (TemperatureValidation(historyCard.Temperature) &&
         HumidityValidation(historyCard.Humidity) &&
         PressureValidation(historyCard.Pressure) &&
         RadiationValidation(historyCard.Radiation) &&
         WindDirectionValidation(historyCard.WindDirection) &&
         DescriptionValidation(historyCard.Description))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #8
0
        public void AllValidation_HistoryCardIsNull()
        {
            HistoryCard card = null;

            Assert.IsFalse(DataValidation.AllValidation(card));
        }