예제 #1
0
        public async Task <ResultData> EditRedisDevInfo([FromBody] RedisDataModel model)
        {
            try
            {
                if (model.TTLTime <= DateTime.Now)
                {
                    return(ResultData.CreateResult("-1", "TTL过期时间不能早于当前日期", null));
                }
                string redisConn = await GetRedisDBAddr(model.RedisAddr);

                RedisHelper redisHelper = new RedisHelper(redisConn);
                var         timeSpan    = model.TTLTime - DateTime.Now;
                var         result      = await redisHelper.Set(model.Type, model.Key, model.Value, timeSpan, model.RedisDB);

                if (result.Item1)
                {
                    return(ResultData.CreateSuccessResult());
                }
                else
                {
                    return(ResultData.CreateResult("-1", $"修改失败,失败信息为:{result.Item2}", null));
                }
            }
            catch (Exception ex)
            {
                return(ResultData.CreateResult("-1", $"异常信息:{ex.Message}", null));
            }
        }
예제 #2
0
        public async Task <ResultData> UpdateRedis()
        {
            using StreamReader bodyReader = new StreamReader(HttpContext.Request.Body, Encoding.UTF8);
            var data = await bodyReader.ReadToEndAsync();

            JObject jObject   = JObject.Parse(data);
            string  localPath = ApiUtils.GetLocalPath(_dbContext, jObject["Guid"].ToString(), out string errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(ResultData.CreateResult("-1", errorMessage, null));
            }

            List <RedisInfo> info;

            using (StreamReader reader = new StreamReader(localPath))
            {
                string json = await reader.ReadToEndAsync();

                info = JsonConvert.DeserializeObject <List <RedisInfo> >(json);
                info[0].ServiceName     = jObject["ServiceName"].ToString();
                info[0].Servers[0].IP   = jObject["IP"].ToString();
                info[0].Servers[0].Port = jObject["Port"].ToString().ToInt32();
                info[0].Address         = jObject["Address"].ToString();
                info[0].InstanceName    = jObject["InstanceName"].ToString();
                info[0].Password        = jObject["Password"].ToString();
            }


            using StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8);
            await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(info)));

            return(ResultData.CreateSuccessResult());
        }
예제 #3
0
        public async Task <ResultData> UpdateLogger()
        {
            using StreamReader bodyReader = new StreamReader(HttpContext.Request.Body, Encoding.UTF8);
            var data = await bodyReader.ReadToEndAsync();

            JObject jObject = JObject.Parse(data);

            string localPath = ApiUtils.GetLocalPath(_dbContext, jObject["Guid"].ToString(), out string errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(ResultData.CreateResult("-1", errorMessage, null));
            }

            List <Logger> info;

            using (StreamReader reader = new StreamReader(localPath))
            {
                string json = await reader.ReadToEndAsync();

                info = JsonConvert.DeserializeObject <List <Logger> >(json);
                info[0].DataAdapterType = jObject["DataAdapterType"].ToString();
                info[0].DbInfo          = jObject["DbInfo"].ToString();
                info[0].LogLevel        = jObject["LogLevel"].ToString();
            }

            using StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8);
            await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(info)));

            return(ResultData.CreateSuccessResult());
        }
예제 #4
0
        public async Task <ResultData> UpdateErpLog()
        {
            using StreamReader bodyReader = new StreamReader(HttpContext.Request.Body, Encoding.UTF8);
            var data = await bodyReader.ReadToEndAsync();

            JObject jObject = JObject.Parse(data);

            string localPath = ApiUtils.GetLocalPath(_dbContext, jObject["Guid"].ToString(), out string errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(ResultData.CreateResult("-1", errorMessage, null));
            }

            ErpLogConfig info;

            using (StreamReader reader = new StreamReader(localPath))
            {
                string json = await reader.ReadToEndAsync();

                info = JsonConvert.DeserializeObject <ErpLogConfig>(json);
                info.MQConnModel.ConnectionModel.Host     = jObject["Host"].ToString();
                info.MQConnModel.ConnectionModel.Port     = jObject["Port"].ToString();
                info.MQConnModel.ConnectionModel.UserName = jObject["UserName"].ToString();
                info.MQConnModel.ConnectionModel.Password = jObject["Password"].ToString();
            }


            using StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8);
            await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(info)));

            return(ResultData.CreateSuccessResult());
        }
예제 #5
0
        public async Task <ResultData> DeletePublicDataAdapters([FromBody] List <PublicDataAdapters> data)
        {
            string guid      = Request.Query["guid"];
            string localPath = ApiUtils.GetLocalPath(_dbContext, guid, out string errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(ResultData.CreateResult("-1", errorMessage, null));
            }

            List <PublicDataAdapters> infos;

            using (StreamReader reader = new StreamReader(localPath))
            {
                string json = await reader.ReadToEndAsync();

                infos = JsonConvert.DeserializeObject <List <PublicDataAdapters> >(json);
            }

            string[] dataAdapterAlias = data.Select(x => x.DataAdapterAlias).ToArray();

            List <PublicDataAdapters> deleteData = infos.Where(x => dataAdapterAlias.Contains(x.DataAdapterAlias)).ToList();

            foreach (var item in deleteData)
            {
                infos.Remove(item);
            }

            using StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8);
            await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(infos)));

            return(ResultData.CreateSuccessResult());
        }
예제 #6
0
        public async Task <ResultData> AddPublicDataAdapters([FromBody] PublicDataAdapters info)
        {
            string guid      = Request.Query["guid"];
            string localPath = ApiUtils.GetLocalPath(_dbContext, guid, out string errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(ResultData.CreateResult("-1", errorMessage, null));
            }

            List <PublicDataAdapters> infos;

            using (StreamReader reader = new StreamReader(localPath))
            {
                string json = await reader.ReadToEndAsync();

                infos = JsonConvert.DeserializeObject <List <PublicDataAdapters> >(json);
                if (infos.Where(x => x.DataAdapterAccountName == info.DataAdapterAccountName || x.DataAdapterAlias == info.DataAdapterAlias).ToList().Count > 0)
                {
                    return(ResultData.CreateResult("-1", "账套名称或账套号已存在", null));
                }
                infos.Add(info);
            }

            using StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8);
            await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(infos)));

            return(ResultData.CreateSuccessResult());
        }
예제 #7
0
 public ResultData BuildPublicDataAdapters([FromBody] List <DataBaseInfo> infos)
 {
     try
     {
         List <DataBaseInfo>       dataBaseInfos      = _dbContext.Queryable <DataBaseInfo>().In(infos.Select(x => x.Guid).ToArray()).ToList();
         List <PublicDataAdapters> publicDataAdapters = new List <PublicDataAdapters>();
         foreach (var item in dataBaseInfos)
         {
             PublicDataAdapters publicDataAdapter = new PublicDataAdapters
             {
                 DataAdapterType        = item.DataBaseType,
                 DataAdapterAlias       = item.AccountSetNumber,
                 IsDefaultDataAdapter   = "0",
                 DataAdapterAccountName = item.AccountSetName,
                 DataAdapterInfo        = $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={item.ServerAddress})(PORT={item.Port})))(CONNECT_DATA=(SERVICE_NAME={item.DataBaseName})));User Id={item.UserName};Password={item.UserPassword};{item.ConnectionStringOther}".ToEncodeString()
             };
             publicDataAdapters.Add(publicDataAdapter);
         }
         return(ResultData.CreateSuccessResult("", JsonConvert.SerializeObject(publicDataAdapters)));
     }
     catch (Exception ex)
     {
         return(ResultData.CreateResult("-1", ex.Message, null));
     }
 }
예제 #8
0
        public ResultData Login([FromBody] UserInfo data)
        {
            if (data == null)
            {
                return(ResultData.CreateResult("-1", "用户名或密码不正确", null));
            }

            KeyValuePair <bool, string> keyValue = ApiUtils.CheckFuncParams(data, "UserName", "Password");

            if (!keyValue.Key)
            {
                return(ResultData.CreateResult("-1", $"验证失败,字段{keyValue.Value}不能为空", null));
            }

            string   pa       = ApiUtils.MD5Encode(data.Password, "32");
            UserInfo userInfo = _dbContext.Queryable <UserInfo>().Where(x => x.UserName.ToLower() == data.UserName.ToLower() && x.Password == ApiUtils.MD5Encode(data.Password, "32")).Single();

            if (userInfo != null)
            {
                HttpContext.Session.SetData("user", userInfo);
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "用户名或密码不正确", null));
            }
        }
예제 #9
0
        public async Task <ResultData> DeleteTaskDetailInfo([FromBody] List <TasksDetail> Tasks)
        {
            if (Tasks == null || Tasks.Count == 0)
            {
                return(ResultData.CreateResult("-1", "删除失败", null));
            }

            int result = 0;

            var orgCodes = new int[Tasks.Count];

            for (int i = 0; i < Tasks.Count; i++)
            {
                orgCodes[i] = Tasks[i].Guid;
            }
            result = await _sqliteSql.Delete <TasksDetail>().Where(o => orgCodes.Contains(o.Guid)).ExecuteAffrowsAsync();

            if (result > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "删除失败", null));
            }
        }
예제 #10
0
        public async Task <ResultData> UpdateConfigJson([FromBody] ConfigJsonInfo info)
        {
            try
            {
                ConfigInfo config = _dbContext.Queryable <ConfigInfo>().Where(x => x.Guid == info.Guid).First();
                if (config == null)
                {
                    return(ResultData.CreateResult("-1", "本地文件不存在", null));
                }

                string localPath = $"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}/Configs{config.LocalPath}{config.ConfigName}".ToSystemPath();

                if (!System.IO.File.Exists(localPath))
                {
                    return(ResultData.CreateResult("-1", "本地文件不存在", null));
                }

                using (StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8))
                {
                    await writer.WriteAsync(info.Json);
                }

                return(ResultData.CreateSuccessResult("", ""));
            }
            catch (Exception ex)
            {
                return(ResultData.CreateResult("-1", $"系统异常 {ex.Message}", null));
            }
        }
예제 #11
0
 public async Task <ResultData> UpdateServerInfo([FromBody] ServerInfo info)
 {
     if (string.IsNullOrEmpty(info.BusinessGuid) || string.IsNullOrEmpty(info.ServerAddress))
     {
         return(ResultData.CreateResult("-1", "缺少必填字段", null));
     }
     return(await ApiUtils.UpdateData(_dbContext, info));
 }
예제 #12
0
 public async Task <ResultData> DeleteConfigInfo([FromBody] List <ConfigInfo> infos)
 {
     if (infos.Where(x => x.IsSystem == "1").ToList().Count > 0)
     {
         return(ResultData.CreateResult("-1", "删除失败!存在不可删除的系统文件!", null));
     }
     return(await ApiUtils.DeleteData(_dbContext, infos));
 }
예제 #13
0
        public async Task <ResultData> AddDataBaseInfo([FromBody] DataBaseInfo info)
        {
            //检查重复
            if (_dbContext.Queryable <DataBaseInfo>().Where(x => x.BusinessType == info.BusinessType && (x.AccountSetName == info.AccountSetName || x.AccountSetNumber == info.AccountSetNumber)).Count() > 0)
            {
                return(ResultData.CreateResult("-1", "账套号或账套名称已存在", null));
            }

            //获取配置文件信息
            ConfigInfo configInfo = _dbContext.Queryable <ConfigInfo>().Where(x => x.ConfigName == "PublicDataAdapters.json" && x.CategoryType == info.BusinessType).First();

            if (configInfo == null)
            {
                return(ResultData.CreateResult("-1", "配置文件不存在", null));
            }

            //判断配置文件是否存在
            string localPath = ApiUtils.GetLocalPath(_dbContext, configInfo.Guid, out string errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(ResultData.CreateResult("-1", errorMessage, null));
            }

            //生成加密信息
            PublicDataAdapters publicDataAdapter = new PublicDataAdapters
            {
                DataAdapterType        = info.DataBaseType,
                DataAdapterAlias       = info.AccountSetNumber,
                IsDefaultDataAdapter   = "0",
                DataAdapterAccountName = info.AccountSetName,
                DataAdapterInfo        = $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={info.ServerAddress})(PORT={info.Port})))(CONNECT_DATA=(SERVICE_NAME={info.DataBaseName})));User Id={info.UserName};Password={info.UserPassword};{info.ConnectionStringOther}".ToEncodeString()
            };

            List <PublicDataAdapters> infos;

            using (StreamReader reader = new StreamReader(localPath))
            {
                string json = await reader.ReadToEndAsync();

                infos = JsonConvert.DeserializeObject <List <PublicDataAdapters> >(json);
                if (infos.Where(x => x.DataAdapterAccountName == publicDataAdapter.DataAdapterAccountName || x.DataAdapterAlias == publicDataAdapter.DataAdapterAlias).ToList().Count > 0)
                {
                    return(ResultData.CreateResult("-1", "配置文件中账套名称或账套号已存在", null));
                }
                infos.Add(publicDataAdapter);
            }

            //插入数据库
            ResultData result = await ApiUtils.InsertData(_dbContext, info);

            //修改本地文件
            using StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8);
            await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(infos)));

            return(result);
        }
예제 #14
0
        public async Task <ResultData> ConfigSynchronousByFileName([FromBody] ConfigSynchronousByFileNameRequest info)
        {
            try
            {
                if (info == null)
                {
                    return(ResultData.CreateResult("-1", "同步失败", null));
                }
                string            fileName    = info.FileName;
                List <ConfigInfo> configInfos = info.ConfigInfos;


                //获取服务器信息
                List <ServerInfo> servers = _dbContext.Queryable <ServerInfo>().In(x => x.Guid, configInfos.Select(it => it.Guid).ToArray()).ToList();
                if (servers == null || servers.Count == 0)
                {
                    return(ResultData.CreateResult("-1", "未找到服务器信息", null));
                }

                //获取要同步的配置文件信息
                List <ConfigInfo> configs = _dbContext.Queryable <ConfigInfo>().Where(x => x.ConfigName == fileName).ToList();
                if (configs == null || configs.Count == 0)
                {
                    return(ResultData.CreateResult("-1", "未找到配置文件信息", null));
                }

                StringBuilder stringBuilder = new StringBuilder();

                foreach (var server in servers)
                {
                    foreach (var config in configs)
                    {
                        string localPath  = $"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}/Configs{config.LocalPath}{config.ConfigName}".ToSystemPath();
                        string remotePath = $"{config.ConfigPath}{config.ConfigName}";

                        ResultData result = await SftpHelp.UpLoad(server.ServerAddress, server.Port.ToInt32(), server.UserName, server.Password, remotePath, localPath);

                        if (result.Code != "0")
                        {
                            stringBuilder.Append($"配置文件:{config.ConfigName}同步至服务器:{server.ServerAddress}失败 错误原因{result.Msg} <br>");
                        }
                    }
                }

                if (stringBuilder.Length > 0)
                {
                    return(ResultData.CreateResult("1", stringBuilder.ToString(), null));
                }

                return(ResultData.CreateSuccessResult());
            }
            catch (Exception ex)
            {
                return(ResultData.CreateResult("-1", $"系统异常:{ex.Message}", null));
            }
        }
예제 #15
0
        public async Task <ResultData> UpdateTaskDetailInfo([FromBody] TasksDetail Task)
        {
            var insetresult = await _sqliteSql.Update <TasksDetail>().SetSource(Task).ExecuteAffrowsAsync();

            if (insetresult > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "更新失败", null));
            }
        }
예제 #16
0
        public async Task <ResultData> UpdateScriptInfo([FromBody] Script script)
        {
            var insetresult = await _sqliteSql.Update <Script>().SetSource(script).ExecuteAffrowsAsync();

            if (insetresult > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "更新失败", null));
            }
        }
예제 #17
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="client"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static async Task <ResultData> UpdateData <T>(SqlSugarClient client, T data) where T : BaseInfo, new()
        {
            int result = await client.Updateable(data).ExecuteCommandAsync();

            if (result > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "更新失败", null));
            }
        }
예제 #18
0
        public async Task <ResultData> AddConfigInfo([FromBody] ConfigInfo info)
        {
            KeyValuePair <bool, string> keyValue = ApiUtils.CheckFuncParams(info, "ConfigName", "ConfigPath", "LocalPath", "CategoryType");

            if (!keyValue.Key)
            {
                return(ResultData.CreateResult("-1", $"验证失败,字段{keyValue.Value}不能为空", null));
            }

            info.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            info.IsSystem   = "0";
            return(await ApiUtils.InsertData(_dbContext, info));
        }
예제 #19
0
        /// <summary>
        /// 插入
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="client"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static async Task <ResultData> InsertData <T>(SqlSugarClient client, T data) where T : BaseInfo, new()
        {
            data.Guid = Guid.NewGuid().ToString("N");
            int result = await client.Insertable(data).ExecuteReturnIdentityAsync();

            if (result > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "添加失败", null));
            }
        }
예제 #20
0
 public ResultData FTPTestConnection(string guid)
 {
     try
     {
         ServerInfo info = _dbContext.Queryable <ServerInfo>().Where(x => x.Guid == guid).First();
         using var client = new SftpClient(info.ServerAddress, Convert.ToInt32(info.Port), info.UserName, info.Password);
         client.Connect();
         client.Dispose();
         return(ResultData.CreateSuccessResult());
     }
     catch (Exception ex)
     {
         return(ResultData.CreateResult("-1", ex.Message, null));
     }
 }
예제 #21
0
        public async Task <ResultData> UpdateOrgInfo([FromBody] Organization organization)
        {
            var databaseInfo = organization.GetConnString(organization);

            organization.ConnectingString = databaseInfo.connString;
            var insetresult = await _sqliteSql.Update <Organization>().SetSource(organization).ExecuteAffrowsAsync();

            if (insetresult > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "更新失败", null));
            }
        }
예제 #22
0
        public async Task <ResultData> UpdatePublicDataAdapters()
        {
            string guid      = Request.Query["guid"];
            string localPath = ApiUtils.GetLocalPath(_dbContext, guid, out string errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(ResultData.CreateResult("-1", errorMessage, null));
            }

            List <PublicDataAdapters> infos;

            using (StreamReader reader = new StreamReader(localPath))
            {
                string json = await reader.ReadToEndAsync();

                infos = JsonConvert.DeserializeObject <List <PublicDataAdapters> >(json);
            }

            using StreamReader bodyReader = new StreamReader(HttpContext.Request.Body, Encoding.UTF8);
            var data = await bodyReader.ReadToEndAsync();

            JObject info = JObject.Parse(data);

            if (infos.Where(x => x.DataAdapterAlias != info["DataAdapterAlias"].ToNullString() && x.DataAdapterAccountName != info["DataAdapterAccountName"].ToNullString()).Where(x => x.DataAdapterAlias == info["NewDataAdapterAlias"].ToNullString() || x.DataAdapterAccountName == info["NewDataAdapterAccountName"].ToNullString()).ToList().Count > 0)
            {
                return(ResultData.CreateResult("-1", "账套名称或账套号已存在", null));
            }

            foreach (var item in infos)
            {
                if (item.DataAdapterAlias != info["DataAdapterAlias"].ToNullString())
                {
                    continue;
                }

                item.DataAdapterAlias       = info["NewDataAdapterAlias"].ToNullString();
                item.DataAdapterType        = info["NewDataAdapterType"].ToNullString();
                item.DataAdapterInfo        = info["NewDataAdapterInfo"].ToNullString();
                item.DataAdapterAccountName = info["NewDataAdapterAccountName"].ToNullString();
            }

            using StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8);
            await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(infos)));

            return(ResultData.CreateSuccessResult());
        }
예제 #23
0
        /// <summary>
        /// Sftp下载文件
        /// </summary>
        /// <param name="host"></param>
        /// <param name="port"></param>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="remotePath">远程文件路径</param>
        /// <param name="localPath">本地文件路径</param>

        public static async Task <ResultData> DownLoad(string host, int port, string username, string password, string remotePath, string localPath)
        {
            try
            {
                using var client = new SftpClient(host, port, username, password);
                client.Connect();
                byte[] buffer = client.ReadAllBytes(remotePath);
                using FileStream fs = new FileStream(localPath, FileMode.Create);
                await fs.WriteAsync(buffer, 0, buffer.Length);

                return(ResultData.CreateSuccessResult());
            }
            catch (Exception ex)
            {
                return(ResultData.CreateResult("-1", ex.Message, null));
            }
        }
예제 #24
0
        public async Task <ResultData> AddTaskInfo([FromBody] Tasks Task)
        {
            var insetresult = await _sqliteSql.Insert(new Tasks
            {
                Description = Task.Description,
                Name        = Task.Name
            }).ExecuteAffrowsAsync();

            if (insetresult > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "添加失败", null));
            }
        }
예제 #25
0
        public async Task <ResultData> AddTaskDetailInfo([FromBody] TasksDetail Task)
        {
            var insetresult = await _sqliteSql.Insert(new TasksDetail
            {
                ScriptCode = Task.ScriptCode,
                OrgCode    = Task.OrgCode,
                TaskCode   = Task.TaskCode
            }).ExecuteAffrowsAsync();

            if (insetresult > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "添加失败", null));
            }
        }
예제 #26
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="client"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static async Task <ResultData> DeleteData <T>(SqlSugarClient client, List <T> data) where T : BaseInfo, new()
        {
            if (data == null || data.Count == 0)
            {
                return(ResultData.CreateResult("-1", "删除失败", null));
            }

            int result = await client.Deleteable <T>().In(data.Select(x => x.Guid).ToArray()).ExecuteCommandAsync();

            if (result > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "删除失败", null));
            }
        }
예제 #27
0
        public async Task <ResultData> DeleteRedisDev(string redisaddr, int redisdb, string searchkey)
        {
            #region 获取Redis的地址,连接实例
            string redisConn = await GetRedisDBAddr(redisaddr);

            RedisHelper redisHelper = new RedisHelper(redisConn);
            #endregion
            var result = await redisHelper.ClearKeys(redisdb, searchkey);

            if (result.Item1)
            {
                return(ResultData.CreateSuccessResult("删除成功"));
            }
            else
            {
                return(ResultData.CreateResult("-1", $"删除键失败,失败信息:{result.Item2}", null));
            }
        }
예제 #28
0
        public async Task <ResultData> AddScriptInfo([FromBody] Script script)
        {
            var insetresult = await _sqliteSql.Insert(new Script
            {
                ScriptContent = script.ScriptContent,
                Description   = script.Description,
                Name          = script.Name
            }).ExecuteAffrowsAsync();

            if (insetresult > 0)
            {
                return(ResultData.CreateSuccessResult());
            }
            else
            {
                return(ResultData.CreateResult("-1", "添加失败", null));
            }
        }
예제 #29
0
        public async Task <ResultData> DeleteDataBaseInfo(List <DataBaseInfo> infos, string type)
        {
            //获取配置文件信息
            ConfigInfo configInfo = _dbContext.Queryable <ConfigInfo>().Where(x => x.ConfigName == "PublicDataAdapters.json" && x.CategoryType == type).First();

            if (configInfo == null)
            {
                return(ResultData.CreateResult("-1", "配置文件不存在", null));
            }

            string localPath = ApiUtils.GetLocalPath(_dbContext, configInfo.Guid, out string errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(ResultData.CreateResult("-1", errorMessage, null));
            }

            List <PublicDataAdapters> datainfos;

            using (StreamReader reader = new StreamReader(localPath))
            {
                string json = await reader.ReadToEndAsync();

                datainfos = JsonConvert.DeserializeObject <List <PublicDataAdapters> >(json);
            }

            string[] dataAdapterAlias = infos.Select(x => x.AccountSetNumber).ToArray();

            List <PublicDataAdapters> deleteData = datainfos.Where(x => dataAdapterAlias.Contains(x.DataAdapterAlias)).ToList();

            foreach (var item in deleteData)
            {
                datainfos.Remove(item);
            }

            using (StreamWriter writer = new StreamWriter(localPath, false, Encoding.UTF8))
            {
                await writer.WriteAsync(ApiUtils.ConvertJsonString(JsonConvert.SerializeObject(datainfos)));
            }

            return(ResultData.CreateSuccessResult());
        }
예제 #30
0
        /// <summary>
        /// Sftp上传文件
        /// </summary>
        /// <param name="host"></param>
        /// <param name="port"></param>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="remotePath">远程文件路径</param>
        /// <param name="localPath">本地文件路径</param>
        public static async Task <ResultData> UpLoad(string host, int port, string username, string password, string remotePath, string localPath)
        {
            try
            {
                using var client = new SftpClient(host, port, username, password);
                client.Connect();
                using FileStream fileStream = new FileStream(localPath, FileMode.Open);
                using MemoryStream fs       = new MemoryStream();
                await fileStream.CopyToAsync(fs);

                fs.Seek(0, SeekOrigin.Begin);
                client.BufferSize = 4 * 1024 * 1024;
                client.UploadFile(fs, remotePath);
                return(ResultData.CreateSuccessResult());
            }
            catch (Exception ex)
            {
                return(ResultData.CreateResult("-1", ex.Message, null));
            }
        }