fix: reformat using C# rules

This commit is contained in:
ZavaruKitsu
2022-10-08 19:26:34 +03:00
parent a731e2a8d0
commit 5ab15621a0
180 changed files with 13136 additions and 13081 deletions
File diff suppressed because it is too large Load Diff
+95 -87
View File
@@ -4,93 +4,101 @@ using System.Diagnostics;
using System.Linq;
using TelegramBotBase.Form;
namespace TelegramBotBase.Controls.Hybrid
namespace TelegramBotBase.Controls.Hybrid;
[DebuggerDisplay("{Count} columns")]
public class ButtonRow
{
[DebuggerDisplay("{Count} columns")]
public class ButtonRow
private List<ButtonBase> _buttons = new();
public ButtonRow()
{
private List<ButtonBase> _buttons = new List<ButtonBase>();
public ButtonRow()
{
}
public ButtonRow(params ButtonBase[] buttons)
{
_buttons = buttons.ToList();
}
public ButtonBase this[int index] => _buttons[index];
public int Count => _buttons.Count;
public void Add(ButtonBase button)
{
_buttons.Add(button);
}
public void AddRange(ButtonBase button)
{
_buttons.Add(button);
}
public void Insert(int index, ButtonBase button)
{
_buttons.Insert(index, button);
}
public IEnumerator<ButtonBase> GetEnumerator()
{
return _buttons.GetEnumerator();
}
public ButtonBase[] ToArray()
{
return _buttons.ToArray();
}
public List<ButtonBase> ToList()
{
return _buttons.ToList();
}
public bool Matches(string text, bool useText = true)
{
foreach (var b in _buttons)
{
if (useText && b.Text.Trim().Equals(text, StringComparison.InvariantCultureIgnoreCase))
return true;
if (!useText && b.Value.Equals(text, StringComparison.InvariantCultureIgnoreCase))
return true;
}
return false;
}
/// <summary>
/// Returns the button inside of the row which matches.
/// </summary>
/// <param name="text"></param>
/// <param name="useText"></param>
/// <returns></returns>
public ButtonBase GetButtonMatch(string text, bool useText = true)
{
foreach (var b in _buttons)
{
if (useText && b.Text.Trim().Equals(text, StringComparison.InvariantCultureIgnoreCase))
return b;
if (!useText && b.Value.Equals(text, StringComparison.InvariantCultureIgnoreCase))
return b;
}
return null;
}
public static implicit operator ButtonRow(List<ButtonBase> list)
{
return new ButtonRow { _buttons = list };
}
}
}
public ButtonRow(params ButtonBase[] buttons)
{
_buttons = buttons.ToList();
}
public ButtonBase this[int index] => _buttons[index];
public int Count => _buttons.Count;
public void Add(ButtonBase button)
{
_buttons.Add(button);
}
public void AddRange(ButtonBase button)
{
_buttons.Add(button);
}
public void Insert(int index, ButtonBase button)
{
_buttons.Insert(index, button);
}
public IEnumerator<ButtonBase> GetEnumerator()
{
return _buttons.GetEnumerator();
}
public ButtonBase[] ToArray()
{
return _buttons.ToArray();
}
public List<ButtonBase> ToList()
{
return _buttons.ToList();
}
public bool Matches(string text, bool useText = true)
{
foreach (var b in _buttons)
{
if (useText && b.Text.Trim().Equals(text, StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
if (!useText && b.Value.Equals(text, StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
}
return false;
}
/// <summary>
/// Returns the button inside of the row which matches.
/// </summary>
/// <param name="text"></param>
/// <param name="useText"></param>
/// <returns></returns>
public ButtonBase GetButtonMatch(string text, bool useText = true)
{
foreach (var b in _buttons)
{
if (useText && b.Text.Trim().Equals(text, StringComparison.InvariantCultureIgnoreCase))
{
return b;
}
if (!useText && b.Value.Equals(text, StringComparison.InvariantCultureIgnoreCase))
{
return b;
}
}
return null;
}
public static implicit operator ButtonRow(List<ButtonBase> list)
{
return new ButtonRow { _buttons = list };
}
}
File diff suppressed because it is too large Load Diff
+116 -115
View File
@@ -3,124 +3,125 @@ using System.Threading.Tasks;
using TelegramBotBase.Args;
using TelegramBotBase.Base;
namespace TelegramBotBase.Controls.Hybrid
namespace TelegramBotBase.Controls.Hybrid;
/// <summary>
/// This Control is for having a basic form content switching control.
/// </summary>
public abstract class MultiView : ControlBase
{
private int _mISelectedViewIndex;
/// <summary>
/// This Control is for having a basic form content switching control.
/// Hold if the View has been rendered already.
/// </summary>
public abstract class MultiView : ControlBase
private bool _rendered;
public MultiView()
{
/// <summary>
/// Index of the current View.
/// </summary>
public int SelectedViewIndex
{
get => _mISelectedViewIndex;
set
{
_mISelectedViewIndex = value;
//Already rendered? Re-Render
if (_rendered)
ForceRender().Wait();
}
}
private int _mISelectedViewIndex;
/// <summary>
/// Hold if the View has been rendered already.
/// </summary>
private bool _rendered;
private List<int> Messages { get; set; }
public MultiView()
{
Messages = new List<int>();
}
private Task Device_MessageSent(object sender, MessageSentEventArgs e)
{
if (e.Origin == null || !e.Origin.IsSubclassOf(typeof(MultiView)))
return Task.CompletedTask;
Messages.Add(e.MessageId);
return Task.CompletedTask;
}
public override void Init()
{
Device.MessageSent += Device_MessageSent;
}
public override Task Load(MessageResult result)
{
_rendered = false;
return Task.CompletedTask;
}
public override async Task Render(MessageResult result)
{
//When already rendered, skip rendering
if (_rendered)
return;
await CleanUpView();
await RenderView(new RenderViewEventArgs(SelectedViewIndex));
_rendered = true;
}
/// <summary>
/// Will get invoked on rendering the current controls view.
/// </summary>
/// <param name="e"></param>
public virtual Task RenderView(RenderViewEventArgs e)
{
return Task.CompletedTask;
}
private async Task CleanUpView()
{
var tasks = new List<Task>();
foreach (var msg in Messages)
{
tasks.Add(Device.DeleteMessage(msg));
}
await Task.WhenAll(tasks);
Messages.Clear();
}
/// <summary>
/// Forces render of control contents.
/// </summary>
public async Task ForceRender()
{
await CleanUpView();
await RenderView(new RenderViewEventArgs(SelectedViewIndex));
_rendered = true;
}
public override async Task Cleanup()
{
Device.MessageSent -= Device_MessageSent;
await CleanUpView();
}
Messages = new List<int>();
}
}
/// <summary>
/// Index of the current View.
/// </summary>
public int SelectedViewIndex
{
get => _mISelectedViewIndex;
set
{
_mISelectedViewIndex = value;
//Already rendered? Re-Render
if (_rendered)
{
ForceRender().Wait();
}
}
}
private List<int> Messages { get; }
private Task Device_MessageSent(object sender, MessageSentEventArgs e)
{
if (e.Origin == null || !e.Origin.IsSubclassOf(typeof(MultiView)))
{
return Task.CompletedTask;
}
Messages.Add(e.MessageId);
return Task.CompletedTask;
}
public override void Init()
{
Device.MessageSent += Device_MessageSent;
}
public override Task Load(MessageResult result)
{
_rendered = false;
return Task.CompletedTask;
}
public override async Task Render(MessageResult result)
{
//When already rendered, skip rendering
if (_rendered)
{
return;
}
await CleanUpView();
await RenderView(new RenderViewEventArgs(SelectedViewIndex));
_rendered = true;
}
/// <summary>
/// Will get invoked on rendering the current controls view.
/// </summary>
/// <param name="e"></param>
public virtual Task RenderView(RenderViewEventArgs e)
{
return Task.CompletedTask;
}
private async Task CleanUpView()
{
var tasks = new List<Task>();
foreach (var msg in Messages)
{
tasks.Add(Device.DeleteMessage(msg));
}
await Task.WhenAll(tasks);
Messages.Clear();
}
/// <summary>
/// Forces render of control contents.
/// </summary>
public async Task ForceRender()
{
await CleanUpView();
await RenderView(new RenderViewEventArgs(SelectedViewIndex));
_rendered = true;
}
public override async Task Cleanup()
{
Device.MessageSent -= Device_MessageSent;
await CleanUpView();
}
}
File diff suppressed because it is too large Load Diff