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

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;
}
}
}
}