Ok ik heb een besluit genomen.
Ik ga de komende momenten dat ik aan de API werk, bezig zijn met het herschrijven hiervan.
Deze zou dan direct de volledige versie zijn, omdat de meeste 'moeilijke' dingen al in mijn code staan (werking van de chat, forum ,..)
Ook gaat het met properties, nederlands zijn.
Enkele voorbeelden:
namespace: Helpmij.API
namespace: Helpmij.API.Profiel
Ook zal ik waarschijnlijk de Gebruiker, Chat en ChatMessage naar classen zetten.. Deze waren tot voordien interfaces, maar ik zie niet
echt het nut in om een interface van deze classen te maken? Persoonlijk was het idee om wat meer uitgebreider hierin te gaan: Moderator is een gebruiker maar met extra functies,.. public interface Moderator : Gebruiker .... maar ik ga dit als een classe laten
PS: Er zijn nog veel functies die nog niet optimaal werken buiten de chat.. Gebruiker dinges zoals saven van instellen enzo zouden moeten werken
en het ophalen van titles van topics.
Maar het is nog zeker niet af
Ik ga deze topic nu even met rust laten. Ik weet nu wat ik moet weten met het verder ontwikkelen van de API. (Al bij al was deze
topic voor het proof of concept van de API)
@blood: Is dit ongeveer wat je denk kwa properties en nederlandstalig
Ik heb het op nederlands gehouden, omdat ik vermoed dat er wel wat verwarring kan onstaan in het engels (bv. Gebruiker weet je direct dat het Helpmij is)
maar User is iets dat ook van eender welk ander ding kan zijn (bv. Windows User)
Code:
/*
* Unofficial Helpmij.nl Aplication Interface
* Copyright (C) 2009 Maxim Van de Wynckel <Maximvdw> and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Net;
using System.Drawing;
using Helpmij.API.Profiel.Events;
namespace Helpmij.API.Profiel
{
/// <summary>
/// Helpmij.nl Gebruiker
/// </summary>
public class Gebruiker
{
#region Gebruiker Gegevens
/// <summary>
/// Gebruikers Identificatie Nummer
/// </summary>
int _id = -1;
/// <summary>
/// Gebruikersnaam
/// </summary>
String _username = "";
/// <summary>
/// Gebruikers Status
/// </summary>
GebruikerStatus _status = GebruikerStatus.Offline;
/// <summary>
/// Gebruiker Session Cookies
/// </summary>
CookieContainer _cookies = new CookieContainer();
/// <summary>
/// Gebruiker Handtekening
/// </summary>
GebruikerHandtekening _signature = new GebruikerHandtekening();
/// <summary>
/// Gebruiker Systemen
/// </summary>
List<GebruikerSysteem> _systemen = new List<GebruikerSysteem>();
#endregion
#region Gebruiker Events
/// <summary>
/// Event - Gebruiker Status Wijziging
/// </summary>
public event GebruikerStatusEvent onGebruikerStatusChange = null;
#endregion
#region Gebruiker Initialize
/// <summary>
/// Maak een nieuwe Gebruiker
/// </summary>
/// <param name="username">String - Gebruikersnaam</param>
public Gebruiker(String username)
{
// Argumenten opslaan
_username = username;
}
/// <summary>
/// Log een Gebruiker in
/// </summary>
/// <param name="username">String - Gebruikersnaam</param>
/// <param name="password">String - Wachtwoord</param>
/// <param name="encrypted">Boolean - Wachtwoord als MD5?</param>
public Gebruiker(String username, String password, Boolean encrypted)
{
// Argumenten opslaan
_username = username;
}
/// <summary>
/// Verkrijg een Gebruiker op basis van zijn ID
/// </summary>
/// <param name="id">int - Gebruiker ID</param>
public Gebruiker(int id)
{
// Argumenten opslaan
_id = id;
}
#endregion
/// <summary>
/// Laad de gegevens van een gebruiker
/// </summary>
/// <param name="user">Gebruiker - User</param>
/// <returns>Gebruiker - User</returns>
public static Gebruiker LaadGegevens(Gebruiker user)
{
// Controlleer of het een ingelogde gebruiker is
if (user.Cookies.Count != 0)
{
// Laad prive gegevens
// Laad publieke gegevens
return null;
}
else
{
// Laad publieke gegevens
return null;
}
}
#region Gebruiker Gegevens
/// <summary>
/// Get/Set de Gebruiker ID
/// </summary>
public int GebruikerID
{
get
{
return _id;
}
set
{
_id = value;
}
}
/// <summary>
/// Get/Set de Gebruikersnaam
/// </summary>
public String Gebruikersnaam
{
get
{
return _username;
}
set
{
_username = value;
}
}
/// <summary>
/// Get/Set de Gebruikers Status
/// </summary>
public GebruikerStatus Status
{
get
{
return _status;
}
set
{
_status = value;
if (onGebruikerStatusChange != null)
{
// Invoke event
Thread thEvent = new Thread(() => onGebruikerStatusChange(this, new GebruikerStatusArgs(this, _status)));
thEvent.Start();
}
}
}
/// <summary>
/// Verkrijg de Gebruiker Handtekening
/// </summary>
public GebruikerHandtekening Handtekening
{
get
{
return _signature;
}
set
{
_signature = value;
}
}
/// <summary>
/// Get/Set HTTP Cookies
/// </summary>
public CookieContainer Cookies
{
get
{
return _cookies;
}
set
{
_cookies = value;
}
}
/// <summary>
/// Get/Set Gebruiker Systemen
/// </summary>
public List<GebruikerSysteem> Systemen
{
get
{
return _systemen;
}
set
{
_systemen = value;
}
}
#endregion
#region Override Functies
/// <summary>
/// Verkrijg de Gebruikersnaam
/// </summary>
/// <returns>String - Gebruikersnaam</returns>
public override string ToString()
{
return _username;
}
#endregion
}
}
gr,
Maxim