초기커밋
This commit is contained in:
150
GameServer/Global/SystemMail/SystemMetaMail.cs
Normal file
150
GameServer/Global/SystemMail/SystemMetaMail.cs
Normal file
@@ -0,0 +1,150 @@
|
||||
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()}";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user