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 ValidationDomains { set; get; } = new List(); 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 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 DeleteAsync() { throw new NotImplementedException(); } public override Task UpdateAsync() { throw new NotImplementedException(); } } }