This commit is contained in:
stubbfel
2013-09-30 18:43:40 +02:00
parent a898477394
commit 8527f657fc
29 changed files with 243 additions and 82 deletions

View File

@@ -8,6 +8,7 @@
namespace CampusAppDLL.Model.Campusmap
{
using CampusAppDLL.Model.GeoDb;
using CampusAppDLL.Utility;
using System;
/// <summary>
@@ -41,6 +42,8 @@ namespace CampusAppDLL.Model.Campusmap
/// <remarks>Stubbfel, 19.08.2013.</remarks>
protected virtual void LoadSpatials(string xmlFilePath)
{
SpsModel model = XmlManager.DeserializationFileToModel<SpsModel>(xmlFilePath);
this.Spatial = model;
}
#endregion

View File

@@ -8,12 +8,12 @@
namespace CampusAppWP8.Api.GeoApi
{
using System.Collections.Generic;
using CampusAppWP8.Model;
using CampusAppWP8.Model.GeoDb;
using CampusAppWP8.Model.Utility;
using CampusAppWP8.Resources;
using CampusAppWPortalLib8.Model.Utility;
using CampusAppWPortalLib8.Model;
using CampusAppWPortalLib8.Model.Utility;
using System.Collections.Generic;
/// <summary>Pis api.</summary>
/// <remarks>Stubbfel, 09.09.2013.</remarks>

View File

@@ -8,12 +8,12 @@
namespace CampusAppWP8.Api.GeoApi
{
using System.Collections.Generic;
using CampusAppWP8.Model;
using CampusAppWP8.Model.GeoDb;
using CampusAppWP8.Model.Utility;
using CampusAppWP8.Resources;
using CampusAppWPortalLib8.Model;
using CampusAppWPortalLib8.Model.Utility;
using System.Collections.Generic;
/// <summary>Pss api.</summary>
/// <remarks>Stubbfel, 09.09.2013.</remarks>

View File

@@ -13,7 +13,8 @@ namespace CampusAppWP8.Api.GeoApi
using CampusAppWP8.Model.Utility;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model.Utility;
using CampusAppWPortalLib8.Model.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>
/// Class for SPSAPI

View File

@@ -10,6 +10,7 @@ namespace CampusAppWP8.Api.Lecture
using CampusAppWP8.Model;
using CampusAppWP8.Model.Lecture;
using CampusAppWP8.Resources;
using CampusAppWPortalLib8.Model;
/// <summary>
/// Class for the feed of the Lecture

View File

@@ -11,6 +11,7 @@ namespace CampusAppWP8.Api.Person
using CampusAppWP8.Model;
using CampusAppWP8.Model.Person;
using CampusAppWP8.Resources;
using CampusAppWPortalLib8.Model;
/// <summary>Person search api.</summary>
/// <remarks>Stubbfel, 05.09.2013.</remarks>

View File

@@ -13,6 +13,7 @@ namespace CampusAppWP8.Feed.Departments
using CampusAppWP8.Model.Departments;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>
/// Feed class for the department information.

View File

@@ -13,6 +13,7 @@ namespace CampusAppWP8.Feed.Events
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model.RSS;
using CampusAppWPortalLib8.Model;
/// <summary>
/// Event Feed.

View File

@@ -12,6 +12,7 @@ namespace CampusAppWP8.Feed.Exams
using CampusAppWP8.Model.Exams;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>Exam feed.</summary>
/// <remarks>Stubbfel, 02.09.2013.</remarks>

View File

@@ -13,6 +13,7 @@ namespace CampusAppWP8.Feed.Link
using CampusAppWP8.Model.Link;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>
/// This Class is for ClubLinkFeeds

View File

@@ -13,6 +13,7 @@ namespace CampusAppWP8.Feed.Link
using CampusAppWP8.Model.Link;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>
/// This Class is for CommonLinkFeeds

View File

@@ -11,6 +11,7 @@ namespace CampusAppWP8.Feed.Mensa
using System.IO;
using CampusAppWP8.Model;
using CampusAppWPortalLib8.Model.Mensa;
using CampusAppWPortalLib8.Model;
/// <summary>
/// This Class is for MensaFeeds

View File

@@ -13,6 +13,7 @@ namespace CampusAppWP8.Feed.News
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model.RSS;
using CampusAppWPortalLib8.Model;
/// <summary>
/// News Feed.

View File

@@ -13,6 +13,7 @@ namespace CampusAppWP8.Feed.Openinghours
using CampusAppWP8.Model.Openinghours;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>
/// This Class is for MesaFeeds

View File

@@ -13,6 +13,7 @@ namespace CampusAppWP8.Feed.StudentCouncil
using CampusAppWP8.Model.StudentCouncil;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>
/// This Class is for StudentCouncilFeed

View File

@@ -11,6 +11,7 @@ namespace CampusAppWP8.File.Departments
using CampusAppWP8.Model;
using CampusAppWP8.Model.Departments;
using CampusAppWP8.Resources;
using CampusAppWPortalLib8.Model;
/// <summary>
/// Feed object to handle favorite department feeds.

View File

@@ -30,7 +30,7 @@ namespace CampusAppWP8.File.Exams
/// <param name="fileName">Filename of the file.</param>
/// <param name="url"> URL of the document.</param>
public ExamFile(string fileName, string url)
: base(ModelType.FileAndFeed, fileName, url)
: base(CampusAppWPortalLib8.Model.ModelType.FileAndFeed, fileName, url)
{
this.IsFileUpToDateOnLoad += new IsFileUpToDate(this.CheckIsFileUpToDate);
this.IsModelUpToDateOnLoad += new IsModelUpToDate(this.CheckIsModelUpToDate);
@@ -50,7 +50,7 @@ namespace CampusAppWP8.File.Exams
{
if (this.storageFile == null)
{
this.storageFile = await this.file.AsStorageFile();
this.storageFile = await ((CampusAppWP8.Utility.File)(this.file)).AsStorageFile();
}
if (this.storageFile != null)

View File

@@ -22,7 +22,7 @@ namespace CampusAppWP8.File.Places
/// <summary>Initializes a new instance of the PlacesFile class.</summary>
/// <remarks>Stubbfel, 09.09.2013.</remarks>
public PlacesFile()
: base(ModelType.File, Constants.FilePlace_AllPlaces)
: base(CampusAppWPortalLib8.Model.ModelType.File, Constants.FilePlace_AllPlaces)
{
this.OnFailedFile += new OnFailed(this.FallBackLoad);
this.IsFileUpToDateOnLoad += new IsFileUpToDate(this.CheckIsFileUpToDate);

View File

@@ -6,6 +6,7 @@
// <sience>03.09.2013</sience>
//----------------------------------------------------------------------
using CampusAppWPortalLib8.Model;
namespace CampusAppWP8.Model
{
/// <summary>Binary model.</summary>
@@ -41,7 +42,7 @@ namespace CampusAppWP8.Model
/// <remarks>Stubbfel, 03.09.2013.</remarks>
/// <param name="modelData">Information describing the model.</param>
/// <returns>true if it succeeds, false if it fails.</returns>
protected override bool DeserializeModel(byte[] modelData)
public override bool DeserializeModel(byte[] modelData)
{
bool retValue = true;
@@ -60,7 +61,7 @@ namespace CampusAppWP8.Model
/// <summary>Gets the serialize model.</summary>
/// <remarks>Stubbfel, 03.09.2013.</remarks>
/// <returns>an byte Array.</returns>
protected override byte[] SerializeModel()
public override byte[] SerializeModel()
{
return this.Model;
}

View File

@@ -8,7 +8,9 @@
namespace CampusAppWP8
{
using CampusAppWP8.Utility;
using CampusAppWPortalLib8.Model;
using CampusAppWPortalLib8.Model.Utility;
using CampusAppWPortalLib8.Utility;
using System;
using System.Collections.Generic;
using System.IO;
@@ -18,7 +20,7 @@ namespace CampusAppWP8
/// Base model io handling class.
/// </summary>
/// <typeparam name="T">model type</typeparam>
public abstract class MainModel<T>
public abstract class MainModel<T> : IMainModel<T>
{
#region Member
@@ -182,53 +184,11 @@ namespace CampusAppWP8
/// Callback pointer, for checking if model is up to date at saving.
/// (currently unused)
/// </summary>
#pragma warning disable 0067
public event IsModelUpToDate IsModelUpToDateOnSave = null;
#endregion
#region Enum
/// <summary>
/// Specifies the I/O type of the model.
/// </summary>
public enum ModelType
{
/// <summary>
/// Invalid/unset state.
/// </summary>
INVALID = 0,
/// <summary>
/// File only (01).
/// </summary>
File = 1,
/// <summary>
/// Feed only (10).
/// </summary>
Feed = 2,
/// <summary>
/// File and feed (11).
/// </summary>
FileAndFeed = 3
}
/// <summary>Values that represent ForceType for load function.</summary>
public enum ForceType
{
/// <summary>An enumeration constant representing the invalid/default/unset option.</summary>
INVALID = 0,
/// <summary>An enumeration constant representing the force file option.</summary>
FORCE_FILE = 1,
/// <summary>An enumeration constant representing the force web option.</summary>
FORCE_WEB = 2
}
#endregion
#region Property
/// <summary>
@@ -436,22 +396,22 @@ namespace CampusAppWP8
this.paramizedUri = null;
}
#endregion
#region protected
/// <summary>
/// Abstract declaration of the model deserialize function.
/// </summary>
/// <param name="modelData">model data as byte array</param>
/// <returns>true, is succeeded</returns>
protected abstract bool DeserializeModel(byte[] modelData);
public abstract bool DeserializeModel(byte[] modelData);
/// <summary>
/// Abstract declaration of the model serialize function.
/// </summary>
/// <returns>model data as byte array</returns>
protected abstract byte[] SerializeModel();
public abstract byte[] SerializeModel();
#endregion
#region protected
/// <summary>
/// Check if the model io type is file.

View File

@@ -9,12 +9,13 @@ namespace CampusAppWP8.Model
{
using System.Text;
using CampusAppWPortalLib8.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>
/// Xml model io handler class.
/// </summary>
/// <typeparam name="T">model type</typeparam>
public abstract class XmlModel<T> : MainModel<T>
public abstract class XmlModel<T> : MainModel<T>, IXmlModel
{
#region Constructor
@@ -44,19 +45,23 @@ namespace CampusAppWP8.Model
#endregion
#region Method
#region Property
/// <summary>
/// Gets or sets for the name of the root-tag
/// </summary>
protected string ValidRootName { get; set; }
public string ValidRootName { get; set; }
#endregion
#region Method
/// <summary>
/// Create the model from a xml byte array.
/// </summary>
/// <param name="modelData">model data</param>
/// <returns>true, if succeeded</returns>
protected override bool DeserializeModel(byte[] modelData)
public override bool DeserializeModel(byte[] modelData)
{
bool retValue = true;
@@ -79,7 +84,7 @@ namespace CampusAppWP8.Model
/// Serializes the model to a byte array.
/// </summary>
/// <returns>model data</returns>
protected override byte[] SerializeModel()
public override byte[] SerializeModel()
{
byte[] retValue = null;

View File

@@ -17,7 +17,7 @@ namespace CampusAppWP8.Utility
/// <summary>
/// File class.
/// </summary>
public class File
public class File : AbstractFile
{
#region Member
@@ -45,15 +45,6 @@ namespace CampusAppWP8.Utility
#endregion
#region Events
/// <summary>
/// Delegation of the write callback function prototype.
/// </summary>
public delegate void WriteCallbackFunc();
#endregion
#region Method
#region public
@@ -61,7 +52,7 @@ namespace CampusAppWP8.Utility
/// <summary>Read data from file to a string.</summary>
/// <remarks>Stubbfel, 03.09.2013.</remarks>
/// <returns>data string.</returns>
public byte[] ReadFile()
public override byte[] ReadFile()
{
byte[] retValue = null;
@@ -78,7 +69,7 @@ namespace CampusAppWP8.Utility
/// <param name="data"> data byte array.</param>
/// <param name="onSavedCallback"> callback function, called after writing is done.</param>
/// <param name="onFailedCallback">callback function, called when writing failed.</param>
public void WriteFile(byte[] data, WriteCallbackFunc onSavedCallback, WriteCallbackFunc onFailedCallback)
public override void WriteFile(byte[] data, WriteCallbackFunc onSavedCallback, WriteCallbackFunc onFailedCallback)
{
Thread th = new Thread(delegate() { this.WriteAsync(data, onSavedCallback, onFailedCallback); });
th.Start();
@@ -98,7 +89,7 @@ namespace CampusAppWP8.Utility
/// Check if a file is existing.
/// </summary>
/// <returns>true, if file exists, otherwise false</returns>
public bool Exist()
public override bool Exist()
{
return this.GetFileInfo().Exists;
}

View File

@@ -18,6 +18,7 @@ namespace CampusAppWP8.Utility
using CampusAppWP8.Resources;
using Microsoft.Phone.Net.NetworkInformation;
using CampusAppWPortalLib8.Utility;
using CampusAppWPortalLib8.Model;
/// <summary>
/// Collection of utility functions.
@@ -347,15 +348,15 @@ namespace CampusAppWP8.Utility
/// <remarks>Stubbfel, 27.08.2013.</remarks>
/// <typeparam name="T">Generic type parameter.</typeparam>
/// <returns>The load modus&lt; t&gt;</returns>
public static MainModel<T>.ForceType GetLoadModus<T>()
public static ForceType GetLoadModus<T>()
{
if (Settings.AppSetting.OnlyWifi && !Settings.AppSetting.WifiEnable)
{
return MainModel<T>.ForceType.FORCE_FILE;
return ForceType.FORCE_FILE;
}
else
{
return MainModel<T>.ForceType.INVALID;
return ForceType.INVALID;
}
}

View File

@@ -33,14 +33,18 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Compile Include="Model\IMainModel.cs" />
<Compile Include="Model\ForcesTypes.cs" />
<Compile Include="Model\Mensa\MealModel.cs" />
<Compile Include="Model\Mensa\MenuModel.cs" />
<Compile Include="Model\Mensa\MenuWeekModel.cs" />
<Compile Include="Model\ModelTypes.cs" />
<Compile Include="Model\RSS\RSSChannelModel.cs" />
<Compile Include="Model\RSS\RSSModel.cs" />
<Compile Include="Model\RSS\RSSViewModel.cs" />
<Compile Include="Model\Utility\CleanUrlParamModel.cs" />
<Compile Include="Model\Utility\URLParamModel.cs" />
<Compile Include="Model\IXmlModel.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Resources\AppResources.Designer.cs">
<DependentUpon>AppResources.resx</DependentUpon>
@@ -54,6 +58,7 @@
</Compile>
<Compile Include="Utility\AbstractHttpRequest.cs" />
<Compile Include="Utility\AbstractBackgroundTasks.cs" />
<Compile Include="Utility\AbstractFile.cs" />
<Compile Include="Utility\Logger.cs" />
<Compile Include="Utility\DefaultStringManager.cs" />
<Compile Include="Utility\XmlManager.cs" />

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CampusAppWPortalLib8.Model
{
/// <summary>Values that represent ForceType for load function.</summary>
public enum ForceType
{
/// <summary>An enumeration constant representing the invalid/default/unset option.</summary>
INVALID = 0,
/// <summary>An enumeration constant representing the force file option.</summary>
FORCE_FILE = 1,
/// <summary>An enumeration constant representing the force web option.</summary>
FORCE_WEB = 2
}
}

View File

@@ -0,0 +1,48 @@
//-----------------------------------------------------------------------------
// <copyright file="IMainModel.cs" company="BTU/IIT">
// Company copyright tag.
// </copyright>
// <author>fiedlchr</author>
// <sience>05.07.2013</sience>
//-----------------------------------------------------------------------------
using CampusAppWPortalLib8.Model;
namespace CampusAppWPortalLib8.Utility
{
/// <summary>
/// Base model io handling class.
/// </summary>
/// <typeparam name="T">model type</typeparam>
public interface IMainModel<T>
{
/// <summary>
/// Gets or sets the Model.
/// </summary>
T Model { get; set; }
/// <summary>
/// Load the data if necessary, from web or from file, regarding if
/// the file data is up to date.
/// </summary>
/// <param name="force">if set/not invalid/not default, force to load from web or file</param>
void LoadData(ForceType force = ForceType.INVALID);
/// <summary>
/// Save the model data if necessary.
/// </summary>
/// <param name="force">force saving. DEFAULT: false</param>
void SaveData(bool force = false);
/// <summary>
/// Abstract declaration of the model deserialize function.
/// </summary>
/// <param name="modelData">model data as byte array</param>
/// <returns>true, is succeeded</returns>
bool DeserializeModel(byte[] modelData);
/// <summary>
/// Abstract declaration of the model serialize function.
/// </summary>
/// <returns>model data as byte array</returns>
byte[] SerializeModel();
}
}

View File

@@ -0,0 +1,27 @@
//-----------------------------------------------------------------------------
// <copyright file="IXmlModel.cs" company="BTU/IIT">
// Company copyright tag.
// </copyright>
// <author>fiedlchr</author>
// <sience>05.07.2013</sience>
//-----------------------------------------------------------------------------
namespace CampusAppWPortalLib8.Model
{
using CampusAppWPortalLib8.Utility;
/// <summary>
/// Xml model io handler class.
/// </summary>
/// <typeparam name="T">model type</typeparam>
public interface IXmlModel
{
#region Property
/// <summary>
/// Gets or sets for the name of the root-tag
/// </summary>
string ValidRootName { get; set; }
#endregion
}
}

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CampusAppWPortalLib8.Model
{
/// <summary>
/// Specifies the I/O type of the model.
/// </summary>
public enum ModelType
{
/// <summary>
/// Invalid/unset state.
/// </summary>
INVALID = 0,
/// <summary>
/// File only (01).
/// </summary>
File = 1,
/// <summary>
/// Feed only (10).
/// </summary>
Feed = 2,
/// <summary>
/// File and feed (11).
/// </summary>
FileAndFeed = 3
}
}

View File

@@ -0,0 +1,52 @@
//-----------------------------------------------------------------------------
// <copyright file="AbstractFile.cs" company="BTU/IIT">
// Company copyright tag.
// </copyright>
// <author>fiedlchr</author>
// <sience>03.05.2013</sience>
//-----------------------------------------------------------------------------
namespace CampusAppWPortalLib8.Utility
{
/// <summary>
/// File class.
/// </summary>
public abstract class AbstractFile
{
#region Events
/// <summary>
/// Delegation of the write callback function prototype.
/// </summary>
public delegate void WriteCallbackFunc();
#endregion
#region Method
#region public
/// <summary>Read data from file to a string.</summary>
/// <remarks>Stubbfel, 03.09.2013.</remarks>
/// <returns>data string.</returns>
public abstract byte[] ReadFile();
/// <summary>Write bytes to the file.</summary>
/// <remarks>Stubbfel, 03.09.2013.</remarks>
/// <param name="data"> data byte array.</param>
/// <param name="onSavedCallback"> callback function, called after writing is done.</param>
/// <param name="onFailedCallback">callback function, called when writing failed.</param>
public abstract void WriteFile(byte[] data, WriteCallbackFunc onSavedCallback, WriteCallbackFunc onFailedCallback);
/// <summary>
/// Check if a file is existing.
/// </summary>
/// <returns>true, if file exists, otherwise false</returns>
public abstract bool Exist();
#endregion
#endregion
}
}