초기커밋
This commit is contained in:
122
ServerCommon/Entity/Attribute/PartyInstanceAttribute.cs
Normal file
122
ServerCommon/Entity/Attribute/PartyInstanceAttribute.cs
Normal file
@@ -0,0 +1,122 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user