From 402064669194a6bdab5ab7fa66c6af41f9b3cf2b Mon Sep 17 00:00:00 2001
From: Dan <daniel2.lorych@live.uwe.ac.uk>
Date: Mon, 9 May 2022 21:04:20 +0100
Subject: [PATCH] Hardcod values to user class as proof of concept

---
 Helios/Controllers/UserController.cs | 10 ++++-
 Helios/Models/User.cs                |  7 +++-
 Helios/Source/UserService.cs         | 58 ++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+), 3 deletions(-)

diff --git a/Helios/Controllers/UserController.cs b/Helios/Controllers/UserController.cs
index 10200b4..dfcb0c4 100644
--- a/Helios/Controllers/UserController.cs
+++ b/Helios/Controllers/UserController.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using Helios.Source;
 using Microsoft.AspNetCore.Mvc;
 
 // For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
@@ -10,7 +11,12 @@ namespace Helios.Controllers
 {
     public class UserController : Controller
     {
+        private readonly UserService _userService;
 
+        public UserController(UserService service)
+        {
+            _userService = service;
+        }
 
         public IActionResult Admin()
         {
@@ -19,7 +25,9 @@ namespace Helios.Controllers
 
         public IActionResult User()
         {
-            return View();
+            var user = _userService.GetUser();
+
+            return View(user);
         }
     }
 }
diff --git a/Helios/Models/User.cs b/Helios/Models/User.cs
index 7f0d510..e180b19 100644
--- a/Helios/Models/User.cs
+++ b/Helios/Models/User.cs
@@ -3,7 +3,10 @@ namespace Helios.Models
 {
 	public class User
 	{
-		public User() {	}
-	}
+        public int SolarInput { get; set; }
+        public int BatteryCharge { get; set; }
+        public BatteryStatus BatteryStatus { get; set; }
+        public List<ChargeTimestamp> ChargeTimestamps { get; set; } = new List<ChargeTimestamp>();
+    }
 }
 
diff --git a/Helios/Source/UserService.cs b/Helios/Source/UserService.cs
index b8c5b12..595d7ce 100644
--- a/Helios/Source/UserService.cs
+++ b/Helios/Source/UserService.cs
@@ -1,4 +1,5 @@
 using System;
+using Helios.Models;
 using Npgsql;
 
 namespace Helios.Source
@@ -6,14 +7,71 @@ namespace Helios.Source
 	public class UserService
 	{
 		private readonly NpgsqlConnection _connection;
+		private int userId = 7;
 
 		public UserService(string connectionString)
 		{
 			_connection = new NpgsqlConnection(connectionString);
 		}
 
+		public User GetUser()
+        {
+			User user = new User();
 
+			user.ChargeTimestamps = GetChargeTimestamps();
+			user.SolarInput = GetSolarInput();
+			user.BatteryCharge = GetBatteryCharge();
+			user.BatteryStatus = GetBatteryStatus();
 
+			return user;
+        }
+
+		private List<ChargeTimestamp> GetChargeTimestamps()
+        {
+			List<ChargeTimestamp> timestamps = new List<ChargeTimestamp>
+			{
+				new ChargeTimestamp(DateTimeOffset.Parse("01:00 AM"), 100),
+				new ChargeTimestamp(DateTimeOffset.Parse("02:00 AM"), 98),
+				new ChargeTimestamp(DateTimeOffset.Parse("03:00 AM"), 96),
+				new ChargeTimestamp(DateTimeOffset.Parse("04:00 AM"), 94),
+				new ChargeTimestamp(DateTimeOffset.Parse("05:00 AM"), 92),
+				new ChargeTimestamp(DateTimeOffset.Parse("06:00 AM"), 90),
+				new ChargeTimestamp(DateTimeOffset.Parse("07:00 AM"), 83),
+				new ChargeTimestamp(DateTimeOffset.Parse("08:00 AM"), 80),
+				new ChargeTimestamp(DateTimeOffset.Parse("09:00 AM"), 71),
+				new ChargeTimestamp(DateTimeOffset.Parse("10:00 AM"), 64),
+				new ChargeTimestamp(DateTimeOffset.Parse("11:00 AM"), 60),
+				new ChargeTimestamp(DateTimeOffset.Parse("12:00 PM"), 61),
+				new ChargeTimestamp(DateTimeOffset.Parse("13:00 PM"), 62),
+				new ChargeTimestamp(DateTimeOffset.Parse("14:00 PM"), 60),
+				new ChargeTimestamp(DateTimeOffset.Parse("15:00 PM"), 55),
+				new ChargeTimestamp(DateTimeOffset.Parse("16:00 PM"), 51),
+				new ChargeTimestamp(DateTimeOffset.Parse("17:00 PM"), 48),
+				new ChargeTimestamp(DateTimeOffset.Parse("18:00 PM"), 43),
+				new ChargeTimestamp(DateTimeOffset.Parse("19:00 PM"), 36),
+				new ChargeTimestamp(DateTimeOffset.Parse("20:00 PM"), 30),
+				new ChargeTimestamp(DateTimeOffset.Parse("21:00 PM"), 71),
+				new ChargeTimestamp(DateTimeOffset.Parse("22:00 PM"), 71),
+				new ChargeTimestamp(DateTimeOffset.Parse("23:00 PM"), 71),
+			};
+
+			return timestamps;
+        }
+
+		private int GetSolarInput()
+		{
+			return 77;
+		}
+
+		private int GetBatteryCharge()
+        {
+			return 45;
+        }
+
+		private BatteryStatus GetBatteryStatus()
+        {
+			return BatteryStatus.Charging;
+        }
 	}
 }
 
-- 
GitLab