151 lines
5.0 KiB
C#
151 lines
5.0 KiB
C#
using Google.Protobuf;
|
|
using Google.Protobuf.WellKnownTypes;
|
|
|
|
|
|
using ServerCore;
|
|
using ServerBase;
|
|
using ServerCommon;
|
|
using ServerCommon.BusinessLogDomain;
|
|
using MetaAssets;
|
|
|
|
|
|
|
|
|
|
namespace GameServer;
|
|
|
|
public class SystemMetaMail : EntityBase
|
|
{
|
|
private SystemMetaMail(EntityBase parent)
|
|
: base(EntityType.SystemMail, parent)
|
|
{
|
|
}
|
|
|
|
public override async Task<Result> onInit()
|
|
{
|
|
addEntityAttribute(new SystemMetaMailAttribute(this));
|
|
|
|
return await base.onInit();
|
|
}
|
|
|
|
public static async Task<(Result, SystemMetaMail?)> createTestSystemMail(EntityBase owner, int mail_sequence_num)
|
|
{
|
|
var system_mail = new SystemMetaMail(owner);
|
|
var result = await system_mail.onInit();
|
|
if (result.isFail())
|
|
{
|
|
return (result, null);
|
|
}
|
|
|
|
var err_msg = string.Empty;
|
|
DateTime now = DateTime.UtcNow;
|
|
|
|
var system_meta_mail_attribute = system_mail.getEntityAttribute<SystemMetaMailAttribute>();
|
|
NullReferenceCheckHelper.throwIfNull(system_meta_mail_attribute, () => $"system_meta_mail_attribute is null !!! - {owner.toBasicString()}");
|
|
|
|
List<ServerCommon.MailItem> data = new List<ServerCommon.MailItem>();
|
|
data.Add(new ServerCommon.MailItem() { ItemId = 15231470, Count = 1 });
|
|
data.Add(new ServerCommon.MailItem() { ItemId = 31020014, Count = 1 });
|
|
|
|
system_meta_mail_attribute.MailId = mail_sequence_num + 1;
|
|
|
|
List<OperationSystemMessage> titles = new();
|
|
OperationSystemMessage title_ko = new();
|
|
title_ko.LanguageType = LanguageType.Ko;
|
|
title_ko.Text = "한국어 타이틀";
|
|
titles.Add(title_ko);
|
|
|
|
OperationSystemMessage title_ja = new();
|
|
title_ja.LanguageType = LanguageType.Ja;
|
|
title_ja.Text = "日本語 タイトル";//メッセージ 送信者
|
|
titles.Add(title_ja);
|
|
|
|
OperationSystemMessage title_en = new();
|
|
title_en.LanguageType = LanguageType.En;
|
|
title_en.Text = "English Title";
|
|
titles.Add(title_en);
|
|
|
|
system_meta_mail_attribute.Title = titles;
|
|
|
|
|
|
List<OperationSystemMessage> messages = new();
|
|
OperationSystemMessage msg_ko = new();
|
|
msg_ko.LanguageType = LanguageType.Ko;
|
|
msg_ko.Text = "한국어 메시지";
|
|
messages.Add(msg_ko);
|
|
|
|
OperationSystemMessage msg_ja = new();
|
|
msg_ja.LanguageType = LanguageType.Ja;
|
|
msg_ja.Text = "日本語 メッセージ";// 送信者
|
|
messages.Add(msg_ja);
|
|
|
|
OperationSystemMessage msg_en = new();
|
|
msg_en.LanguageType = LanguageType.En;
|
|
msg_en.Text = "English Message";
|
|
messages.Add(msg_en);
|
|
|
|
system_meta_mail_attribute.Text = messages;
|
|
|
|
|
|
List<OperationSystemMessage> senders = new();
|
|
OperationSystemMessage senders_ko = new();
|
|
senders_ko.LanguageType = LanguageType.Ko;
|
|
senders_ko.Text = "한국어 보낸이";
|
|
senders.Add(senders_ko);
|
|
|
|
OperationSystemMessage senders_ja = new();
|
|
senders_ja.LanguageType = LanguageType.Ja;
|
|
senders_ja.Text = "日本語 送信者";//
|
|
senders.Add(senders_ja);
|
|
|
|
OperationSystemMessage senders_en = new();
|
|
senders_en.LanguageType = LanguageType.En;
|
|
senders_en.Text = "English Sender";
|
|
senders.Add(senders_en);
|
|
|
|
system_meta_mail_attribute.SenderNickName = messages;
|
|
|
|
system_meta_mail_attribute.StartTime = now;
|
|
system_meta_mail_attribute.EndTime = now.AddDays(2);
|
|
system_meta_mail_attribute.ItemList.AddRange(data);
|
|
|
|
system_meta_mail_attribute.newEntityAttribute();
|
|
|
|
return (result, system_mail);
|
|
}
|
|
|
|
public static async Task<(Result, SystemMetaMail?)> createMailFromDoc(EntityBase parent, SystemMetaMailDoc doc)
|
|
{
|
|
var system_mail = new SystemMetaMail(parent);
|
|
var result = await system_mail.onInit();
|
|
if (result.isFail())
|
|
{
|
|
return (result, null);
|
|
}
|
|
|
|
var err_msg = string.Empty;
|
|
|
|
var system_mail_attribute = system_mail.getEntityAttribute<SystemMetaMailAttribute>();
|
|
NullReferenceCheckHelper.throwIfNull(system_mail_attribute, () => $"system_mail_attribute is null !!! - {parent.toBasicString()}");
|
|
|
|
if (system_mail_attribute.copyEntityAttributeFromDoc(doc) == false)
|
|
{
|
|
err_msg = $"Failed to copyEntityAttributeFromDoc !!! : doc_type {doc.GetType()} - {system_mail.getRootParent()?.toBasicString()}";
|
|
result.setFail(ServerErrorCode.DynamoDbDocCopyToEntityAttributeFailed, err_msg);
|
|
Log.getLogger().error(err_msg);
|
|
return (result, null);
|
|
}
|
|
|
|
return (result, system_mail);
|
|
}
|
|
|
|
public override string toBasicString()
|
|
{
|
|
return $"{this.getTypeName()} - {getRootParent()?.toBasicString()}";
|
|
}
|
|
|
|
public override string toSummaryString()
|
|
{
|
|
return $"{this.getTypeName()} - {getRootParent()?.toSummaryString()}";
|
|
}
|
|
}
|