using ServerCommon; using ServerCore; using ServerBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GameServer { internal class BuildingFloorAction : EntityActionBase { public BuildingFloorAction(BuildingFloor owner) : base(owner) { } public override async Task onInit() { var result = new Result(); return await Task.FromResult(result); } public override void onClear() { return; } public Result tryLoadBuildingFloorFromDoc(BuildingFloorDoc buildingFloorDoc) { var result = new Result(); var err_msg = string.Empty; var building_floor = getOwner() as BuildingFloor; NullReferenceCheckHelper.throwIfNull(building_floor, () => $"building_floor is null !!!"); var building_floor_attribute = building_floor.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(building_floor_attribute, () => $"building_floor_attribute is null !!!"); if (!building_floor_attribute.copyEntityAttributeFromDoc(buildingFloorDoc)) { err_msg = $"Failed to copyEntityAttributeFromDoc() !!! to:{building_floor_attribute.getTypeName()}, from:{buildingFloorDoc.getTypeName()} : {this.getTypeName()}"; result.setFail(ServerErrorCode.DynamoDbDocCopyToEntityAttributeFailed, err_msg); Log.getLogger().error(result.toBasicString()); return result; } return result; } public bool isRentalFinish() { var building_floor = getOwner() as BuildingFloor; NullReferenceCheckHelper.throwIfNull(building_floor, () => $"building_floor is null !!!"); var building_floor_attribute = building_floor.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(building_floor_attribute, () => $"building_floor_attribute is null !!!"); if (DateTime.UtcNow > building_floor_attribute.RentalFinishTime) return true; return false; } public (int, int, int) getAddress() { var building_floor = getOwner() as BuildingFloor; NullReferenceCheckHelper.throwIfNull(building_floor, () => $"building_floor is null !!!"); var building_floor_attribute = building_floor.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(building_floor_attribute, () => $"building_floor_attribute is null !!!"); var land_meta_id = building_floor_attribute.LandMetaId; var building_meta_id = building_floor_attribute.BuildingMetaId; var floor = building_floor_attribute.Floor; return (land_meta_id, building_meta_id, floor); } } }