You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.7 KiB
62 lines
1.7 KiB
using PComm;
|
|
using PObject;
|
|
using PUtility;
|
|
using ServerForm.ChildForm;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace ServerForm
|
|
{
|
|
class DataManager
|
|
{
|
|
public static DataManager Instance { get; private set; } = new DataManager();
|
|
|
|
public void Process(PClientInfo clientInfo, PDataType dataType, byte[] data, LogHandler logHandler, FormHandler formHandler)
|
|
{
|
|
string log = "";
|
|
switch (dataType)
|
|
{
|
|
case PDataType.ClientID:
|
|
log = Encoding.UTF8.GetString(data, 0, data.Length);
|
|
logHandler(clientInfo.Client, log);
|
|
break;
|
|
case PDataType.SimpleString:
|
|
log = Encoding.UTF8.GetString(data, 0, data.Length);
|
|
logHandler(clientInfo.Client, log);
|
|
break;
|
|
case PDataType.PersonObject:
|
|
Person person = PSerializer.Deserialize<Person>(data);
|
|
log = $"Name: {person.Name}, Age: {person.Age}";
|
|
logHandler(clientInfo.Client, log);
|
|
break;
|
|
case PDataType.ShowImage:
|
|
Image image = PUtil.BytesToImage(data);
|
|
|
|
log = $"Receive {data.Length.ToString("#,###")}bytes image";
|
|
logHandler(clientInfo.Client, log);
|
|
|
|
ImageForm imgForm = new ImageForm(image);
|
|
formHandler(imgForm);
|
|
break;
|
|
case PDataType.SaveFile:
|
|
PFileData fileData = PSerializer.Deserialize<PFileData>(data);
|
|
PFileManager.Instance.SaveFile(fileData.Data, fileData.FileName);
|
|
|
|
log = $"Receive {data.Length.ToString("#,###")}bytes file and save it";
|
|
logHandler(clientInfo.Client, log);
|
|
break;
|
|
default:
|
|
logHandler(clientInfo.Client, "ERROR!!! UNEXPECTED DATA TYPE!!!");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|