122 lines
4.2 KiB
C#
122 lines
4.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using Google.Protobuf.WellKnownTypes;
|
|
|
|
|
|
using ServerCore; using ServerBase;
|
|
using ServerCommon.Cache;
|
|
|
|
|
|
namespace ServerCommon;
|
|
|
|
|
|
public class PartyInstanceAttribute : EntityAttributeBase, ICopyEntityAttributeFromCache
|
|
{
|
|
public int InstanceId { get; set; } = 0;
|
|
public string RoomId { get; set; } = string.Empty;
|
|
public Timestamp StartTime { get; set; } = new();
|
|
public Timestamp EndTime { get; set; } = new();
|
|
public int JoinMemberCount { get; set; } = 0;
|
|
|
|
public PartyInstanceAttribute(EntityBase owner) : base(owner)
|
|
{
|
|
}
|
|
|
|
public override void onClear()
|
|
{
|
|
InstanceId = 0;
|
|
RoomId = string.Empty;
|
|
StartTime = DateTimeHelper.MinTime.ToTimestamp();
|
|
EndTime = DateTimeHelper.MinTime.ToTimestamp();
|
|
JoinMemberCount = 0;
|
|
}
|
|
|
|
public override EntityAttributeBase onCloned()
|
|
{
|
|
var cloned = new PartyInstanceAttribute(getOwner())
|
|
{
|
|
InstanceId = InstanceId,
|
|
RoomId = RoomId,
|
|
StartTime = StartTime,
|
|
EndTime = EndTime,
|
|
JoinMemberCount = JoinMemberCount
|
|
};
|
|
|
|
return cloned;
|
|
}
|
|
|
|
public bool copyEntityAttributeFromCache(CacheBase? cacheBase)
|
|
{
|
|
var party_instance_cache = cacheBase as PartyInstanceCache;
|
|
if(null == party_instance_cache)
|
|
{
|
|
var err_msg = $"Failed to copyEntityAttributeFromCache() !!!, party_cache is null :{nameof(PartyInstanceCache)}";
|
|
Log.getLogger().error(err_msg);
|
|
return false;
|
|
}
|
|
|
|
//=====================================================================================
|
|
// Cache => Attribute
|
|
//=====================================================================================
|
|
InstanceId = party_instance_cache.InstanceId;
|
|
RoomId = party_instance_cache.RoomId;
|
|
StartTime = party_instance_cache.StartTime;
|
|
EndTime = party_instance_cache.EndTime;
|
|
JoinMemberCount = party_instance_cache.JoinMemberCount;
|
|
|
|
return true;
|
|
}
|
|
|
|
public override IEntityAttributeTransactor onNewEntityAttributeTransactor()
|
|
{
|
|
return new PartyInstanceAttributeTransactor(getOwner());
|
|
}
|
|
|
|
public override async Task<(Result, DynamoDbDocBase?)> toDocBase(bool isForQuery = true)
|
|
{
|
|
await Task.CompletedTask;
|
|
|
|
return (new Result(), null);
|
|
}
|
|
}
|
|
|
|
public class PartyInstanceAttributeTransactor : EntityAttributeTransactorBase<PartyInstanceAttribute>, ICopyEntityAttributeTransactorFromEntityAttribute
|
|
{
|
|
public PartyInstanceAttributeTransactor(EntityBase owner) : base(owner)
|
|
{
|
|
}
|
|
|
|
public bool copyEntityAttributeTransactorFromEntityAttribute(EntityAttributeBase entityAttributeBase)
|
|
{
|
|
string err_msg;
|
|
|
|
var copy_from_party_instance_attribute = entityAttributeBase as PartyInstanceAttribute;
|
|
if (null == copy_from_party_instance_attribute)
|
|
{
|
|
err_msg = $"Failed to copyEntityAttributeTransactorFromEntityAttribute() !!!, copy_from_party_instance_attribute is null :{nameof(PartyInstanceAttribute)}";
|
|
Log.getLogger().error(err_msg);
|
|
return false;
|
|
}
|
|
|
|
var copy_to_party_instance_attribute = getClonedEntityAttribute() as PartyInstanceAttribute;
|
|
if (null == copy_to_party_instance_attribute)
|
|
{
|
|
err_msg = $"Failed to copyEntityAttributeTransactorFromEntityAttribute() !!!, copy_to_party_instance_attribute is null :{nameof(PartyInstanceAttribute)}";
|
|
Log.getLogger().error(err_msg);
|
|
return false;
|
|
}
|
|
|
|
copy_to_party_instance_attribute.InstanceId = copy_from_party_instance_attribute.InstanceId;
|
|
copy_to_party_instance_attribute.RoomId = copy_from_party_instance_attribute.RoomId;
|
|
copy_to_party_instance_attribute.StartTime = copy_from_party_instance_attribute.StartTime;
|
|
copy_to_party_instance_attribute.EndTime = copy_from_party_instance_attribute.EndTime;
|
|
copy_to_party_instance_attribute.JoinMemberCount = copy_from_party_instance_attribute.JoinMemberCount;
|
|
|
|
return true;
|
|
}
|
|
} |