Files
TWA-App/TWASys-App/Models/StorageModel.cs

160 lines
5.2 KiB
C#

using Microsoft.AspNetCore.Razor.Language.Intermediate;
using Microsoft.VisualBasic;
using MySqlConnector;
using System.Data.Common;
using System.Xml.Linq;
using TWASys_App.Dapper.AExtentions;
using TWASys_App.DBModels;
namespace TWASys_App.Models
{
public class StorageModel : ModelBase
{
public long StorageTypeID { set; get; }
public string ControllerName { set; get; } = "";
public string StorageName { set; get; } = "";
public ICollection<ValidationDomain> ValidationDomains { set; get; } = new List<ValidationDomain>();
public string IpPublic { set; get; } = "";
public string IpPrivatev4 { set; get; } = "";
public string IpPrivatev6 { set; get; } = "";
public string OsName { set; get; } = "";
public string OsPlatform { set; get; } = "";
public string OsVersion { set; get; } = "";
public string OsKernel { set; get; } = "";
public string OsArch { set; get; } = "";
public string BiosSN { set; get; } = "";
public string BiosVendor { set; get; } = "";
public string BiosUUID { set; get; } = "";
public int SocketN { set; get; }
public string CpuName { set; get; } = "";
public float TotalRam { set; get; }
public string TokenID { set; get; } = "";
public string TokenValue { set; get; } = "";
public string RTokenID { set; get; } = "";
public string RTokenValue { set; get; } = "";
public override async Task<MessageHeader> AddAsync()
{
await using var con = new MySqlConnector.MySqlConnection(DBManagement.GetConnectionString(true));
await con.OpenAsync();
var trans = await con.BeginTransactionAsync();
var f = new MessageHeader();
try
{
var localServer = new LocalServer
{
IpPrivateServer = IpPrivatev4,
IpPrivateServerv6 = IpPrivatev6,
IpPublicServer = IpPublic,
PathServer = "",
SerialNumber = BiosSN,
OsVersion = OsVersion,
OsName = OsName,
OsArch = OsArch,
OsKernal = OsKernel,
SocketNum = SocketN,
CpuName = CpuName,
TotalRam = TotalRam,
BiosVender = BiosVendor,
ProductUuid = BiosUUID,
Status = 0
};//idTypeStorageServer
var storageServer = new StorageServer
{
IdEmp = null,
IdTypeStorageServer = StorageTypeID,
StorageName = StorageName,
CreateDate = DateTime.UtcNow,
ControllerID = ControllerName,
Status = 0
};
var ss_lc = new StorageServer_has_LocalServer
{
IdStorageServer = storageServer.IdStorageServer,
IdLocalServer = localServer.IdLocalServer,
CreateDate = DateTime.UtcNow,
ModifyDate = null,
Status = 0
};
var serverAuthorization = new ServerAuthorization
{
IdStorageServer = storageServer.IdStorageServer,
CreateDate = DateTime.UtcNow,
Count = 1,
Status = 0
};
var token = new Token
{
IdToken = TokenID,
AccessToken = TokenValue,
CreateDate = DateTime.UtcNow,
ExpireDate = DateTime.UtcNow.AddMonths(3),
Status = 0
};
var rT = new RefreshToken
{
IdRefreshToken = RTokenID,
IdServerAuthorization = serverAuthorization.IdServerAuthorization,
__RefreshToken = RTokenValue,
CreateDate = DateTime.UtcNow,
ExpireDate = DateTime.UtcNow.AddMonths(9),
Status = 0
};
BatchInsert bi = new BatchInsert(con, trans);
bi.AddRow(localServer);
bi.AddRow(storageServer);
bi.AddRow(ss_lc);
bi.AddRow(serverAuthorization);
bi.AddRow(token);
bi.AddRow(rT);
await bi.ExcuteQuery();
await trans.CommitAsync();
f.Status = 1;
f.Message = "OK";
}
catch (DbException ex)
{
await trans.RollbackAsync();
await trans.DisposeAsync();
f.Status = 0;
f.Message = ex.Message;
f.ID = 61031;
}
return f;
}
public override Task<MessageHeader> DeleteAsync()
{
throw new NotImplementedException();
}
public override Task<MessageHeader> UpdateAsync()
{
throw new NotImplementedException();
}
}
}