using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using Microsoft.AspNetCore.Http; using Core.Main; using Core.Main.DataObjects.PTMagicData; using Newtonsoft.Json; namespace Monitor.Pages { public class ManageSMSModel : _Internal.BasePageModelSecure { public List SingleMarketSettingSummaries = new List(); public void OnGet() { base.Init(); BindData(); } public List smsList = new List(); public void CreateSmsList () { foreach (Core.Main.DataObjects.PTMagicData.SingleMarketSettingSummary smsSummary in SingleMarketSettingSummaries) { if (!smsList.Contains(smsSummary.SingleMarketSetting.SettingName)) { smsList.Add(smsSummary.SingleMarketSetting.SettingName); } } } private void BindData() { if (System.IO.File.Exists(PTMagicBasePath + Constants.PTMagicPathData + Path.DirectorySeparatorChar + "SingleMarketSettingSummary.json")) { try { SingleMarketSettingSummaries = JsonConvert.DeserializeObject>(System.IO.File.ReadAllText(PTMagicBasePath + Constants.PTMagicPathData + Path.DirectorySeparatorChar + "SingleMarketSettingSummary.json")); } catch { } } string notification = GetStringParameter("n", ""); if (notification.Equals("SettingReset")) { NotifyHeadline = "Setting Reset!"; NotifyMessage = "The setting will get reset on the next interval!"; NotifyType = "success"; } } public double GetTrendChange(string marketTrend, MarketPairSummary mps, TriggerSnapshot ts, string marketTrendRelation) { double result = 0; if (mps.MarketTrendChanges.ContainsKey(marketTrend)) { result = mps.MarketTrendChanges[marketTrend]; double averageMarketTrendChange = Summary.MarketTrendChanges[marketTrend].OrderByDescending(mtc => mtc.TrendDateTime).First().TrendChange; if (marketTrendRelation.Equals(Constants.MarketTrendRelationAbsolute, StringComparison.InvariantCulture)) { result = result - averageMarketTrendChange; } else if (marketTrendRelation.Equals(Constants.MarketTrendRelationRelativeTrigger, StringComparison.InvariantCulture)) { double currentPrice = mps.LatestPrice; double triggerPrice = ts.LastPrice; double triggerTrend = (currentPrice - triggerPrice) / triggerPrice * 100; result = triggerTrend; } } return result; } } }