Example #1
0
        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);
                }
            }
        }
Example #2
0
        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);
            }
        }
Example #7
0
 private object GetCurrentSummaryResult()
 {
     return(get_ValuesInfo(summary).Cast <Pair <object, int> >().All(p => p.First == null) ? null :
            ConvertToType(summary.GetResult(), FieldTypeConverter.ToType(FieldType)));
 }