private static bool TryParseAsValue(WitEntity entity, DateTimeParserSettings settings, out DateTimeRange range) { if (entity != null && DateTimeOffset.TryParse(entity.Value, out DateTimeOffset date)) { switch (entity.Grain) { case GrainHour: range = new DateTimeRange(date, date.AddHours(1)); return(true); case GrainDay: range = new DateTimeRange(date); return(true); case GrainWeek: range = new DateTimeRange(date, date.AddDays(settings.WeekDuration)); return(true); case GrainMonth: range = new DateTimeRange(date, date.AddMonths(1)); return(true); case GrainYear: range = new DateTimeRange(date, date.AddYears(1)); return(true); } } range = null; return(false); }
public static bool TryFindEntity(this WitResult result, string entityName, out WitEntity witEntity) { var entity = result?.Entities?.FirstOrDefault(e => e.Key == entityName); witEntity = entity?.Value?.FirstOrDefault(); return(witEntity != null); }
private void DrawEntity(WitEntity entity) { InfoField("ID", entity.id); if (null != entity.roles && entity.roles.Length > 0) { EditorGUILayout.Popup("Roles", 0, entity.roles); } if (null != entity.lookups && entity.lookups.Length > 0) { EditorGUILayout.Popup("Lookups", 0, entity.lookups); } }
public override void UpdateData(WitResponseNode intentWitResponse) { id = intentWitResponse[Fields.ID].Value; name = intentWitResponse[Fields.NAME].Value; var entityArray = intentWitResponse[EditorFields.ENTITIES].AsArray; var n = entityArray.Count; entities = new WitEntity[n]; for (int i = 0; i < n; i++) { entities[i] = WitEntity.FromJson(entityArray[i]); entities[i].witConfiguration = witConfiguration; } }
public override void UpdateData(WitResponseNode intentWitResponse) { id = intentWitResponse["id"].Value; name = intentWitResponse["name"].Value; var entityArray = intentWitResponse["entities"].AsArray; var n = entityArray.Count; entities = new WitEntity[n]; for (int i = 0; i < n; i++) { entities[i] = WitEntity.FromJson(entityArray[i]); entities[i].witConfiguration = witConfiguration; } }
private static void UpdateEntityList(this WitConfiguration configuration, WitResponseNode entityListWitResponse) { var entityList = entityListWitResponse.AsArray; var n = entityList.Count; configuration.entities = new WitEntity[n]; for (int i = 0; i < n; i++) { var entity = WitEntity.FromJson(entityList[i]); entity.witConfiguration = configuration; configuration.entities[i] = entity; entity.UpdateData(); } }
// Apply entities private static void ApplyEntityList(WitConfiguration configuration, WitResponseNode witResponse, Action <string> onComplete) { // Generate entities list var entityList = witResponse.AsArray; var n = entityList.Count; configuration.entities = new WitEntity[n]; for (int i = 0; i < n; i++) { var entity = WitEntity.FromJson(entityList[i]); entity.witConfiguration = configuration; configuration.entities[i] = entity; } EditorUtility.SetDirty(configuration); // Update entities UpdateConfigItem(0, configuration.entities, configuration, onComplete); }
public static bool TryParse(WitEntity entity, out DateTimeRange range, DateTimeParserSettings settings = null) { settings = settings ?? DateTimeParserSettings.Default; if (IsDate(entity)) { switch (entity.Type) { case TypeValue: return(TryParseAsValue(entity, settings, out range)); case TypeInterval: return(TryParseAsInterval(entity, settings, out range)); } } range = null; return(false); }
private static bool TryParseAsInterval(WitEntity entity, DateTimeParserSettings settings, out DateTimeRange range) { TryParseAsValue(entity.From, settings, out DateTimeRange fromRange); TryParseAsValue(entity.To, settings, out DateTimeRange toRange); if (fromRange != null && toRange != null) { range = new DateTimeRange(fromRange.StartDate, toRange.EndDate); return(true); } else if (fromRange != null) { range = new DateTimeRange(fromRange.StartDate, DateTime.MaxValue); return(true); } else if (toRange != null) { range = new DateTimeRange(DateTime.Now, toRange.EndDate); return(true); } range = null; return(false); }
private static bool IsDate(WitEntity entity) { return(entity.Type == TypeValue && (entity.Grain == GrainHour || entity.Grain == GrainDay || entity.Grain == GrainWeek || entity.Grain == GrainMonth || entity.Grain == GrainYear) || entity.Type == TypeInterval); }