| | |
| | | using Model.ModelDto.SysDto; |
| | | using AutoMapper; |
| | | using Model.ModelDto.LogDto; |
| | | using Model.ModelDto.SysDto; |
| | | using Model.ModelVm.SysVm; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Utility; |
| | | using WMS.DAL; |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.LogEntity; |
| | | using WMS.Entity.SysEntity; |
| | | using WMS.IBLL.ILogServer; |
| | | using WMS.IBLL.ISysServer; |
| | |
| | | private static readonly SqlSugarScope Db = DataContext.Db; |
| | | |
| | | private readonly IOperationSysServer _operation; //操作日志 |
| | | public InterfaceServer(IOperationSysServer operation) |
| | | private readonly UserManager _userManager; |
| | | private readonly IMapper _mapper; |
| | | public InterfaceServer(IOperationSysServer operation, IMapper mapper, UserManager userManager) |
| | | { |
| | | _operation = operation; |
| | | _userManager = userManager; |
| | | _mapper = mapper;//automapper |
| | | } |
| | | /// <summary> |
| | | /// 获取接口列表 |
| | |
| | | /// <param name="model"></param> |
| | | /// <param name="count"></param> |
| | | /// <returns></returns> |
| | | public List<InterfaceDto> GetInterfaceList(InterfaceVm model, out int count) |
| | | public async Task<SqlSugarPagedList> GetInterfaceList(InterfaceVm model) |
| | | { |
| | | string sqlString = string.Empty; |
| | | string sqlCount = string.Empty; |
| | | string sqlPub = string.Empty; |
| | | try |
| | | { |
| | | sqlCount += "SELECT DISTINCT COUNT(tb1.Id) FROM SysInterface AS tb1 "; |
| | | |
| | | sqlString += "SELECT DISTINCT tb1.*,tb2.RealName as CreateUserName,tb3.RealName as UpdateUserName FROM SysInterface AS tb1 "; |
| | | sqlPub += "LEFT JOIN SysUserInfor AS tb2 ON tb1.CreateUser = tb2.Id "; |
| | | sqlPub += "LEFT JOIN SysUserInfor AS tb3 ON tb1.UpdateUser = tb3.Id "; |
| | | sqlPub += $"WHERE tb1.IsDel=0 "; |
| | | if (!string.IsNullOrEmpty(model.InterfaceNo)) |
| | | { |
| | | sqlPub += $"AND tb1.InterfaceNo LIKE '%{model.InterfaceNo}%' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.InterfaceName)) |
| | | { |
| | | sqlPub += $"AND tb1.InterfaceName LIKE '%{model.InterfaceName}%' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.Direction)) |
| | | { |
| | | sqlPub += $"AND tb1.Direction = '{model.Direction}' "; |
| | | } |
| | | sqlCount += sqlPub; |
| | | sqlPub += " order by tb1.Id "; |
| | | if (model.Page == 0) |
| | | { |
| | | model.Page = 1; |
| | | } |
| | | sqlString += sqlPub + $" offset {((model.Page - 1) * model.Limit)} rows fetch next {model.Limit} rows only;"; |
| | | |
| | | var com = new Common(); |
| | | count = com.GetRowCount(sqlCount); |
| | | |
| | | var modelList = Db.Ado.SqlQuery<InterfaceDto>(sqlString); |
| | | |
| | | return modelList; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | return await Db.Queryable<SysInterface>() |
| | | .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) |
| | | .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) |
| | | .Where(a => a.IsDel == "0") |
| | | .WhereIF(!string.IsNullOrEmpty(model.InterfaceNo), a => a.InterfaceNo.Contains(model.InterfaceNo)) |
| | | .WhereIF(!string.IsNullOrEmpty(model.InterfaceName), a => a.InterfaceName.Contains(model.InterfaceName)) |
| | | .WhereIF(!string.IsNullOrEmpty(model.Direction), a => a.Direction == model.Direction) |
| | | .OrderBy(a => a.Id) |
| | | .Select<InterfaceDto>((a, b, c) => new InterfaceDto() |
| | | { |
| | | Id = a.Id, |
| | | CreateUserName = b.RealName, |
| | | UpdateUserName = c.RealName, |
| | | }, true) |
| | | .ToPagedListAsync(model.Page, model.Limit); |
| | | } |
| | | /// <summary> |
| | | /// 获取接口明细列表 |
| | |
| | | /// <param name="model"></param> |
| | | /// <param name="count"></param> |
| | | /// <returns></returns> |
| | | public List<InterfaceDetailDto> GetInterfaceDetailList(InterfaceDetailVm model, out int count) |
| | | public async Task<SqlSugarPagedList> GetInterfaceDetailList(InterfaceDetailVm model) |
| | | { |
| | | string sqlString = string.Empty; |
| | | string sqlCount = string.Empty; |
| | | int rowCount = 1; |
| | | try |
| | | { |
| | | if (model.Page == 0) |
| | | { |
| | | model.Page = 1; |
| | | } |
| | | sqlCount += $"SELECT COUNT(ID) FROM SysInterfaceDetail where InterfaceNo = '{model.InterfaceNo}' and isdel = '0';"; |
| | | var com = new Common(); |
| | | count = com.GetRowCount(sqlCount); |
| | | if (count != 0) |
| | | { |
| | | rowCount = count; |
| | | } |
| | | |
| | | sqlString += "SELECT tb1.*,tb2.RealName as CreateUserName,tb3.RealName as UpdateUserName FROM SysInterfaceDetail AS tb1 "; |
| | | sqlString += "LEFT JOIN SysUserInfor AS tb2 ON tb1.CreateUser = tb2.Id "; |
| | | sqlString += "LEFT JOIN SysUserInfor AS tb3 ON tb1.UpdateUser = tb3.Id "; |
| | | sqlString += $"WHERE tb1.InterfaceNo = '{model.InterfaceNo}' AND tb1.IsDel = '0' order by tb1.Id "; |
| | | sqlString += $"offset {((model.Page - 1) * model.Limit)} rows fetch next {rowCount} rows only;"; |
| | | |
| | | var modelList = Db.Ado.SqlQuery<InterfaceDetailDto>(sqlString); |
| | | |
| | | return modelList; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | return await Db.Queryable<SysInterfaceDetail>() |
| | | .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) |
| | | .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) |
| | | .Where(a => a.IsDel == "0") |
| | | .WhereIF(!string.IsNullOrEmpty(model.InterfaceNo), a => a.InterfaceNo == model.InterfaceNo) |
| | | .Select<InterfaceDetailDto>((a, b, c) => new InterfaceDetailDto() |
| | | { |
| | | Id = a.Id, |
| | | CreateUserName = b.RealName, |
| | | UpdateUserName = c.RealName, |
| | | }, true) |
| | | .ToPagedListAsync(model.Page, model.Limit); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public string AddInterface(InterfaceVm model) |
| | | public async Task AddInterface(InterfaceVm model) |
| | | { |
| | | string strMessage = ""; |
| | | string sqlString = string.Empty; |
| | | string sqlDetailStr = string.Empty; |
| | | try |
| | | if (await Db.Queryable<SysInterface>().AnyAsync(s => s.InterfaceNo == model.InterfaceNo)) |
| | | { |
| | | string sqlCount = $"SELECT COUNT(ID) FROM SysInterface where InterfaceNo = '{model.InterfaceNo}' and isdel = '0';"; |
| | | var com = new Common().GetRowCount(sqlCount); |
| | | if (com > 0) |
| | | { |
| | | strMessage = "-1:接口编号已存在,请勿重复添加!"; |
| | | return strMessage; |
| | | } |
| | | //接口总信息 |
| | | sqlString += "Insert into SysInterface (InterfaceNo,InterfaceName,Direction,TransmissionMode,Remark,Url,DataSources,CreateUser) values ( "; |
| | | sqlString += $"'{model.InterfaceNo}','{model.InterfaceName}','{model.Direction}','{model.TransmissionMode}','{model.Remark}','{model.Url}','{model.DataSources}','{model.CreateUser}' );"; |
| | | |
| | | //接口明细 |
| | | var detailModels = model.InterfaceDetail; |
| | | foreach (InterfaceDetailVm detailModel in detailModels) |
| | | { |
| | | sqlDetailStr += "Insert into SysInterfaceDetail (InterfaceNo,ExtField,MapField,Field,"; |
| | | sqlDetailStr += "FieldType,DataType,IsNull,Remark,FieldFather,CreateUser) values ( "; |
| | | sqlDetailStr += $"'{model.InterfaceNo}','{detailModel.ExtField}','{detailModel.MapField}','{detailModel.Field}', "; |
| | | sqlDetailStr += $"'{detailModel.FieldType}','{detailModel.DataType}','{detailModel.IsNull}','{detailModel.Remark}','{detailModel.FieldFather}','{model.CreateUser}'); "; |
| | | } |
| | | |
| | | if (sqlDetailStr == string.Empty) |
| | | { |
| | | return strMessage; |
| | | } |
| | | Db.Ado.BeginTran(); |
| | | |
| | | int rowCount = Db.Ado.ExecuteCommand(sqlString); |
| | | var rowDetailCount = 1; |
| | | if (sqlDetailStr.Length > 0) |
| | | { |
| | | rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr); |
| | | } |
| | | Db.Ado.CommitTran(); |
| | | if (rowCount > 0 && rowDetailCount > 0) |
| | | { |
| | | //维护操作日志 |
| | | _operation.InsertOperation("系统设置", "接口管理", model.InterfaceNo, "添加", $"添加了接口编号为{model.InterfaceNo}的接口信息", Convert.ToInt32(model.CreateUser)); |
| | | return strMessage; |
| | | } |
| | | else |
| | | { |
| | | Db.Ado.RollbackTran(); |
| | | return "-2:添加失败数据回滚!"; |
| | | } |
| | | throw Oops.Bah("接口编号已存在,请勿重复添加"); |
| | | } |
| | | catch (Exception ex) |
| | | SysInterface modInterface = _mapper.Map<SysInterface>(model); |
| | | modInterface.CreateUser = _userManager.UserId; |
| | | modInterface.CreateTime = DateTime.Now; |
| | | await Db.Insertable<SysInterface>(modInterface).ExecuteCommandAsync(); |
| | | |
| | | List<SysInterfaceDetail> listDetails = new List<SysInterfaceDetail>(); |
| | | foreach (InterfaceDetailVm detailModel in model.InterfaceDetail) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | SysInterfaceDetail modDetail = _mapper.Map<SysInterfaceDetail>(detailModel); |
| | | modDetail.CreateTime = modInterface.CreateTime; |
| | | modDetail.CreateUser = _userManager.UserId; |
| | | listDetails.Add(modDetail); |
| | | } |
| | | await Db.Insertable(listDetails).ExecuteCommandAsync(); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public string EditInterface(InterfaceVm model) |
| | | public async Task EditInterface(InterfaceVm model) |
| | | { |
| | | string strMessage = ""; |
| | | string sqlString = string.Empty; |
| | | string sqlDetailStr = string.Empty; |
| | | try |
| | | SysInterface modInterface = _mapper.Map<SysInterface>(model); |
| | | modInterface.UpdateUser = _userManager.UserId; |
| | | modInterface.UpdateTime = DateTime.Now; |
| | | await Db.Updateable(modInterface) |
| | | .UpdateColumns(s => new { s.InterfaceName, s.Direction, s.TransmissionMode, s.Remark, s.Url, s.DataSources, s.UpdateTime, s.UpdateUser }) |
| | | .ExecuteCommandAsync(); |
| | | |
| | | var listDetails = await Db.Queryable<SysInterfaceDetail>().Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0").ToListAsync(); |
| | | foreach (SysInterfaceDetail dbDetailModel in listDetails) |
| | | { |
| | | sqlString = "UPDATE SysInterface SET "; |
| | | sqlString += $"InterfaceName = '{model.InterfaceName}',Direction = '{model.Direction}',"; |
| | | sqlString += $"TransmissionMode = '{model.TransmissionMode}',Remark = '{model.Remark}',Url = '{model.Url}',DataSources = '{model.DataSources}', "; |
| | | sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; |
| | | sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}'"; |
| | | |
| | | var detailModels = model.InterfaceDetail; |
| | | sqlDetailStr += $"SELECT * FROM SysInterfaceDetail WHERE InterfaceNo = '{model.InterfaceNo}' and isDel = '0';"; |
| | | var dbDetailModels = DataContext.Db.Ado.SqlQuery<SysInterfaceDetail>(sqlDetailStr); |
| | | |
| | | sqlDetailStr = string.Empty; |
| | | // 处理已删除的明细 |
| | | foreach (SysInterfaceDetail dbDetailModel in dbDetailModels) |
| | | if (!model.InterfaceDetail.Any(s => s.Id == dbDetailModel.Id)) |
| | | { |
| | | if (detailModels.Count(it => it.Id == dbDetailModel.Id) == 0) |
| | | { |
| | | sqlDetailStr += $"UPDATE SysInterfaceDetail SET IsDel = '1',"; |
| | | sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; |
| | | sqlDetailStr += $"WHERE Id = {dbDetailModel.Id};"; |
| | | } |
| | | await Db.Updateable<SysInterfaceDetail>() |
| | | .SetColumns(s => s.IsDel == "1") |
| | | .SetColumns(s => s.UpdateTime == DateTime.Now) |
| | | .SetColumns(s => s.UpdateUser == _userManager.UserId) |
| | | .Where(s => s.Id == dbDetailModel.Id && s.IsDel == "0") |
| | | .ExecuteCommandAsync(); |
| | | } |
| | | } |
| | | |
| | | // 处理修改和添加的明细 |
| | | foreach (InterfaceDetailVm detailModel in detailModels) |
| | | // 处理修改和添加的明细 |
| | | foreach (InterfaceDetailVm detailModel in model.InterfaceDetail) |
| | | { |
| | | if (detailModel.Id == 0 || detailModel.Id == null) |
| | | { |
| | | if (detailModel.Id == 0 || detailModel.Id == null) |
| | | { |
| | | sqlDetailStr += "Insert into SysInterfaceDetail (InterfaceNo,ExtField,MapField,Field,"; |
| | | sqlDetailStr += "FieldType,DataType,IsNull,Remark,FieldFather,CreateUser) values ( "; |
| | | sqlDetailStr += $"'{model.InterfaceNo}','{detailModel.ExtField}','{detailModel.MapField}','{detailModel.Field}', "; |
| | | sqlDetailStr += $"'{detailModel.FieldType}','{detailModel.DataType}','{detailModel.IsNull}','{detailModel.Remark}','{detailModel.FieldFather}','{model.CreateUser}'); "; |
| | | } |
| | | else |
| | | { |
| | | //判断是否更改 |
| | | int rowNum = dbDetailModels |
| | | .Count(it => it.Id == detailModel.Id |
| | | var modDetail = _mapper.Map<SysInterfaceDetail>(detailModel); |
| | | modDetail.CreateTime = DateTime.Now; |
| | | modDetail.CreateUser = _userManager.UserId; |
| | | modDetail.UpdateUser = _userManager.UserId; |
| | | modDetail.UpdateTime = DateTime.Now; |
| | | await Db.Insertable(modDetail).ExecuteCommandAsync(); |
| | | } |
| | | else |
| | | { |
| | | int rowNum = listDetails.Count(it => it.Id == detailModel.Id |
| | | && it.ExtField == detailModel.ExtField |
| | | && it.MapField == detailModel.MapField |
| | | && it.Field == detailModel.Field |
| | |
| | | && it.IsNull == detailModel.IsNull |
| | | && it.Remark == detailModel.Remark |
| | | && it.FieldFather == detailModel.FieldFather); |
| | | if (rowNum > 0) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | sqlDetailStr += $"UPDATE SysInterfaceDetail SET "; |
| | | sqlDetailStr += $"ExtField = '{detailModel.ExtField}',MapField = '{detailModel.MapField}',Field='{detailModel.Field}',FieldFather='{detailModel.FieldFather}', "; |
| | | sqlDetailStr += $"FieldType = '{detailModel.FieldType}',DataType = '{detailModel.DataType}', "; |
| | | sqlDetailStr += $"IsNull = '{detailModel.IsNull}',Remark = '{detailModel.Remark}', "; |
| | | sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; |
| | | sqlDetailStr += $"WHERE Id = {detailModel.Id};"; |
| | | if (rowNum > 0) |
| | | { |
| | | continue; |
| | | } |
| | | var modDetail = _mapper.Map<SysInterfaceDetail>(detailModel); |
| | | modDetail.UpdateUser = _userManager.UserId; |
| | | modDetail.UpdateTime = DateTime.Now; |
| | | await Db.Updateable<SysInterfaceDetail>(modDetail) |
| | | .UpdateColumns(s => new { s.ExtField, s.MapField, s.Field, s.FieldFather, s.FieldType, s.DataType, s.IsNull, s.Remark, s.UpdateUser, s.UpdateTime }) |
| | | .ExecuteCommandAsync(); |
| | | } |
| | | |
| | | Db.Ado.BeginTran(); |
| | | |
| | | int rowCount = Db.Ado.ExecuteCommand(sqlString); |
| | | var rowDetailCount = 1; |
| | | if (sqlDetailStr.Length > 0) |
| | | { |
| | | rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr); |
| | | } |
| | | Db.Ado.CommitTran(); |
| | | if (rowCount > 0 && rowDetailCount > 0) |
| | | { |
| | | //维护操作日志 |
| | | _operation.InsertOperation("系统设置", "接口管理", model.InterfaceNo, "编辑", $"编辑了接口编号为{model.InterfaceNo}的接口信息", Convert.ToInt32(model.CreateUser)); |
| | | return strMessage; |
| | | } |
| | | else |
| | | { |
| | | Db.Ado.RollbackTran(); |
| | | return "-2:添加失败数据回滚!"; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public string DelInterface(InterfaceVm model) |
| | | public async Task DelInterface(InterfaceVm model) |
| | | { |
| | | try |
| | | { |
| | | string sqlString = ""; |
| | | // 删除总 |
| | | sqlString = $"UPDATE SysInterface SET IsDel = '1',"; |
| | | sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; |
| | | sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}';"; |
| | | await Db.Updateable<SysInterface>() |
| | | .SetColumns(s => s.IsDel == "1") |
| | | .SetColumns(s => s.UpdateTime == DateTime.Now) |
| | | .SetColumns(s => s.UpdateUser == _userManager.UserId) |
| | | .Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0") |
| | | .ExecuteCommandAsync(); |
| | | |
| | | // 删除明细 |
| | | sqlString += $"UPDATE SysInterfaceDetail SET IsDel = '1',"; |
| | | sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; |
| | | sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}';"; |
| | | Db.Ado.BeginTran(); |
| | | int rowCount = Db.Ado.ExecuteCommand(sqlString); |
| | | |
| | | if (rowCount < 2) |
| | | { |
| | | Db.RollbackTran(); |
| | | return "-1:删除失败!"; |
| | | } |
| | | Db.Ado.CommitTran(); |
| | | _operation.InsertOperation("系统设置", "接口管理", model.InterfaceNo, "删除", $"删除了接口编号为{model.InterfaceNo}的接口信息", Convert.ToInt32(model.CreateUser)); |
| | | return ""; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | await Db.Updateable<SysInterfaceDetail>() |
| | | .SetColumns(s => s.IsDel == "1") |
| | | .SetColumns(s => s.UpdateTime == DateTime.Now) |
| | | .SetColumns(s => s.UpdateUser == _userManager.UserId) |
| | | .Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0") |
| | | .ExecuteCommandAsync(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public string DelInterfaceDetail(InterfaceDetailVm model) |
| | | public async Task DelInterfaceDetail(InterfaceDetailVm model) |
| | | { |
| | | try |
| | | { |
| | | string sqlString = ""; |
| | | |
| | | // 删除明细 |
| | | sqlString += $"UPDATE SysInterfaceDetail SET IsDel = '1',"; |
| | | sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; |
| | | sqlString += $"WHERE Id = '{model.Id}';"; |
| | | Db.Ado.BeginTran(); |
| | | int rowCount = Db.Ado.ExecuteCommand(sqlString); |
| | | |
| | | if (rowCount < 1) |
| | | { |
| | | Db.RollbackTran(); |
| | | return "-1:删除失败!"; |
| | | } |
| | | Db.Ado.CommitTran(); |
| | | _operation.InsertOperation("系统设置", "接口管理", model.InterfaceNo, "删除", $"删除了接口编号为{model.InterfaceNo},本系统字段为{model.Field}的接口信息", Convert.ToInt32(model.CreateUser)); |
| | | return ""; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | await Db.Updateable<SysInterfaceDetail>() |
| | | .SetColumns(s => s.IsDel == "1") |
| | | .SetColumns(s => s.UpdateTime == DateTime.Now) |
| | | .SetColumns(s => s.UpdateUser == _userManager.UserId) |
| | | .Where(s => s.Id == model.Id) |
| | | .ExecuteCommandAsync(); |
| | | } |
| | | |
| | | |
| | | //public void ceshi() |
| | | //{ |
| | | // string interfaceNo = "A0001"; |
| | |
| | | /// </summary> |
| | | /// <param name="InterfaceNo">接口编号</param> |
| | | /// <param name="param">存储过程参数</param> |
| | | public void RespondResult(string InterfaceNo,string param) |
| | | public void RespondResult(string InterfaceNo, string param) |
| | | { |
| | | try |
| | | { |
| | |
| | | var response = Utility.Tools.HttpHelper.DoPost(interfaceModel.Url, jsonData, interfaceModel.InterfaceName, interfaceModel.Remark); |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | { |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | { |
| | | |
| | | } |
| | | } |
| | | /// <summary> |
| | |
| | | } |
| | | } |
| | | public class RequestData |
| | | { |
| | | { |
| | | public string Field1 { get; set; } |
| | | public string Field2 { get; set; } |
| | | public string Field3 { get; set; } |