public static IEnumerator Watch( string path, System.Action <DataSet, XlsxParser.Errors> onDataSetUpdated) { var ftc = new FieldTypeConverter(); var lastWriteTime = new System.DateTime( 1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc ); while (File.Exists(path)) { yield return(null); #if (!UNITY_WEBPLAYER) var wt = File.GetLastWriteTimeUtc(path); #else var wt = lastWriteTime; #endif if (wt <= lastWriteTime) { continue; } lastWriteTime = wt; var parser = new XlsxParser(path.SetFieldTypeConverter(ftc)); while (!parser.isDone) { yield return(null); } if (onDataSetUpdated != null) { onDataSetUpdated(parser.dataSet, parser.errors); } } }
IEnumerator Start() { var ftc = new FieldTypeConverter(); Application.logMessageReceived += _HandleLog; Debug.LogWarning("This example works in editor and standalone."); _RefreshConsole(); var patchName = "XlsxParser_04_Patch"; _CopyXlsxFromResources("XlsxParser_04"); _CopyXlsxFromResources(patchName); _myObjects = new Dictionary <string, Object3D>(); var parser = new XlsxParser( "res://XlsxParser_04".SetFieldTypeConverter(ftc) ); yield return(parser.coroutine); var table = parser.dataSet["Object3D"]; var n = 0; table.Populate(_myObjects, () => { var inst = Object3D.Create(); var x = 3.0F * (n % 5); var z = 3.0F * (n / 5); ++n; inst.transform.position = new Vector3(x, 3, z); return(inst); }, 0); var path = _home + "/" + patchName + ".xlsx"; StartCoroutine(Watch(path, _OnDataSetUpdated)); }
private async Task PublishTableUpdatedAsync( string gameId, GameModel.VisibleFieldType[][] previousTableState, GameModel.VisibleFieldType[][] newTableState, CancellationToken cancellationToken) { var fieldUpdates = new List <FieldUpdate>(previousTableState.Length * previousTableState[0].Length); for (var row = 0; row < previousTableState.Length; ++row) { for (var col = 0; col < previousTableState[0].Length; ++col) { if (previousTableState[row][col] != newTableState[row][col]) { var fieldType = FieldTypeConverter.ToContract(newTableState[row][col]); fieldUpdates.Add(new FieldUpdate { Row = row, Column = col, FieldType = fieldType }); } } } await _mediator.Publish(new GameTableUpdatedNotification { GameId = gameId, FieldUpdates = fieldUpdates }, cancellationToken).ConfigureAwait(false); }
public void ConvertingPrimitiveTypesShouldYieldCorrectResult(Type type, string exptected) { //Arrange //Act var result = FieldTypeConverter.Convert(type); //Assert Assert.Equal(exptected, result); }
public void LoadUri() { if (string.IsNullOrEmpty(uriField.text)) { return; } loadingPanel.SetActive(true); var uri = uriField.text; var ftc = new FieldTypeConverter(); StartCoroutine(_LoadXlsxFiles( uri.SetPassword("pw1234").SetFieldTypeConverter(ftc) )); }
IEnumerator Start() { var ftc = new FieldTypeConverter(); var parser = new XlsxParser( "res://XlsxParser_02".SetFieldTypeConverter(ftc) ); yield return(parser.coroutine); if (parser.errors.count > 0) { Debug.LogWarning(parser.errors); yield break; } var table = parser.dataSet["Object3D"]; DataTable.Warnings warnings = null; warnings = table.GetObjectMappingWarnings <Object3D>(); if (warnings.count > 0) { Debug.LogWarning(warnings); } _myObjects = new Dictionary <string, Object3D>(); var n = 0; // If key field is duplicated, will be overwritten. // To ensure key unique, use data validation in xlsx editor. // If keyFieldIndex is negative, key is set row order. warnings = table.Populate(_myObjects, () => { var inst = Object3D.Create(); var x = 3.0F * (n % 3); var z = 3.0F * (n / 3); ++n; inst.transform.position = new Vector3(x, 3, z); return(inst); }, 0); if (warnings.count > 0) { Debug.LogWarning(warnings); } }
private object GetCurrentSummaryResult() { return(get_ValuesInfo(summary).Cast <Pair <object, int> >().All(p => p.First == null) ? null : ConvertToType(summary.GetResult(), FieldTypeConverter.ToType(FieldType))); }