Пример #1
0
        public void PredictSeaLevelUsingCalculatedHeight(TideViewModel tideViewModel)
        {
            double MeanTideLevelOfSelectedRegion          = double.Parse(tideViewModel.MeanTideLevelOfSelectedRegion.ToString());
            double MeanLowerLowWaterLevelOfSelectedRegion = double.Parse(tideViewModel.MeanLowerLowWaterLevelForSelectedRegion.ToString());

            MeanTideLevelOfSelectedRegion -= MeanLowerLowWaterLevelOfSelectedRegion;
            SeaLevel = PredictedTideHeight - MeanTideLevelOfSelectedRegion;
            tideViewModel.SeaLevelCalculated = SeaLevel;
        }
Пример #2
0
        public DateTime GetDateTimeToEnterIntoDb(TideViewModel tideViewModel)
        {
            DateTime DateToEnterIntoDB = new DateTime();
            string   time = SelectedYear + GetGivenTimeTwoDigitTimeValue(tideViewModel.MonthOfTide.ToString()) + GetGivenTimeTwoDigitTimeValue(tideViewModel.DayOfTide.ToString()) + tideViewModel.TimeOfTide.ToString();

            // string time = "2017" + "01" + "01"+ 12+54;
            DateToEnterIntoDB = DateTime.ParseExact(time, "yyyyMMddHHmm", CultureInfo.InvariantCulture, DateTimeStyles.None);
            return(DateToEnterIntoDB);
        }
Пример #3
0
        //public HulhuleTide GetQueryToLoadLastTideDataOfPrecedingDayToDatatableForHulhumale(DateTime PreviousDayInShortDateFormAndDateFormat, DateTime SelectedDayInShortDateFormAndDateFormat))
        //{
        //HulhuleTide query = (from t in _db.HulhuleTides
        //                 where t.HulhuleTideDateTime > PreviousDayInShortDateFormAndDateFormat && t.HulhuleTideDateTime < SelectedDayInShortDateFormAndDateFormat
        //                 orderby t.HulhuleTideDateTime
        //                 select t).Last();
        //return query;

        //}


        public void RecordDatesNeededToSearchCorrectTideTime(TideViewModel tide)
        {
            SelectedDatetimeForTidePrediction = tide.TideDateTime;
            SelectedDatetimeForTidePrediction = new DateTime(
                SelectedDatetimeForTidePrediction.Ticks -
                (SelectedDatetimeForTidePrediction.Ticks
                 % TimeSpan.TicksPerMinute),
                SelectedDatetimeForTidePrediction.Kind);

            PrecedingDaysDateTime = GetPrecedingDaysDate(SelectedDatetimeForTidePrediction);
            FollowingDaysDateTime = GetFollowingDaysDate(SelectedDatetimeForTidePrediction);
        }
Пример #4
0
        public IActionResult Index(Tide tide)
        {
            var model = new TideViewModel
            {
                TideId = tide.TideId,
                InumerableOfHulhuleTidesObj     = _db.HulhuleTides.ToList().OrderByDescending(s => s.HulhuleTideId).Take(5),
                InumerableOfHanimaadhooTidesObj = _db.HanimaadhooTides.ToList().OrderByDescending(s => s.HanimaadhooTideId).Take(5),
                InumerableOfGanTidesObj         = _db.GanTides.ToList().OrderByDescending(s => s.GanTideId).Take(5),
                ListOfTideStations = _db.TideStations.ToList(),
                FeedbackMessage    = FeedbackMessage
            };

            return(View(model));
        }
Пример #5
0
 public void SetDateInTideObjInModelView(TideViewModel tideViewModel, DateTime DateToEnterToDb)
 {
     if (tideViewModel.TideStationSelected == "1")
     {
         tideViewModel.NewHulhuleTideObj.HulhuleTideDateTime = DateToEnterToDb;
     }
     else if (tideViewModel.TideStationSelected == "2")
     {
         tideViewModel.NewHanimaadhooTideObj.HanimaadhooTideDateTime = DateToEnterToDb;
     }
     else if (tideViewModel.TideStationSelected == "3")
     {
         tideViewModel.NewGanTideObj.GanTideDateTime = DateToEnterToDb;
     }
 }
Пример #6
0
 public void SetTideHeightInTideObjInModelView(TideViewModel tideViewModel)
 {
     if (tideViewModel.TideStationSelected == "1")
     {
         tideViewModel.NewHulhuleTideObj.HulhuleTideHeight = tideViewModel.TideHeightForDataEntry;
     }
     else if (tideViewModel.TideStationSelected == "2")
     {
         tideViewModel.NewHanimaadhooTideObj.HanimaadhooTideHeight = tideViewModel.TideHeightForDataEntry;
     }
     else if (tideViewModel.TideStationSelected == "3")
     {
         tideViewModel.NewGanTideObj.GanTideHeight = tideViewModel.TideHeightForDataEntry;
     }
 }
Пример #7
0
 public double SetLowWaterLevelForSelectedSatation(TideViewModel tide)
 {
     if (tide.TideStationSelected == "1")
     {
         return(1.532);
     }
     else if (tide.TideStationSelected == "2")
     {
         return(0.652);
     }
     else if (tide.TideStationSelected == "3")
     {
         return(1.159);
     }
     return(0);
 }
Пример #8
0
 public double SetMeanTideLevelForSelectedSatation(TideViewModel tide)
 {
     if (tide.TideStationSelected == "1")
     {
         return(1.892);
     }
     else if (tide.TideStationSelected == "2")
     {
         return(1.051);
     }
     else if (tide.TideStationSelected == "3")
     {
         return(1.573);
     }
     return(0);
 }
Пример #9
0
        ////GET// TIDES
        //public IActionResult Index(Tide tide)
        //{

        //    return View(tide);
        //}

        //GET// TIDES
        public IActionResult Index(Tide tide)
        {
            var model = new TideViewModel
            {
                TideId       = tide.TideId,
                TideDateTime = tide.TideDateTime,
                TideLevel    = tide.TideLevel,
                TideHeight   = tide.TideHeight,
                MeanLowerLowWaterLevelForSelectedRegion = 2,
                ListOfTideStations = _db.TideStations.ToList(),
                //TideStationSelected = "Hulhule",
            };

            return(View(model));


            //return View();
        }
Пример #10
0
 public void RecordTidePropertiesForCalculation(TideViewModel tide)
 {
     //foreach (var row in DatatableContainingTideDataOfNeededDates.Rows)
     //{
     for (int i = 1; i < DatatableContainingTideDataOfNeededDates.Rows.Count; i++)
     {
         DateTime FirstDatetimeValue  = DateTime.Parse(DatatableContainingTideDataOfNeededDates.Rows[i - 1][1].ToString());
         DateTime SecondDatetimeValue = DateTime.Parse(DatatableContainingTideDataOfNeededDates.Rows[i][1].ToString());
         if (SelectedDatetimeForTidePrediction > FirstDatetimeValue && SelectedDatetimeForTidePrediction < SecondDatetimeValue)
         {
             FirstTideHeightNeededForCalculation  = double.Parse(DatatableContainingTideDataOfNeededDates.Rows[i - 1][2].ToString());
             SecondTideHeightNeededForCalculation = double.Parse(DatatableContainingTideDataOfNeededDates.Rows[i][2].ToString());
             FirstTideTimeNeededForCalculation    = FirstDatetimeValue;
             SecondTideTimetNeededForCalculation  = SecondDatetimeValue;
         }
     }
     tide.MeanTideLevelOfSelectedRegion           = SetMeanTideLevelForSelectedSatation(tide);
     tide.MeanLowerLowWaterLevelForSelectedRegion = SetLowWaterLevelForSelectedSatation(tide);
 }
Пример #11
0
        public async Task <IActionResult> CalculateTide(TideViewModel tideViewModel)
        {
            //Get the data of the date and time entered. // Done
            DateTime date = new DateTime();

            date = tideViewModel.TideDateTime;
            //Get all the necessary data from the db to make calculation
            int tideIdGienByUser = tideViewModel.TideId;
            var TideDataFromDb   = await _db.Tides.SingleOrDefaultAsync(u => u.TideDateTime == tideViewModel.TideDateTime);

            //Make Calculation
            //return view of POST//CalculateTide with the data
            //set up view of POST//CalculateTide to display data. Must have a back button to return to index
            RecordDatesNeededToSearchCorrectTideTime(tideViewModel);
            LoadTideDataOfSelectedAndNeighbouringDays(tideViewModel);
            RecordTidePropertiesForCalculation(tideViewModel);
            PredictTideHeightForGivenTime();
            PredictSeaLevelUsingCalculatedHeight(tideViewModel);
            //  return RedirectToAction(nameof(Index));
            return(View(tideViewModel));
        }
Пример #12
0
        public void LoadLastTideDataOfPrecedingDayToDatatable(TideViewModel tide)
        {
            DateTime PreviousDayInShortDateFormAndDateFormat = DateTime.Parse(PrecedingDaysDateTime.ToShortDateString());
            DateTime SelectedDayInShortDateFormAndDateFormat = DateTime.Parse(SelectedDatetimeForTidePrediction.ToShortDateString());

            //var query = (from t in _db.Tides
            //             where t.TideDateTime > PreviousDayInShortDateFormAndDateFormat && t.TideDateTime < SelectedDayInShortDateFormAndDateFormat
            //             orderby t.TideDateTime
            //             select t).Last();
            if (tide.TideStationSelected == "1")
            {
                var query = (from t in _db.HulhuleTides
                             where t.HulhuleTideDateTime > PreviousDayInShortDateFormAndDateFormat && t.HulhuleTideDateTime < SelectedDayInShortDateFormAndDateFormat
                             orderby t.HulhuleTideDateTime
                             select t).Last();
                var row = DatatableContainingTideDataOfNeededDates.NewRow();
                row[0] = query.HulhuleTideId.ToString();
                row[1] = query.HulhuleTideDateTime.ToString();
                row[2] = query.HulhuleTideHeight.ToString();
                //row["HulhuleTideLevel"] = query.HulhuleTideLevel.ToString();
                DatatableContainingTideDataOfNeededDates.Rows.Add(row);
            }
            else if (tide.TideStationSelected == "2")
            {
                var query = (from t in _db.HanimaadhooTides
                             where t.HanimaadhooTideDateTime > PreviousDayInShortDateFormAndDateFormat && t.HanimaadhooTideDateTime < SelectedDayInShortDateFormAndDateFormat
                             orderby t.HanimaadhooTideDateTime
                             select t).Last();
                var row = DatatableContainingTideDataOfNeededDates.NewRow();
                row[0] = query.HanimaadhooTideId.ToString();
                row[1] = query.HanimaadhooTideDateTime.ToString();
                row[2] = query.HanimaadhooTideHeight.ToString();
                //row["HulhuleTideLevel"] = query.HulhuleTideLevel.ToString();
                DatatableContainingTideDataOfNeededDates.Rows.Add(row);
            }
            else
            {
                var query = (from t in _db.GanTides
                             where t.GanTideDateTime > PreviousDayInShortDateFormAndDateFormat && t.GanTideDateTime < SelectedDayInShortDateFormAndDateFormat
                             orderby t.GanTideDateTime
                             select t).Last();
                var row = DatatableContainingTideDataOfNeededDates.NewRow();
                row[0] = query.GanTideId.ToString();
                row[1] = query.GanTideDateTime.ToString();
                row[2] = query.GanTideHeight.ToString();
                //row["HulhuleTideLevel"] = query.HulhuleTideLevel.ToString();
                DatatableContainingTideDataOfNeededDates.Rows.Add(row);
            }

            //var row = DatatableContainingTideDataOfNeededDates.NewRow();
            //row["TideId"] = query.TideId.ToString();
            //row["TideDateTime"] = query.TideDateTime.ToString();
            //row["TideHeight"] = query.TideHeight.ToString();
            //row["TideLevel"] = query.TideLevel.ToString();
            //DatatableContainingTideDataOfNeededDates.Rows.Add(row);

            ////Testing
            //List<string> asdad = new List<string>();
            //for (int i = 0; i <= DatatableContainingTideDataOfNeededDates.Rows.Count - 1; i++)
            //{
            //    asdad.Add(DatatableContainingTideDataOfNeededDates.Rows[i][3].ToString());
            //}
            //int test = 0;
        }
Пример #13
0
        public void LoadTideDataOfSearchedDayToDatatable(TideViewModel tide)
        {
            DateTime PreviousDayInShortDateFormAndDateFormat  = DateTime.Parse(PrecedingDaysDateTime.ToShortDateString());
            DateTime SelectedDayInShortDateFormAndDateFormat  = DateTime.Parse(SelectedDatetimeForTidePrediction.ToShortDateString());
            DateTime FollowingDayInShortDateFormAndDateFormat = DateTime.Parse(FollowingDaysDateTime.ToShortDateString());

            if (tide.TideStationSelected == "1")
            {
                var query = from t in _db.HulhuleTides
                            where t.HulhuleTideDateTime > SelectedDayInShortDateFormAndDateFormat && t.HulhuleTideDateTime < FollowingDayInShortDateFormAndDateFormat
                            orderby t.HulhuleTideDateTime
                            select t;
                foreach (var element in query)
                {
                    var row = DatatableContainingTideDataOfNeededDates.NewRow();
                    row[0] = element.HulhuleTideId.ToString();
                    row[1] = element.HulhuleTideDateTime.ToString();
                    row[2] = element.HulhuleTideHeight.ToString();
                    //   row["HulhuleTideLevel"] = element.HulhuleTideLevel.ToString();
                    DatatableContainingTideDataOfNeededDates.Rows.Add(row);
                }
            }
            else if (tide.TideStationSelected == "2")
            {
                var query = from t in _db.HanimaadhooTides
                            where t.HanimaadhooTideDateTime > SelectedDayInShortDateFormAndDateFormat && t.HanimaadhooTideDateTime < FollowingDayInShortDateFormAndDateFormat
                            orderby t.HanimaadhooTideDateTime
                            select t;
                foreach (var element in query)
                {
                    var row = DatatableContainingTideDataOfNeededDates.NewRow();
                    row[0] = element.HanimaadhooTideId.ToString();
                    row[1] = element.HanimaadhooTideDateTime.ToString();
                    row[2] = element.HanimaadhooTideHeight.ToString();
                    //   row["HulhuleTideLevel"] = element.HulhuleTideLevel.ToString();
                    DatatableContainingTideDataOfNeededDates.Rows.Add(row);
                }
            }
            else if (tide.TideStationSelected == "3")
            {
                var query = from t in _db.GanTides
                            where t.GanTideDateTime > SelectedDayInShortDateFormAndDateFormat && t.GanTideDateTime < FollowingDayInShortDateFormAndDateFormat
                            orderby t.GanTideDateTime
                            select t;
                foreach (var element in query)
                {
                    var row = DatatableContainingTideDataOfNeededDates.NewRow();
                    row[0] = element.GanTideId.ToString();
                    row[1] = element.GanTideDateTime.ToString();
                    row[2] = element.GanTideHeight.ToString();
                    //   row["HulhuleTideLevel"] = element.HulhuleTideLevel.ToString();
                    DatatableContainingTideDataOfNeededDates.Rows.Add(row);
                }
            }

            //    var query = from t in _db.Tides
            //            where t.TideDateTime > SelectedDayInShortDateFormAndDateFormat && t.TideDateTime < FollowingDayInShortDateFormAndDateFormat
            //            orderby t.TideDateTime
            //            select t;
            //foreach (var element in query)
            //{
            //    var row = DatatableContainingTideDataOfNeededDates.NewRow();
            //    row["TideId"] = element.TideId.ToString();
            //    row["TideDateTime"] = element.TideDateTime.ToString();
            //    row["TideHeight"] = element.TideHeight.ToString();
            //    row["TideLevel"] = element.TideLevel.ToString();
            //    DatatableContainingTideDataOfNeededDates.Rows.Add(row);
            //}
            ////just looping thorugh datatble to see ite contents because magnifing glass not working
            //for (int i = 0; i <= DatatableContainingTideDataOfNeededDates.Rows.Count-1; i++)
            //{
            //    string japan = DatatableContainingTideDataOfNeededDates.Rows[i][3].ToString();
            //}
        }
Пример #14
0
        public void LoadFirstTideDataOfFollowingDayToDatatable(TideViewModel tide)
        {
            DateTime PreviousDayInShortDateFormAndDateFormat  = DateTime.Parse(PrecedingDaysDateTime.ToShortDateString());
            DateTime SelectedDayInShortDateFormAndDateFormat  = DateTime.Parse(SelectedDatetimeForTidePrediction.ToShortDateString());
            DateTime FollowingDayInShortDateFormAndDateFormat = DateTime.Parse(FollowingDaysDateTime.ToShortDateString());

            TimeSpan oneDay = new TimeSpan(1, 0, 0, 0);
            DateTime DayAfterFollowingDayInShortDateFormAndDateFormat = FollowingDayInShortDateFormAndDateFormat + oneDay;

            if (tide.TideStationSelected == "1")
            {
                var query = (from t in _db.HulhuleTides
                             where t.HulhuleTideDateTime > FollowingDayInShortDateFormAndDateFormat && t.HulhuleTideDateTime < DayAfterFollowingDayInShortDateFormAndDateFormat
                             orderby t.HulhuleTideDateTime
                             select t).First();
                var row = DatatableContainingTideDataOfNeededDates.NewRow();
                row[0] = query.HulhuleTideId.ToString();
                row[1] = query.HulhuleTideDateTime.ToString();
                row[2] = query.HulhuleTideHeight.ToString();
                //   row["HulhuleTideLevel"] = query.HulhuleTideLevel.ToString();
                DatatableContainingTideDataOfNeededDates.Rows.Add(row);
            }
            else if (tide.TideStationSelected == "2")
            {
                var query = (from t in _db.HanimaadhooTides
                             where t.HanimaadhooTideDateTime > FollowingDayInShortDateFormAndDateFormat && t.HanimaadhooTideDateTime < DayAfterFollowingDayInShortDateFormAndDateFormat
                             orderby t.HanimaadhooTideDateTime
                             select t).First();
                var row = DatatableContainingTideDataOfNeededDates.NewRow();
                row[0] = query.HanimaadhooTideId.ToString();
                row[1] = query.HanimaadhooTideDateTime.ToString();
                row[2] = query.HanimaadhooTideHeight.ToString();
                // row["HanimaadhooTideLevel"] = query.HanimaadhooTideLevel.ToString();
                DatatableContainingTideDataOfNeededDates.Rows.Add(row);
            }
            else if (tide.TideStationSelected == "3")
            {
                var query = (from t in _db.GanTides
                             where t.GanTideDateTime > FollowingDayInShortDateFormAndDateFormat && t.GanTideDateTime < DayAfterFollowingDayInShortDateFormAndDateFormat
                             orderby t.GanTideDateTime
                             select t).First();
                var row = DatatableContainingTideDataOfNeededDates.NewRow();
                row[0] = query.GanTideId.ToString();
                row[1] = query.GanTideDateTime.ToString();
                row[2] = query.GanTideHeight.ToString();
                // row["GanTideLevel"] = query.GanTideLevel.ToString();
                DatatableContainingTideDataOfNeededDates.Rows.Add(row);
            }

            //var query = (from t in _db.Tides
            //             where t.TideDateTime > FollowingDayInShortDateFormAndDateFormat && t.TideDateTime < DayAfterFollowingDayInShortDateFormAndDateFormat
            //             orderby t.TideDateTime
            //             select t).First();
            ////foreach (var element in query)
            ////{
            //var row = DatatableContainingTideDataOfNeededDates.NewRow();
            //row["TideId"] = query.TideId.ToString();
            //row["TideDateTime"] = query.TideDateTime.ToString();
            //row["TideHeight"] = query.TideHeight.ToString();
            //row["TideLevel"] = query.TideLevel.ToString();
            //DatatableContainingTideDataOfNeededDates.Rows.Add(row);


            //Testing
            List <string> asdad = new List <string>();

            for (int i = 0; i <= DatatableContainingTideDataOfNeededDates.Rows.Count - 1; i++)
            {
                asdad.Add(DatatableContainingTideDataOfNeededDates.Rows[i][2].ToString());
            }
            int test = 0;
        }
Пример #15
0
 public void LoadTideDataOfSelectedAndNeighbouringDays(TideViewModel tide)
 {
     LoadLastTideDataOfPrecedingDayToDatatable(tide);
     LoadTideDataOfSearchedDayToDatatable(tide);
     LoadFirstTideDataOfFollowingDayToDatatable(tide);
 }
Пример #16
0
        //[HttpPost]
        public async Task <IActionResult> EnterTideDataToDatabase(TideViewModel tideViewModel)
        {
            //int num = tideViewModel.YearOfTide;
            if (ModelState.IsValid)
            {
                if (tideViewModel.TideStationSelected == "1")
                {
                    try
                    {
                        tideViewModel.NewHulhuleTideObj = new HulhuleTide();
                        tideViewModel.NewHulhuleTideObj.HulhuleTideHeight   = tideViewModel.TideHeightForDataEntry;
                        tideViewModel.NewHulhuleTideObj.HulhuleTideDateTime = GetDateTimeToEnterIntoDb(tideViewModel);
                        _db.Add(tideViewModel.NewHulhuleTideObj);
                        await _db.SaveChangesAsync();

                        //  tideViewModel.FeedbackMessage = "Saved Successfully";
                        FeedbackMessage = "Saved Successfully";
                        return(RedirectToAction(nameof(Index)));
                    }
                    catch (Exception e)
                    {
                        FeedbackMessage = "Error: Couldn't save to database";
                        return(RedirectToAction(nameof(Index)));
                    }
                    //tideViewModel.NewHulhuleTideObj = new HulhuleTide();
                    //tideViewModel.NewHulhuleTideObj.HulhuleTideHeight = tideViewModel.TideHeightForDataEntry;
                    //tideViewModel.NewHulhuleTideObj.HulhuleTideDateTime = GetDateTimeToEnterIntoDb(tideViewModel);
                    //_db.Add(tideViewModel.NewHulhuleTideObj);
                    //await _db.SaveChangesAsync();
                    //return RedirectToAction(nameof(Index));
                }
                else if (tideViewModel.TideStationSelected == "2")
                {
                    try
                    {
                        tideViewModel.NewHanimaadhooTideObj = new HanimaadhooTide();
                        tideViewModel.NewHanimaadhooTideObj.HanimaadhooTideHeight   = tideViewModel.TideHeightForDataEntry;
                        tideViewModel.NewHanimaadhooTideObj.HanimaadhooTideDateTime = GetDateTimeToEnterIntoDb(tideViewModel);
                        _db.Add(tideViewModel.NewHanimaadhooTideObj);
                        await _db.SaveChangesAsync();

                        FeedbackMessage = "Saved Successfully";
                        return(RedirectToAction(nameof(Index)));
                    }
                    catch (Exception e)
                    {
                        FeedbackMessage = "Error: Couldn't save to database";
                        return(RedirectToAction(nameof(Index)));
                    }
                }
                else if (tideViewModel.TideStationSelected == "3")
                {
                    try
                    {
                        tideViewModel.NewGanTideObj = new GanTide();
                        tideViewModel.NewGanTideObj.GanTideHeight   = tideViewModel.TideHeightForDataEntry;
                        tideViewModel.NewGanTideObj.GanTideDateTime = GetDateTimeToEnterIntoDb(tideViewModel);
                        _db.Add(tideViewModel.NewGanTideObj);
                        await _db.SaveChangesAsync();

                        FeedbackMessage = "Saved Successfully";
                        return(RedirectToAction(nameof(Index)));
                    }
                    catch (Exception e)
                    {
                        FeedbackMessage = "Error: Couldn't save to database";
                        return(RedirectToAction(nameof(Index)));
                    }
                }
            }
            return(View(nameof(Index)));
        }