Helyettesítések elkezdve, betöltés/mentés elkezdve

Tegnap/tegnapelőtt kezdtem
This commit is contained in:
Norbi Peti 2017-02-17 00:34:01 +01:00
parent 0e73f5df24
commit 7505ec8406
5 changed files with 92 additions and 6 deletions

View file

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Runtime.Serialization.Json;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@ -19,6 +20,7 @@ namespace Orarend
/// <returns></returns>
public static Osztály[] Osztályok { get; private set; }
public static List<Órarend> Órarendek { get; } = new List<Órarend>();
public static Settings Beállítások { get; private set; } //TODO: Settings
/// <summary>
/// Frissíti az osztálylistát és az eredeti órarendet, első megnyitásnál, és egy órarend hozzáadásánál/szerkesztésénél, majd hetente elegendő meghívni
/// </summary>
@ -101,7 +103,68 @@ namespace Orarend
/// </summary>
public static async Task HelyettesítésFrissítés()
{
//TODO
HtmlDocument doc = new HtmlDocument();
var req = WebRequest.CreateHttp("http://deri.enaplo.net/ajax/print/htlista.php");
var resp = await req.GetResponseAsync();
await Task.Run(() =>
{
using (var sr = new StreamReader(resp.GetResponseStream()))
doc.LoadHtml(sr.ReadToEnd());
});
}
public static void ÓrarendBetöltés(Stream s)
{
using (s)
{
var serializer = new DataContractJsonSerializer(typeof(Órarend[]));
Órarendek.AddRange((Órarend[])serializer.ReadObject(s));
}
}
public static void OsztályBetöltés(Stream s)
{
using (s)
{
var serializer = new DataContractJsonSerializer(typeof(Osztály[]));
Osztályok = ((Osztály[])serializer.ReadObject(s));
}
}
public static void BeállításBetöltés(Stream s)
{
using (s)
{
var serializer = new DataContractJsonSerializer(typeof(Settings));
Beállítások = ((Settings)serializer.ReadObject(s));
}
}
public static void ÓrarendMentés(Stream s)
{
using (s)
{
var serializer = new DataContractJsonSerializer(typeof(Órarend[]));
serializer.WriteObject(s, Órarendek);
}
}
public static void OsztályMentés(Stream s)
{
using (s)
{
var serializer = new DataContractJsonSerializer(typeof(Osztály[]));
serializer.WriteObject(s, Osztályok);
}
}
public static void BeállításMentés(Stream s)
{
using (s)
{
var serializer = new DataContractJsonSerializer(typeof(Settings));
serializer.WriteObject(s, Beállítások);
}
}
}
}

View file

@ -37,6 +37,7 @@
<Compile Include="API.cs" />
<Compile Include="Osztály.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Settings.cs" />
<Compile Include="Tanár.cs" />
<Compile Include="Óra.cs" />
<Compile Include="Órarend.cs" />

12
Orarend/Settings.cs Normal file
View file

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Orarend
{
public class Settings
{
}
}

View file

@ -12,6 +12,7 @@ using Java.Lang;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading;
using System.IO;
namespace OrarendAndroidApp
{
@ -20,12 +21,19 @@ namespace OrarendAndroidApp
{
private Handler handler;
private Órarend órarend;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.MainLayout);
handler = new Handler();
string[] list = FileList();
if (list.Contains("beallitasok"))
API.BeállításBetöltés(OpenFileInput("beallitasok"));
if (list.Contains("orarend"))
API.ÓrarendBetöltés(OpenFileInput("orarend"));
if (list.Contains("osztaly"))
API.OsztályBetöltés(OpenFileInput("osztaly"));
API.Frissítés().ContinueWith(t =>
{
handler.Post(() =>
@ -55,7 +63,7 @@ namespace OrarendAndroidApp
tr1.AddView(textview);
};
API.HelyettesítésFrissítés().ContinueWith(t =>
{
{ //TODO: Ezt ne itt, ne így
handler.Post(() =>
{
TaskHiba(t);
@ -95,7 +103,7 @@ namespace OrarendAndroidApp
}
}
});
});
}); //TODO: Tárolja el a helyettesített órarendeket is valahogyan, akár külön osztály, hogy csak a változásokat tárolja
}
private TextView selected;
@ -157,6 +165,8 @@ namespace OrarendAndroidApp
handler.Post(() => bar.Visibility = ViewStates.Visible);
API.Frissítés().ContinueWith(t => //TODO: Megjelenítés frissítése
{
API.ÓrarendMentés(OpenFileOutput("orarend", FileCreationMode.Private));
API.OsztályMentés(OpenFileOutput("osztaly", FileCreationMode.Private)); //TODO: Beállítások mentése
handler.Post(() => bar.Visibility = ViewStates.Gone);
});
break;

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="OrarendAndroidApp.OrarendAndroidApp" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="16" />
<application android:label="OrarendAndroidApp"></application>
<uses-sdk android:minSdkVersion="16" />
<application android:label="OrarendAndroidApp"></application>
</manifest>