using Common.Models.Enums; using Common.Models.UnqTables; using Common.Utils; using Server.MyClass.Views; using SqlSugar; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace Server.Controllers.OpenManagement { public class ComController:DefaultController { private const int DefaultMaxNumber = 20; /// /// 搜索机器人 /// [HttpPost, ErrorFilter] public WebResult SerchRobots() { var Keyword = GetString("Keyword"); var exp = Expressionable.Create(); if (!string.IsNullOrEmpty(Keyword)) { exp.And(f => f.Nickname.Contains(Keyword) || f.Username.Contains(Keyword)); } var RobotType = GetInt("RobotType"); if (RobotType != 0) { exp.And(f => f.UserType == (UserType)RobotType); } var DataList = Db.Queryable() .Where(exp.ToExpression()) .OrderBy(f=>f.Id, OrderByType.Desc) .Select(m => new { Id = m.Id, Nickname = m.Nickname, Username = m.Username }) .Take(DefaultMaxNumber) .ToList(); return PutData(DataList); } /// /// 搜索配置模板 /// [HttpPost, ErrorFilter] public WebResult SerchConfigs() { var Keyword = GetString("Keyword"); var exp = Expressionable.Create(); if (!string.IsNullOrEmpty(Keyword)) { exp.And(f => f.Name.Contains(Keyword) ); } var RobotType = GetInt("ConfigType",true); if (RobotType != 0) { exp.And(f => f.Type == (ConfigType)RobotType); } var DataList = Db.Queryable() .Where(exp.ToExpression()) .OrderBy(f => f.Id, OrderByType.Desc) .Select(m => new { Id = m.Id, Name = m.Name}) .Take(DefaultMaxNumber) .ToList(); return PutData(DataList); } #region 之前的代码 ///// ///// 上传资源 ///// ///// //[HttpPost, ErrorFilter] //public WebResult Upload() //{ // //Tabale 填充这个数据,Resources // ResourcesType fileType = ResourcesType.未知; // ResourcesUse fileUse = ResourcesUse.未知; // var remark = GetString("Remark", false); // var id = GetLong("Id", false); // var provider = new MultipartMemoryStreamProvider(); // //读取文件数据 // var r = Request.Content.ReadAsMultipartAsync(provider).Result; // System.Net.Http.StreamContent item = null; // foreach (var content in r.Contents) // { // switch (content.Headers.ContentDisposition.Name.Replace("\"", "")) // { // case "FileType": // fileType = (ResourcesType)Enum.Parse(typeof(ResourcesType), content.ReadAsStringAsync().Result); // break; // case "FileUse": // fileUse = (ResourcesUse)Enum.Parse(typeof(ResourcesUse), content.ReadAsStringAsync().Result); // break; // case "Remark": // remark = content.ReadAsStringAsync().Result; // break; // case "File": // item = content as System.Net.Http.StreamContent; // break; // } // } // //var item = provider.Contents[0]; // if (string.IsNullOrWhiteSpace(item.Headers.ContentDisposition.FileName)) // { // return PutData("文件名不存在"); // } // string upfileName = item.Headers.ContentDisposition.FileName.Replace("\"", ""); // var resources = this.Db.Queryable().Where(w => w.Id == id).First(); // if (id == 0) // { // resources = new Resources(); // resources.Remark = remark; // resources.CreateTime = DateTime.Now; // resources.FileType = fileType; // resources.FileUse = fileUse; // resources.Filename = upfileName; // resources.UpdateTime = DateTime.Now; // resources.FileId = Guid.NewGuid().ToString("N"); // } // else // { // if (resources == null) // { // return PutData("更新失败,数据不存在。"); // } // resources.Remark = remark; // resources.FileType = fileType; // resources.FileUse = fileUse; // resources.Filename = upfileName; // resources.UpdateTime = DateTime.Now; // resources.FileId = Guid.NewGuid().ToString("N"); // } // using (var ms = item.ReadAsStreamAsync().Result) // { // if (ms.Length <= 0) // { // return PutData("文件长度为空"); // } // if (resources.Id == 0) // { // this.Db.Insertable(resources).ExecuteReturnEntity(); // } // else // { // this.Db.Updateable(resources).ExecuteCommand(); // //删除老文件 // //var oldfileName = resources.FileId + Path.GetExtension(resources.Filename); // var oldfileName = resources.Filename; // var oldpath = CsharpHttpHelper.HttpExtend.MapFile(oldfileName, "网站\\resources"); // if (File.Exists(oldpath)) // { // File.Delete(oldpath); // } // } // //var fileName = resources.FileId + Path.GetExtension(upfileName); // var fileName = resources.Filename; // var path = CsharpHttpHelper.HttpExtend.MapFile(fileName, "网站\\resources"); // using (var filems = File.OpenWrite(path)) // { // ms.CopyTo(filems); // } // return new WebResult() // { // Ok = true, // Data = resources // }; // } //} #endregion private const string defaultResourcesPath = "网站\\resources"; [HttpPost, ErrorFilter] public WebResult UploadFile() { Resources resources = new Resources(); //读取文件数据 var provider = new MultipartMemoryStreamProvider(); var r = Request.Content.ReadAsMultipartAsync(provider).Result; System.Net.Http.StreamContent item = null; foreach (var content in r.Contents) { switch (content.Headers.ContentDisposition.Name.Replace("\"", "")) { case "FileType": resources.FileType = (ResourcesType)Enum.Parse(typeof(ResourcesType), content.ReadAsStringAsync().Result); break; case "FileUse": resources.FileUse = (ResourcesUse)Enum.Parse(typeof(ResourcesUse), content.ReadAsStringAsync().Result); break; case "File": item = content as System.Net.Http.StreamContent; break; } } using (var ms = item.ReadAsStreamAsync().Result) { resources.FileId = Guid.NewGuid().ToString("N"); resources.UpdateTime = DateTime.Now; resources.CreateTime = DateTime.Now; resources.Filename = item.Headers.ContentDisposition.FileName.Replace("\"", ""); //以随机数为文件名,防止同名文件被覆盖 var fileName = Util.MapFile(resources.FileId, defaultResourcesPath); try { using (var filems = File.OpenWrite(fileName)) { ms.CopyTo(filems); } } catch (Exception ex) { //写入失败,删除无效文件 Util.DeleteFile(fileName); return PutData(ex); } resources.Id = Db.Insertable(resources).ExecuteReturnIdentity(); } return PutData(resources); } } }