[feature] python兼容层基本完成
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
from layer import Layer
|
||||
from field import Field
|
||||
from user import User
|
||||
from user_field import UserFieldRecord
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class Service:
|
||||
layer = Layer(LAYER)
|
||||
x = 16
|
||||
|
||||
def AddField(self, cs_field) -> str:
|
||||
field = Field(cs_field)
|
||||
self.layer.add_field(field)
|
||||
return ""
|
||||
@@ -0,0 +1,45 @@
|
||||
import clr
|
||||
clr.AddReference('System')
|
||||
from System import Guid
|
||||
|
||||
class FieldType:
|
||||
UNSPECIFIED = 0
|
||||
TENNIS = 1
|
||||
BASKETBALL = 2
|
||||
BADMINTON = 3
|
||||
|
||||
|
||||
class Field:
|
||||
id = ""
|
||||
name = ""
|
||||
position = ""
|
||||
open_time = ""
|
||||
type = FieldType.UNSPECIFIED
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if len(args) == 0:
|
||||
pass
|
||||
elif len(args) == 1:
|
||||
field = args[0]
|
||||
self.id = field.Id.ToString()
|
||||
self.name = field.Name
|
||||
self.position = field.Position
|
||||
self.open_time = field.OpenTime
|
||||
self.type = field.Type
|
||||
elif len(args) == 4:
|
||||
self.id, self.name, self.position, self.type = args
|
||||
else:
|
||||
raise ValueError("Invalid arguments for Field initialization")
|
||||
|
||||
def __str__(self):
|
||||
return f"Field: Id: {self.id}, Name: {self.name}, Position: {self.position}, Type: {self.type}"
|
||||
|
||||
def parse_to_csharp_object(self, empty_field):
|
||||
empty_field.Id = Guid.Parse(self.id)
|
||||
empty_field.Name = self.name
|
||||
empty_field.Position = self.position
|
||||
empty_field.OpenTime = self.open_time
|
||||
print(FieldType.UNSPECIFIED)
|
||||
print(self.type)
|
||||
empty_field.Type = self.type
|
||||
return empty_field
|
||||
@@ -0,0 +1,37 @@
|
||||
import clr
|
||||
from user import User
|
||||
from field import Field
|
||||
from user_field import UserFieldRecord
|
||||
|
||||
clr.AddReference('System')
|
||||
from System import Guid, DateTime
|
||||
|
||||
|
||||
class Layer:
|
||||
def __init__(self, layer):
|
||||
self._field_db = layer.FieldDb
|
||||
self._record_db = layer.RecordDb
|
||||
|
||||
def add_field(self, field: Field) -> 'Layer':
|
||||
self._field_db.Add(field.parse_to_csharp_object(self._field_db.GetDefaultEntity()))
|
||||
return self
|
||||
|
||||
# The value property will
|
||||
def find_field(self, key: str, value: str) -> [Field]:
|
||||
return [Field(t) for t in self._field_db.FindAll(key, Guid.Parse(value))]
|
||||
|
||||
def remove_field(self, field: Field) -> 'Layer':
|
||||
self._field_db.TryDelete(field.id, field.parse_to_csharp_object(self._field_db.GetDefaultEntity()).Id)
|
||||
return self
|
||||
|
||||
def add_record(self, record: UserFieldRecord) -> 'Layer':
|
||||
self._record_db.Add(record.parse_to_csharp_object(self._record_db.GetDefaultEntity()))
|
||||
return self
|
||||
|
||||
def find_record(self, key: str, value: str) -> [UserFieldRecord]:
|
||||
return [UserFieldRecord(t) for t in self._record_db.FindAll(key, Guid.Parse(value))]
|
||||
|
||||
# One User only allowed to book one field at a time
|
||||
def remove_record(self, record: UserFieldRecord) -> 'Layer':
|
||||
self._record_db.TryDelete("Uid", record.parse_to_csharp_object(self._record_db.GetDefaultEntity()).Uid)
|
||||
return self
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
|
||||
class RoleNames:
|
||||
NOT_SUPPORT = 0
|
||||
COMMON_USER = 1
|
||||
ADMINISTRATOR = 2
|
||||
|
||||
|
||||
class User:
|
||||
id = ""
|
||||
role = RoleNames.NOT_SUPPORT
|
||||
name = ""
|
||||
|
||||
# x:
|
||||
def __init__(self, user):
|
||||
self.id = user.Id.ToString()
|
||||
self.role = user.Role
|
||||
self.role = user.Name
|
||||
@@ -0,0 +1,41 @@
|
||||
from field import *
|
||||
from user import *
|
||||
import time
|
||||
import clr
|
||||
|
||||
clr.AddReference('System')
|
||||
from System import Guid, Convert
|
||||
|
||||
|
||||
class UserFieldRecord:
|
||||
fid = ""
|
||||
uid = ""
|
||||
start_time: time.struct_time
|
||||
end_time: time.struct_time
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if len(args) == 0:
|
||||
pass
|
||||
if len(args) == 1:
|
||||
field_record = args[0]
|
||||
self.fid = field_record.Fid.ToString()
|
||||
self.uid = field_record.Uid.ToString()
|
||||
self.start_time = time.strptime(field_record.StartTime.ToString(), "%Y-%m-%d %H:%M:%S")
|
||||
self.end_time = time.strptime(field_record.EndTime.ToString(), "%Y-%m-%d %H:%M:%S")
|
||||
elif len(args) == 4 and isinstance(args[0], User) and isinstance(args[1], Field) and isinstance(args[2],
|
||||
time.struct_time) and isinstance(
|
||||
args[3], time.struct_time):
|
||||
user, field, start_time, end_time = args
|
||||
self.fid = field.id
|
||||
self.uid = user.id
|
||||
self.start_time = start_time
|
||||
self.end_time = end_time
|
||||
else:
|
||||
raise ValueError("Invalid arguments for UserFieldRecord initialization")
|
||||
|
||||
def parse_to_csharp_object(self, empty_field_record):
|
||||
empty_field_record.Fid = Guid.Parse(self.fid)
|
||||
empty_field_record.Uid = Guid.Parse(self.uid)
|
||||
empty_field_record.StartTime = Convert.ToDateTime(time.strftime("%Y-%m-%d %H:%M:%S", self.start_time))
|
||||
empty_field_record.EndTime = Convert.ToDateTime(time.strftime("%Y-%m-%d %H:%M:%S", self.end_time))
|
||||
return empty_field_record
|
||||
Reference in New Issue
Block a user