Skip to content

Commit

Permalink
Ajout paramètre args
Browse files Browse the repository at this point in the history
  • Loading branch information
zonetecde committed Mar 10, 2023
1 parent 1249e98 commit 00e892b
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 24 deletions.
5 changes: 3 additions & 2 deletions ClassLibrary/ClassLibrary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,19 @@ public User(string userID)

public class Message
{
public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "")
public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "", string args = "")
{
Id = id;
Content = content;
MessageType = messageType;
ToId = toId;
Args = args;
}

public string Id { get; set; }
public string Content { get; set; }
public string ToId { get; set; }

public string Args { get; }

public MESSAGE_TYPE MessageType { get; set; }
}
Expand Down
17 changes: 12 additions & 5 deletions zck_client/ClassLibrary.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
namespace zck_client
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace zck_client
{
public class ClassLibrary
{
Expand Down Expand Up @@ -29,18 +35,19 @@ public User(string userID)

public class Message
{
public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "")
public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "", string args = "")
{
Id = id;
Content = content;
MessageType = messageType;
ToId = toId;
Args = args;
}

public string Id { get; set; }
public string Content { get; set; }
public string ToId { get; set; }

public string Args { get; }

public MESSAGE_TYPE MessageType { get; set; }
}
Expand All @@ -52,9 +59,9 @@ public enum MESSAGE_TYPE
DISCONNECTION,
DONNER_ID,
MESSAGE_BRUTE,
FILE_UPDATED,
FILE_UPDATED, // au passé, mais c'est car le client lui recevra ceci lorsqu'un fichié a été modifié par un user
GET_FILE,
FILE_DELETED,
FILE_DELETED, // au passé, mais c'est car le client lui recevra ceci lorsqu'un fichié a été modifié par un user
CREATE_FILE,
LIST_FILE
}
Expand Down
23 changes: 10 additions & 13 deletions zck_client/ZoneckClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ public ZoneckClient(string appName, string ip, int port, Action<Message> Receive
/// Envois un message à tous ou un utilisateur du serveur
/// </summary>
/// <param name="str">Le message à envoyer</param>
public void Send(string str, string toId = "")
public void Send(string str, string toId = "", string args = "")
{
string msg = JsonConvert.SerializeObject(new Message(MyId, str, MESSAGE_TYPE.MESSAGE, toId)) + "\r\n";
string msg = JsonConvert.SerializeObject(new Message(MyId, str, MESSAGE_TYPE.MESSAGE, toId, args: args)) + "\r\n";

var buffter = Encoding.UTF8.GetBytes(msg);
var temp = SocketClient.Send(buffter);
Expand All @@ -51,9 +51,9 @@ public void Send(string str, string toId = "")
/// </summary>
/// <param name="path">Nom du fichier demandé (ex : folder/file.txt)</param>
/// <remarks>Le contenue du fichier sera envoyé dans votre fonction MessageReceived. Ce sera un message de type "GET_FILE". Son contenue se trouvera donc dans le msg.Content</remarks>
public void GetFile(string path)
public void GetFile(string path, string args = "")
{
string msg = JsonConvert.SerializeObject(new Message(MyId, path, MESSAGE_TYPE.GET_FILE)) + "\r\n";
string msg = JsonConvert.SerializeObject(new Message(MyId, path, MESSAGE_TYPE.GET_FILE, args: args)) + "\r\n";

var buffter = Encoding.UTF8.GetBytes(msg);
var temp = SocketClient.Send(buffter);
Expand All @@ -77,9 +77,9 @@ public void CreateFile(string path)
/// <param name="path">Chemin du fichier à supprimer</param>
/// <param name="warnOtherPeople">Prévenir les autres utilisateurs qu'un fichier a été supprimé</param>
/// <remarks>Si warnOtherPeople est activé, Les personnes connectées au serveur recevrons une alerte envoyé dans leur fonction MessageReceived. Ce sera un message de type "FILE_DELETED". Le chemin d'accès au fichier se trouvera dans msg.Content</remarks>
public void DeleteFile(string path, bool warnOtherPeople)
public void DeleteFile(string path, bool warnOtherPeople, string args = "")
{
string msg = JsonConvert.SerializeObject(new Message(MyId, JsonConvert.SerializeObject(new FileMessage(path, warnOtherPeople)), MESSAGE_TYPE.FILE_DELETED)) + "\r\n";
string msg = JsonConvert.SerializeObject(new Message(MyId, JsonConvert.SerializeObject(new FileMessage(path, warnOtherPeople)), MESSAGE_TYPE.FILE_DELETED, args:args)) + "\r\n";

var buffter = Encoding.UTF8.GetBytes(msg);
var temp = SocketClient.Send(buffter);
Expand All @@ -92,9 +92,9 @@ public void DeleteFile(string path, bool warnOtherPeople)
/// <param name="updatedFileContent">Le nouveau contenue du fichier</param>
/// <param name="warnOtherPeople">Prévenir les autres utilisateurs qu'un fichier a été modifié</param>
/// <remarks>Si warnOtherPeople est activé, Les personnes connectées au serveur recevrons une alerte envoyé dans leur fonction MessageReceived. Ce sera un message de type "FILE_UPDATED". Il faudra désérialiser le msg.Content en type "FileMessage". Le chemin d'accès au fichier se trouvera dans fM.Path, et le nouveau contenu dans fM.Content.</remarks>
public void UpdateFile(string path, string updatedFileContent, bool warnOtherPeople)
public void UpdateFile(string path, string updatedFileContent, bool warnOtherPeople, string args = "")
{
string msg = JsonConvert.SerializeObject(new Message(MyId, JsonConvert.SerializeObject(new FileMessage(path, warnOtherPeople, updatedFileContent)), MESSAGE_TYPE.FILE_UPDATED)) + "\r\n";
string msg = JsonConvert.SerializeObject(new Message(MyId, JsonConvert.SerializeObject(new FileMessage(path, warnOtherPeople, updatedFileContent)), MESSAGE_TYPE.FILE_UPDATED, args: args)) + "\r\n";

var buffter = Encoding.UTF8.GetBytes(msg);
var temp = SocketClient.Send(buffter);
Expand All @@ -103,9 +103,9 @@ public void UpdateFile(string path, string updatedFileContent, bool warnOtherPeo
/// <summary>
/// Retourne dans un message de type LIST_FILE (dans votre fonction MessageReceived) tous les fichiers du serveur séparé par une virgule.
/// </summary>
public void ListFile()
public void ListFile(string args = "")
{
string msg = JsonConvert.SerializeObject(new Message(MyId, "I wanna receive files", MESSAGE_TYPE.LIST_FILE)) + "\r\n";
string msg = JsonConvert.SerializeObject(new Message(MyId, args, MESSAGE_TYPE.LIST_FILE, args: args)) + "\r\n";

var buffter = Encoding.UTF8.GetBytes(msg);
var temp = SocketClient.Send(buffter);
Expand All @@ -129,16 +129,13 @@ private void _Receive()

if (!String.IsNullOrEmpty(message))
{

Message received_message = JsonConvert.DeserializeObject<Message>(message);

// pour id
if (received_message.MessageType == MESSAGE_TYPE.DONNER_ID)
MyId = received_message.Content;

Receive(received_message);


}
}
catch
Expand Down
9 changes: 5 additions & 4 deletions zck_server/ZoneckServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest
if (u.SessionID != clientSession.SessionID)
{
// Envois l'alerte au client 'u' que le fichier a été supprimé
u.Send(JsonConvert.SerializeObject(new Message(received_message.Id, fM.Path, MESSAGE_TYPE.FILE_DELETED)));
u.Send(JsonConvert.SerializeObject(new Message(received_message.Id, fM.Path, MESSAGE_TYPE.FILE_DELETED, args: received_message.Args)));

if (enableDebug)
DebugMessage(DateTime.Now.ToString() + " - Le client " + u.SessionID + " sait que " + fM.Path + " a été supprimé");
Expand All @@ -228,7 +228,8 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest
var files = Directory.GetFiles("serverfiles/", "*.*", SearchOption.AllDirectories);

// Renvois à la personne un objet de type Message contenant la liste des fichiers séparés par une virgule.
Server.GetSessionByID(received_message.Id).TrySend(JsonConvert.SerializeObject(new Message(received_message.Content, String.Join(",", files).Replace("serverfiles/", string.Empty), MESSAGE_TYPE.LIST_FILE)));
Server.GetSessionByID(received_message.Id).TrySend(JsonConvert.SerializeObject(new Message(received_message.Content, String.Join(",", files).Replace("serverfiles/", string.Empty), MESSAGE_TYPE.LIST_FILE,
args: received_message.Args)));

if (enableDebug)
DebugMessage((DateTime.Now.ToString() + " - " + received_message.Id + " a reçu une liste des fichiers présents sur le serveur"));
Expand Down Expand Up @@ -265,7 +266,7 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest
{
// Envois l'information que le fichier a été modifié
// .Content est un objet de type FileMessage contenant le chemin d'accès au fichier + son nouveau contenue
u.Send(JsonConvert.SerializeObject(new Message(received_message.Id, JsonConvert.SerializeObject(new FileMessage(fM.Path, content: fM.Content)), MESSAGE_TYPE.FILE_UPDATED)));
u.Send(JsonConvert.SerializeObject(new Message(received_message.Id, JsonConvert.SerializeObject(new FileMessage(fM.Path, content: fM.Content)), MESSAGE_TYPE.FILE_UPDATED, args: received_message.Args)));

if (enableDebug)
DebugMessage(DateTime.Now.ToString() + " - " + u.SessionID + " sait que le fichier " + fM.Path + " a été modifié");
Expand All @@ -286,7 +287,7 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest
// Renvois le contenu du fichier au client dans un objet FileMessage
// fM.Path = fichier
// fM.Content = son contenue
Server.GetSessionByID(received_message.Id).TrySend(JsonConvert.SerializeObject(new Message("server", JsonConvert.SerializeObject(new FileMessage(received_message.Content, content: content)), MESSAGE_TYPE.GET_FILE)));
Server.GetSessionByID(received_message.Id).TrySend(JsonConvert.SerializeObject(new Message("server", JsonConvert.SerializeObject(new FileMessage(received_message.Content, content: content)), MESSAGE_TYPE.GET_FILE, args:received_message.Args)));

if (enableDebug)
DebugMessage((DateTime.Now.ToString() + " - " + received_message.Id + " a reçu le contenu du fichier ") + received_message.Content);
Expand Down

0 comments on commit 00e892b

Please sign in to comment.