using Dapper; using ManagementApp.Dapper.AExtentions; using ManagementApp.DBModels; using Microsoft.AspNetCore.Mvc; using MySqlConnector; using Newtonsoft.Json; using System.Data.Common; namespace ManagementApp.Models { public class ValidationDomainModel: ModelBase { public int ID { set; get; } public int PortNumber { set; get; } public string Protocol { set; get; } public string Name { set; get; } public override async Task AddAsync() { var f = new MessageHeader(); try { using (var con = new MySqlConnection(DBManagement.GetConnectionString())) { await con.OpenAsync(); await con.Insert(new ValidationDomain { DomainName = Name, PortNumber = this.PortNumber, Protocol = this.Protocol }); } f.Status = 1; f.Message = "OK"; } catch (DbException ex) { f.Status = 0; f.Message = ex.Message; f.ID = 61031; } return f; } public async Task GetValidationDomainAsync() { using (var con = new MySqlConnection(DBManagement.GetConnectionString())) { await con.OpenAsync(); if (IsFirstQuery) { using (var multi = await con .QueryMultipleAsync("SELECT COUNT(*) FROM ValidationDomain;" + "SELECT * FROM ValidationDomain ORDER BY idValidationDomain DESC " + "OFFSET @Offset ROWS FETCH NEXT @PageSize ROWS ONLY", new { Offset = (PageNumber - 1) * PageSize, PageSize = this.PageSize })) { int maxRow = await multi.ReadSingleAsync(); IEnumerable types = await multi.ReadAsync(); return new JsonResult(new { mrows = maxRow, data = JsonConvert.SerializeObject(types) }); } } else { IEnumerable t = (await con .QueryAsync("SELECT * FROM ValidationDomain ORDER BY idValidationDomain DESC " + "OFFSET @Offset ROWS FETCH NEXT @PageSize ROWS ONLY", new { Offset = (PageNumber - 1) * PageSize, PageSize = this.PageSize })); return new JsonResult(new { data = JsonConvert.SerializeObject(t) }); } } } public override Task DeleteAsync() { throw new NotImplementedException(); } public override async Task UpdateAsync() { var f = new MessageHeader(); try { using (var con = new MySqlConnection(DBManagement.GetConnectionString())) { await con.OpenAsync(); await con.Update(new ValidationDomain { IdValidationDomain = ID, DomainName = Name, PortNumber = this.PortNumber, Protocol = this.Protocol }); } f.Status = 1; f.Message = "OK"; } catch (DbException ex) { f.Status = 0; f.Message = ex.Message; f.ID = 61032; } return f; } public static async Task GetAllValidationDomain() { using (var con = new MySqlConnection(DBManagement.GetConnectionString())) { await con.OpenAsync(); IEnumerable t = (await con .QueryAsync("SELECT IDValidationDomain As ID, DomainName As Name FROM ValidationDomain ORDER BY idValidationDomain DESC")); return new JsonResult(new { data = JsonConvert.SerializeObject(t) }); } } } }