|
1 | 1 | using BotSharp.Abstraction.VectorStorage.Enums; |
| 2 | +using Newtonsoft.Json.Linq; |
2 | 3 |
|
3 | 4 | namespace BotSharp.Abstraction.VectorStorage.Models; |
4 | 5 |
|
@@ -26,33 +27,35 @@ public override string ToString() |
26 | 27 | return $"{DataValue} ({DataType})"; |
27 | 28 | } |
28 | 29 |
|
29 | | - public static VectorPayloadValue BuildStringValue(string data) |
30 | | - { |
31 | | - return new(data, VectorPayloadDataType.String); |
32 | | - } |
33 | | - |
34 | | - public static VectorPayloadValue BuildIntegerValue(long data) |
35 | | - { |
36 | | - return new(data, VectorPayloadDataType.Integer); |
37 | | - } |
38 | | - |
39 | | - public static VectorPayloadValue BuildDoubleValue(double data) |
40 | | - { |
41 | | - return new(data, VectorPayloadDataType.Double); |
42 | | - } |
43 | | - |
44 | | - public static VectorPayloadValue BuildBooleanValue(bool data) |
45 | | - { |
46 | | - return new(data, VectorPayloadDataType.Boolean); |
47 | | - } |
48 | | - |
49 | | - public static VectorPayloadValue BuildDatetimeValue(DateTime data) |
50 | | - { |
51 | | - return new(data, VectorPayloadDataType.Datetime); |
52 | | - } |
53 | | - |
54 | | - public static VectorPayloadValue BuildUnkownValue(object data) |
55 | | - { |
56 | | - return new(data, VectorPayloadDataType.Unknown); |
57 | | - } |
| 30 | + public static VectorPayloadValue BuildStringValue(string data) => new(data, VectorPayloadDataType.String); |
| 31 | + public static VectorPayloadValue BuildIntegerValue(long data) => new(data, VectorPayloadDataType.Integer); |
| 32 | + public static VectorPayloadValue BuildIntegerValue(int data) => new(data, VectorPayloadDataType.Integer); |
| 33 | + public static VectorPayloadValue BuildIntegerValue(short data) => new(data, VectorPayloadDataType.Integer); |
| 34 | + public static VectorPayloadValue BuildIntegerValue(byte data) => new(data, VectorPayloadDataType.Integer); |
| 35 | + public static VectorPayloadValue BuildDoubleValue(double data) => new(data, VectorPayloadDataType.Double); |
| 36 | + public static VectorPayloadValue BuildDoubleValue(float data) => new(data, VectorPayloadDataType.Double); |
| 37 | + public static VectorPayloadValue BuildBooleanValue(bool data) => new(data, VectorPayloadDataType.Boolean); |
| 38 | + public static VectorPayloadValue BuildDatetimeValue(DateTime data) => new(data, VectorPayloadDataType.Datetime); |
| 39 | + public static VectorPayloadValue BuildUnkownValue(object data) => new(data, VectorPayloadDataType.Unknown); |
| 40 | + |
| 41 | + |
| 42 | + public static explicit operator VectorPayloadValue(string data) => VectorPayloadValue.BuildStringValue(data); |
| 43 | + public static explicit operator VectorPayloadValue(long data) => VectorPayloadValue.BuildIntegerValue(data); |
| 44 | + public static explicit operator VectorPayloadValue(int data) => VectorPayloadValue.BuildIntegerValue(data); |
| 45 | + public static explicit operator VectorPayloadValue(short data) => VectorPayloadValue.BuildIntegerValue(data); |
| 46 | + public static explicit operator VectorPayloadValue(byte data) => VectorPayloadValue.BuildIntegerValue(data); |
| 47 | + public static explicit operator VectorPayloadValue(double data) => VectorPayloadValue.BuildDoubleValue(data); |
| 48 | + public static explicit operator VectorPayloadValue(float data) => VectorPayloadValue.BuildDoubleValue(data); |
| 49 | + public static explicit operator VectorPayloadValue(bool data) => VectorPayloadValue.BuildBooleanValue(data); |
| 50 | + public static explicit operator VectorPayloadValue(DateTime data) => VectorPayloadValue.BuildDatetimeValue(data); |
| 51 | + |
| 52 | + public static implicit operator string(VectorPayloadValue value) => value.DataValue?.ToString() ?? string.Empty; |
| 53 | + public static implicit operator long(VectorPayloadValue value) => long.TryParse(value.DataValue?.ToString(), out var res) ? res : default; |
| 54 | + public static implicit operator int(VectorPayloadValue value) => int.TryParse(value.DataValue?.ToString(), out var res) ? res : default; |
| 55 | + public static implicit operator short(VectorPayloadValue value) => short.TryParse(value.DataValue?.ToString(), out var res) ? res : default; |
| 56 | + public static implicit operator byte(VectorPayloadValue value) => byte.TryParse(value.DataValue?.ToString(), out var res) ? res : default; |
| 57 | + public static implicit operator double(VectorPayloadValue value) => double.TryParse(value.DataValue?.ToString(), out var res) ? res : default; |
| 58 | + public static implicit operator float(VectorPayloadValue value) => float.TryParse(value.DataValue?.ToString(), out var res) ? res : default; |
| 59 | + public static implicit operator bool(VectorPayloadValue value) => bool.TryParse(value.DataValue?.ToString(), out var res) ? res : default; |
| 60 | + public static implicit operator DateTime(VectorPayloadValue value) => DateTime.TryParse(value.DataValue?.ToString(), out var res) ? res : default; |
58 | 61 | } |
0 commit comments