using HotelPms.Client.Blazor.Util;
using HotelPms.Data.UseInfo;
using HotelPms.Share.Util;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.JSInterop;
using MudBlazor;
using System.Text.Json.Serialization;
using static HotelPms.Client.Blazor.Util.SystemEnum;
namespace HotelPms.Client.Blazor.Models
{
///
/// 利用日毎
/// 空白行が必要のため、
/// 全部文字列にする
///
public class RoomTypeInputRow : EditRow
{
public enum ColType : int
{
ID = 0,
Name,
Count,
}
public RoomTypeInputRow()
{
Cells.Add(new ViewModel.ValidField { Name = ColType.ID.ToString(), MaxLenth = 3, InputChar = EInputChar.Num });
Cells.Add(new ViewModel.ValidField { Name = ColType.Name.ToString() });
Cells.Add(new ViewModel.ValidField { Name = ColType.Count.ToString(), MaxLenth = 3, InputChar = EInputChar.Num });
}
protected override void Dispose(bool disposing)
{
if (!disposing)
{
base.Dispose(false);
}
}
///
/// 関連伝票情報
///
[JsonIgnore(Condition = JsonIgnoreCondition.Always)]
public List DataList { get; set; } = new List();
///
/// 値変更あり
///
///
///
public override bool IsValueChanged(int index, string inputText)
{
if (index == (int)ColType.ID)
{
if (DataList.Count == 0) { return true; }
return CConvert.ToInt(inputText) != DataList[0].RoomTypeID;
}
else if (index == (int)ColType.Count)
{
return CConvert.ToInt(inputText) != DataList.Count;
}
else
{
return false;
}
}
///
/// DOMの表示値
///
///
///
///
public async Task GetInputValue(int index, IJSRuntime JSRuntime)
{
return await Cells[index].Ref.GetInputValue(JSRuntime);
}
///
/// 表示の値の復元
///
///
public void RestoreText(ColType index)
{
SetCellText((int)index, GetDataField((int)index));
}
///
/// データの値
///
///
///
public string GetDataField(int index)
{
if (index == (int)ColType.ID)
{
return DataList.Count == 0 ? string.Empty : DataList[0].RoomTypeID.ToString();
}
else if (index == (int)ColType.Count)
{
return DataList.Count.ToString();
}
else
{
return string.Empty;
}
}
public void SetDataField(int index, string inputText)
{
if (index == (int)ColType.ID)
{
foreach(UseRoom item in DataList)
{
item.RoomTypeID = CConvert.ToInt(inputText);
}
}
else if (index == (int)ColType.Count)
{
}
}
}
}