using Assets.Scripts; using Assets.Scripts.Apis.Models; using ChartAndGraph; using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; public class RowerResult : PFUIPanel { RowerResultModel _model; private GraphChart chartPace, chartRate, chartHR; Transform dataContent; // Start is called before the first frame update void Awake() { var grid = transform.Find("Scroll View/Viewport/Content/Content/Table").GetComponent(); float width = (App.canvasWidth - 60 - 3) / 4; grid.cellSize = new Vector2(width, 37); var grid1 = transform.Find("Scroll View/Viewport/Content/Content/Other/Datas").GetComponent(); grid1.cellSize = new Vector2(width, 53); chartPace = transform.Find("Scroll View/Viewport/Content/Content/ChartPace/Chart").GetComponent(); chartPace.DataSource.VerticalViewOrigin = ChartDateUtility.TimeSpanToValue(TimeSpan.FromHours(15)); chartPace.DataSource.VerticalViewSize = ChartDateUtility.TimeSpanToValue(TimeSpan.FromHours(15)) * -1; chartRate = transform.Find("Scroll View/Viewport/Content/Content/ChartRate/Chart").GetComponent(); chartHR = transform.Find("Scroll View/Viewport/Content/Content/ChartHeartRate/Chart").GetComponent(); dataContent = transform.Find("Scroll View/Viewport/Content/Content"); UIManager.AddEvent(transform.Find("Exit").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => { Close(); }); //var a = new List(); //for (int i = 0; i < 100; i++) //{ // a.Add(new ChartAndGraph.DoubleVector2(i, ChartDateUtility.TimeSpanToValue(TimeSpan.FromMinutes(300)))); //} //transform.Find("Scroll View/Viewport/Content/Content/ChartPace/Chart").GetComponent().SetData(a); } public async void Initial(string id) { transform.Find("Scroll View").GetComponent().verticalNormalizedPosition = 1; GetComponent().alpha = 0; var res = await ConfigHelper.rowerApi.GetDetail(id); if (res.result) { _model = res.data; dataContent.Find("Time").GetComponent().text = $"{_model.StartTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss")} ~ {_model.CreateTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss")}"; dataContent.Find("TitleContent/Duration").GetComponent().text = $"Rowing time : {TimeSpan.FromSeconds(_model.TotalTime).ToString()}"; dataContent.Find("TitleContent/Distance").GetComponent().text = $"Distance : {_model.TotalDistance}M"; dataContent.Find("TitleContent/Device").GetComponent().text = $"Rowing equipment : {_model.ManufacturerName}"; dataContent.Find("Table/AvgPower/Text").GetComponent().text = $"{TimeSpan.FromSeconds(_model.AvgPace).ToString(@"mm\:ss")} /500M"; dataContent.Find("Table/AvgHR/Text").GetComponent().text = $"{_model.AvgHeartRate} BPM"; dataContent.Find("Table/AvgRate/Text").GetComponent().text = $"{_model.AvgRate.ToString("#0")} SPM"; dataContent.Find("Table/MaxPower/Text").GetComponent().text = $"{TimeSpan.FromSeconds(_model.MaxPace).ToString(@"mm\:ss")} /500M"; dataContent.Find("Table/MaxHR/Text").GetComponent().text = $"{_model.MaxHeartRate} BPM"; dataContent.Find("Table/MaxRate/Text").GetComponent().text = $"{_model.MaxRate.ToString("#0")} SPM"; dataContent.Find("ChartPace/Avg/Value").GetComponent().text = $"{TimeSpan.FromSeconds(_model.AvgPace).ToString(@"mm\:ss")} /500M"; dataContent.Find("ChartRate/Avg/Value").GetComponent().text = $"{_model.AvgRate.ToString("#0")} SPM"; dataContent.Find("ChartHeartRate/Avg/Value").GetComponent().text = $"{_model.AvgHeartRate.ToString("#0")} BPM"; dataContent.Find("ChartPace/Max/Value").GetComponent().text = $"{TimeSpan.FromSeconds(_model.MaxPace).ToString(@"mm\:ss")} /500M"; dataContent.Find("ChartRate/Max/Value").GetComponent().text = $"{_model.MaxRate.ToString("#0")} SPM"; dataContent.Find("ChartHeartRate/Max/Value").GetComponent().text = $"{_model.MaxHeartRate.ToString("#0")} BPM"; dataContent.Find("Other/Datas/Calories/Value").GetComponent().text = $"{(_model.Kj ?? 0).ToString("#0")} KCAL"; dataContent.Find("Other/Datas/StrokeCount/Value").GetComponent().text = _model.StrokeCount.ToString(); //var b = _model.ChartList.Select((x, i) => new DoubleVector2(i, ChartDateUtility.TimeSpanToValue(TimeSpan.FromMinutes(x.Pace + UnityEngine.Random.value * 300)))).ToList(); //Debug.Log(_model.ChartList.Select((x, i) => new DoubleVector2(i, ChartDateUtility.TimeSpanToValue(TimeSpan.FromMinutes(x.Pace + UnityEngine.Random.value * 300)))).ToList()); //var a = new List(); //for (int i = 0; i < 100; i++) //{ // a.Add(new DoubleVector2(i, UnityEngine.Random.value * 200)); //} chartPace.GetComponent() .SetData(_model.ChartList.Select((x, i) => { if (x.Pace == 0) { return new DoubleVector2(i, ChartDateUtility.TimeSpanToValue(TimeSpan.FromHours(15)) - 2000); } else { return new DoubleVector2(i, ChartDateUtility.TimeSpanToValue(TimeSpan.FromMinutes(x.Pace))); } }).ToList()); chartRate.GetComponent() .SetData(_model.ChartList.Select((x, i) => new DoubleVector2(i, x.Rate)).ToList()); chartHR.GetComponent() //.SetData(a); .SetData(_model.ChartList.Select((x, i) => new DoubleVector2(i, x.HeartRate)).ToList()); } GetComponent().DOFade(1, 0.3f); } // Update is called once per frame void Update() { } }