You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.7 KiB
52 lines
1.7 KiB
3 weeks ago
|
using Microsoft.AspNetCore.Http;
|
||
|
using Newtonsoft.Json.Linq;
|
||
|
using SqlSugar;
|
||
|
using SqlSugar.Extensions;
|
||
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Globalization;
|
||
|
using System.Linq;
|
||
|
using System.Threading.Tasks;
|
||
|
|
||
|
namespace ReZero.SuperAPI
|
||
|
{
|
||
|
public partial class DataService : IDataService
|
||
|
{
|
||
|
public BindHttpParameters BindHttpParameters => new BindHttpParameters();
|
||
|
public async Task<object> ExecuteAction(DataModel dataModel)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var actionTypeName = InstanceManager.GetActionTypeName(dataModel);
|
||
|
var errorParameters =await ValidateParameters.CheckAsync(dataModel);
|
||
|
object? errorData = await ErrorParameterHelper.GetErrorParameters(errorParameters);
|
||
|
if (ErrorParameterHelper.IsError(errorData))
|
||
|
{
|
||
|
return errorData;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
var actionType = Type.GetType(actionTypeName);
|
||
|
InstanceManager.CheckActionType(dataModel, actionType);
|
||
|
var actionInstance = (IDataService)Activator.CreateInstance(actionType);
|
||
|
var result = await actionInstance.ExecuteAction(dataModel);
|
||
|
return result;
|
||
|
}
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
if (ex.InnerException != null)
|
||
|
{
|
||
|
Console.WriteLine(ex.InnerException.Message);
|
||
|
throw ex.InnerException;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Console.WriteLine(ex.Message);
|
||
|
throw;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|