/// <summary> /// 备份数据库 /// </summary> public static ActionResultVM BackupDataBase() { var vm = new ActionResultVM(); try { var listMsg = new List <object>(); var kp = "Work:BackupDataBase:SQLServer:"; //执行命令 using var db = new ContextBase(); using var conn = db.Database.GetDbConnection(); conn.Open(); var connCmd = conn.CreateCommand(); connCmd.CommandText = GlobalTo.GetValue(kp + "cmd"); int en = connCmd.ExecuteNonQuery(); listMsg.Add(en); vm.Set(ARTag.success); vm.data = listMsg; } catch (Exception ex) { vm.Set(ex); } return(vm); }
public ActionResultVM GetToken(string AppId, string AppKey) { var vm = new ActionResultVM(); try { if (string.IsNullOrWhiteSpace(AppId) || string.IsNullOrWhiteSpace(AppKey)) { vm.Set(ARTag.lack); vm.msg = "参数缺失"; } else { if (!(CacheTo.Get(AppKey) is ActionResultVM cvm)) { vm = SQLiteBase.GetToken(AppId, AppKey); if (vm.code == 200) { //Token缓存 CacheTo.Set(AppKey, vm, GlobalTo.GetValue <int>("Safe:TokenCache"), false); } } else { vm = cvm; } }
/// <summary> /// 发送邮件 /// </summary> /// <param name="ToMail">送达邮件地址</param> /// <param name="Title">标题</param> /// <param name="Content">内容</param> /// <returns></returns> public static ActionResultVM Send(string ToMail, string Title, string Content) { var vm = new ActionResultVM(); try { var message = new MimeMessage(); message.From.Add(new MailboxAddress(GlobalTo.GetValue("MailKit:FromAddress"))); message.To.Add(new MailboxAddress(ToMail)); message.Subject = Title; message.Body = new BodyBuilder() { HtmlBody = Content }.ToMessageBody(); using (var client = new SmtpClient()) { client.ServerCertificateValidationCallback = (s, c, h, e) => true; client.Connect(GlobalTo.GetValue("MailKit:Host"), GlobalTo.GetValue <int>("MailKit:Port"), true); client.Authenticate(GlobalTo.GetValue("MailKit:Auth:UserName"), GlobalTo.GetValue("MailKit:Auth:Password")); client.Send(message); client.Disconnect(true); vm.Set(ARTag.success); } } catch (Exception ex) { vm.Set(ex); } return(vm); }
/// <summary> /// 批量新增 /// </summary> /// <returns></returns> private ActionResultVM BulkInsert() { var vm = new ActionResultVM(); var list = new List <SysLog>(); for (int i = 0; i < 50_000; i++) { var mo = new SysLog() { LogId = Guid.NewGuid().ToString(), LogAction = "/", LogBrowserName = "Chrome", LogCity = "重庆", LogContent = "测试信息", LogCreateTime = vm.startTime, LogGroup = 1, LogIp = "0.0.0.0", LogSystemName = "Win10", LogUrl = Request.Path, SuName = "netnr", SuNickname = "netnr", LogRemark = "无" }; list.Add(mo); } db.SysLog.BulkInsert(list); db.BulkSaveChanges(); vm.Set(ARTag.success); return(vm); }
/// <summary> /// 公共注册 /// </summary> /// <param name="mo">个人用户信息</param> /// <returns></returns> private ActionResultVM RegisterUser(Domain.UserInfo mo) { var vm = new ActionResultVM(); using (var db = new Data.ContextBase()) { var isok = true; //邮箱注册 if (!string.IsNullOrWhiteSpace(mo.UserMail)) { isok = !db.UserInfo.Any(x => x.UserName == mo.UserName || x.UserMail == mo.UserMail); vm.Set(ARTag.exist); vm.Msg = "该邮箱已经注册"; } else { isok = !db.UserInfo.Any(x => x.UserName == mo.UserName); vm.Set(ARTag.exist); vm.Msg = "该账号已经注册"; } if (isok) { db.UserInfo.Add(mo); int num = db.SaveChanges(); vm.Set(num > 0); } } return(vm); }
public ActionResultVM WriteDel(int id) { var vm = new ActionResultVM(); int uid = new Func.UserAuthAid(HttpContext).Get().UserId; using (var db = new ContextBase()) { var mo1 = db.UserWriting.Where(x => x.Uid == uid && x.UwId == id).FirstOrDefault(); if (mo1.UwStatus == -1) { vm.Set(ARTag.unauthorized); } else { db.UserWriting.Remove(mo1); var mo2 = db.UserWritingTags.Where(x => x.UwId == id).ToList(); db.UserWritingTags.RemoveRange(mo2); var mo3 = db.UserReply.Where(x => x.UrTargetId == id.ToString()).ToList(); db.UserReply.RemoveRange(mo3); vm.Set(db.SaveChanges() > 0); } } return(vm); }
public ActionResultVM DelCatalog(string code, string id) { var vm = new ActionResultVM(); var uinfo = new Application.UserAuthService(HttpContext).Get(); using var db = new ContextBase(); var ds = db.DocSet.Find(code); if (ds?.Uid != uinfo.UserId) { vm.Set(ARTag.unauthorized); return(vm); } var listdsd = db.DocSetDetail.Where(x => x.DsCode == code && string.IsNullOrEmpty(x.DsdContentMd)).ToList(); var removelist = Core.TreeTo.FindToTree(listdsd, "DsdPid", "DsdId", new List <string> { id }); removelist.Add(listdsd.Where(x => x.DsdId == id).FirstOrDefault()); db.DocSetDetail.RemoveRange(removelist); int num = db.SaveChanges(); vm.Set(num > 0); return(vm); }
public ActionResultVM UpdatePassword(string oldpwd, string newpwd) { var vm = new ActionResultVM(); int uid = new Application.UserAuthService(HttpContext).Get().UserId; using (var db = new Data.ContextBase()) { var userinfo = db.UserInfo.Find(uid); if (userinfo.UserPwd == Core.CalcTo.MD5(oldpwd)) { userinfo.UserPwd = Core.CalcTo.MD5(newpwd); db.UserInfo.Update(userinfo); var num = db.SaveChanges(); vm.Set(num > 0); } else { vm.Set(ARTag.unauthorized); } }; return(vm); }
/// <summary> /// 保存为JSON文件 /// </summary> /// <param name="CoverJson">写入JSON文件,默认 false</param> /// <returns></returns> public ActionResultVM SaveAsJson(bool CoverJson = false) { var vm = new ActionResultVM(); var dicKey = new Dictionary <string, object> { { "SysButton", Tsb.ToList() }, { "SysDictionary", Tsd.ToList() }, { "SysMenu", Tsm.ToList() }, { "SysRole", Tsr.ToList() }, { "SysTableConfig", Tstc.ToList() }, { "SysUser", Tsu.ToList() }, { "TempExample", Tte.ToList() }, { "TempInvoiceDetail", Ttid.ToList() }, { "TempInvoiceMain", Ttim.ToList() } }; vm.Data = dicKey; if (CoverJson) { Core.FileTo.WriteText(vm.ToJson(), JsonPath, JsonName, false); } vm.Set(ARTag.success); return(vm); }
public ActionResultVM UserInfo() { var vm = new ActionResultVM(); try { var uinfo = new Application.UserAuthService(HttpContext).Get(); if (uinfo.UserId != 0) { vm.Data = uinfo; vm.Set(ARTag.success); } else { vm.Set(ARTag.unauthorized); } } catch (Exception ex) { vm.Set(ex); Filters.FilterConfigs.WriteLog(HttpContext, ex); } return(vm); }
public ActionResultVM RepairTableConfig(string names) { var vm = new ActionResultVM(); var listName = names.Split(','); if (string.IsNullOrWhiteSpace(names) || listName.Length == 0) { vm.code = 1; vm.msg = "表名不能为空"; } else { using (var db = new ContextBase()) { var dbname = db.Database.GetDbConnection().Database; var sqltemplate = QueryScripts(db.TDB.ToString(), "config"); var listTc = db.SysTableConfig.ToList(); foreach (var name in listName) { var sql = sqltemplate.Replace("@DataBaseName", dbname).Replace("@TableName", name); if (!string.IsNullOrWhiteSpace(sql)) { var dt = new DataTable(); using (var dbsql = new ContextBase()) { using (var conn = dbsql.Database.GetDbConnection()) { conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = sql; dt.Load(cmd.ExecuteReader()); } } foreach (DataRow dr in dt.Rows) { var tcmo = listTc.Where(x => x.TableName == dr["TableName"].ToString() && x.ColField == dr["ColField"].ToString()).FirstOrDefault(); tcmo.FormMaxlength = Convert.ToInt32(dr["FormMaxlength"]); if (string.IsNullOrWhiteSpace(tcmo.ColRelation)) { tcmo.ColRelation = "Equal,Contains"; } } } } db.SysTableConfig.UpdateRange(listTc); db.SaveChanges(); vm.Set(ARTag.success); } } return(vm); }
public ActionResultVM LsitReplySave(UserReply mo, UserMessage um) { var vm = new ActionResultVM(); var now = DateTime.Now; if (HttpContext.User.Identity.IsAuthenticated) { mo.Uid = new Func.UserAuthAid(HttpContext).Get().UserId; } else { mo.Uid = 0; } //回复消息 um.UmId = Core.UniqueTo.LongId().ToString(); um.UmTriggerUid = mo.Uid; um.UmType = Func.EnumAid.MessageType.UserWriting.ToString(); um.UmTargetId = mo.UrTargetId; um.UmAction = 2; um.UmStatus = 1; um.UmContent = mo.UrContent; um.UmCreateTime = now; using (var db = new ContextBase()) { //回复内容 mo.UrCreateTime = now; mo.UrStatus = 1; mo.UrTargetPid = 0; mo.UrTargetType = Func.EnumAid.ReplyType.UserWriting.ToString(); db.UserReply.Add(mo); //回填文章最新回复记录 var mow = db.UserWriting.FirstOrDefault(x => x.UwId.ToString() == mo.UrTargetId); if (mow != null) { mow.UwReplyNum += 1; mow.UwLastUid = mo.Uid; um.UmTargetIndex = mow.UwReplyNum; db.UserWriting.Update(mow); } if (um.Uid != um.UmTriggerUid) { db.UserMessage.Add(um); } int num = db.SaveChanges(); vm.Set(num > 0); } return(vm); }
/// <summary> /// 保存一篇文章(管理) /// </summary> /// <param name="mo"></param> /// <returns></returns> public ActionResultVM WriteAdminSave(Domain.UserWriting mo) { var vm = new ActionResultVM(); var uinfo = new Application.UserAuthService(HttpContext).Get(); using (var db = new Data.ContextBase()) { var oldmo = db.UserWriting.FirstOrDefault(x => x.UwId == mo.UwId); if (oldmo != null) { oldmo.UwStatus = mo.UwStatus; oldmo.UwReplyNum = mo.UwReplyNum; oldmo.UwReadNum = mo.UwReadNum; oldmo.UwLaud = mo.UwLaud; oldmo.UwMark = mo.UwMark; oldmo.UwOpen = mo.UwOpen; db.UserWriting.Update(oldmo); int num = db.SaveChanges(); vm.Set(num > 0); } } return(vm); }
/// <summary> /// 保存一条回复(管理) /// </summary> /// <param name="mo"></param> /// <returns></returns> public ActionResultVM ReplyAdminSave(Domain.UserReply mo) { var vm = new ActionResultVM(); var uinfo = new Application.UserAuthService(HttpContext).Get(); using (var db = new Data.ContextBase()) { var oldmo = db.UserReply.FirstOrDefault(x => x.UrId == mo.UrId); if (oldmo != null) { oldmo.UrAnonymousName = mo.UrAnonymousName; oldmo.UrAnonymousMail = mo.UrAnonymousMail; oldmo.UrAnonymousLink = mo.UrAnonymousLink; oldmo.UrStatus = mo.UrStatus; db.UserReply.Update(oldmo); int num = db.SaveChanges(); vm.Set(num > 0); } } return(vm); }
/// <summary> /// 获取Token /// </summary> /// <param name="AppId">分配的应用ID</param> /// <param name="AppKey">分配的应用密钥</param> /// <returns></returns> public static ActionResultVM GetToken(string AppId, string AppKey) { var vm = new ActionResultVM(); try { using var db = new SQLiteConnection(SQLiteConn); db.CreateTable <SysKey>(); var sk = db.Table <SysKey>().FirstOrDefault(x => x.SkAppId == AppId && x.SkAppKey == AppKey); if (sk != null) { sk.SkToken = Core.CalcTo.MD5(Core.UniqueTo.LongId().ToString()); sk.SkTokenExpireTime = DateTime.Now.AddMinutes(GlobalTo.GetValue <int>("Safe:TokenExpired")); int num = db.Update(sk); vm.data = sk; vm.Set(num > 0); } else { vm.Set(ARTag.unauthorized); } } catch (Exception ex) { vm.Set(ex); } return(vm); }
public ActionResultVM SaveConfigTable(string rows, string tablename) { var vm = new ActionResultVM(); JArray ja = JArray.Parse(rows); var listRow = db.SysTableConfig.Where(x => x.TableName == tablename).ToList(); int order = 0; foreach (JToken jt in ja) { string id = jt["Id"].ToString(); var mo = listRow.Where(x => x.Id == id).FirstOrDefault(); mo.ColTitle = jt["ColTitle"].ToStringOrEmpty(); mo.ColAlign = string.IsNullOrWhiteSpace(jt["ColAlign"].ToStringOrEmpty()) ? 1 : Convert.ToInt32(jt["ColAlign"].ToStringOrEmpty()); mo.ColWidth = string.IsNullOrWhiteSpace(jt["ColWidth"].ToStringOrEmpty()) ? 0 : Convert.ToInt32(jt["ColWidth"].ToStringOrEmpty()); mo.ColHide = string.IsNullOrWhiteSpace(jt["ColHide"].ToStringOrEmpty()) ? 0 : Convert.ToInt32(jt["ColHide"].ToStringOrEmpty()); mo.ColFrozen = string.IsNullOrWhiteSpace(jt["ColFrozen"].ToStringOrEmpty()) ? 0 : Convert.ToInt32(jt["ColFrozen"].ToStringOrEmpty()); mo.ColExport = string.IsNullOrWhiteSpace(jt["ColExport"].ToStringOrEmpty()) ? 0 : Convert.ToInt32(jt["ColExport"].ToStringOrEmpty()); mo.ColOrder = order++; } db.SysTableConfig.UpdateRange(listRow); int num = db.SaveChanges(); vm.Set(num > 0); return(vm); }
public ActionResultVM ListUserConn(int a) { var vm = new ActionResultVM(); int wid = Convert.ToInt32(RouteData.Values["id"]?.ToString()); var uinfo = new Func.UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { var uw = db.UserWriting.Find(wid); var uc = db.UserConnection.Where(x => x.Uid == uinfo.UserId && x.UconnTargetId == wid.ToString() && x.UconnAction == a).FirstOrDefault(); if (uc == null) { uc = new UserConnection() { UconnId = Core.UniqueTo.LongId().ToString(), UconnAction = a, UconnCreateTime = DateTime.Now, UconnTargetId = wid.ToString(), UconnTargetType = Func.EnumAid.ConnectionType.UserWriting.ToString(), Uid = uinfo.UserId }; db.UserConnection.Add(uc); if (a == 1) { uw.UwLaud += 1; } if (a == 2) { uw.UwMark += 1; } db.UserWriting.Update(uw); vm.data = "1"; } else { db.UserConnection.Remove(uc); if (a == 1) { uw.UwLaud -= 1; } if (a == 2) { uw.UwMark -= 1; } db.UserWriting.Update(uw); vm.data = "0"; } int num = db.SaveChanges(); vm.Set(num > 0); } return(vm); }
public ActionResultVM SaveConfigForm(string rows, string tablename) { var vm = new ActionResultVM(); JArray ja = JArray.Parse(rows); var listRow = db.SysTableConfig.Where(x => x.TableName == tablename).ToList(); int order = 0; foreach (JToken jt in ja) { string field = jt["field"].ToStringOrEmpty(); var mo = listRow.Where(x => x.ColField == field).FirstOrDefault(); mo.ColTitle = jt["title"].ToStringOrEmpty(); mo.FormSpan = string.IsNullOrWhiteSpace(jt["span"].ToStringOrEmpty()) ? 1 : Convert.ToInt32(jt["span"].ToStringOrEmpty()); mo.FormArea = string.IsNullOrWhiteSpace(jt["area"].ToStringOrEmpty()) ? 0 : Convert.ToInt32(jt["area"].ToStringOrEmpty()); mo.FormOrder = order++; } db.SysTableConfig.UpdateRange(listRow); int num = db.SaveChanges(); vm.Set(num > 0); return(vm); }
public ActionResultVM QueryNoteOne(int id) { var vm = new ActionResultVM(); var uinfo = new Func.UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { var mo = db.Notepad.Find(id); if (mo == null) { vm.Set(ARTag.invalid); } else if (mo.Uid == uinfo.UserId) { vm.Set(ARTag.success); vm.data = mo; } else { vm.Set(ARTag.unauthorized); } } return(vm); }
public ActionResultVM ExecTask() { var vm = new ActionResultVM(); Enum.TryParse(typeof(TaskItem), RouteData.Values["id"]?.ToString(), true, out object ti); switch (ti as TaskItem?) { default: vm.Set(ARTag.invalid); break; case TaskItem.ResetDataBase: { vm = new Application.DataMirrorService().AddForJson(); } break; case TaskItem.ClearTemp: { vm = Application.TaskService.ClearTemp(); } break; } return(vm); }
/// <summary> /// 保存单据 /// </summary> /// <param name="moMain"></param> /// <param name="rows"></param> /// <returns></returns> public ActionResultVM SaveInvoiceForm(TempInvoiceMain moMain, string rows) { var vm = new ActionResultVM(); //明细反序列化为对象 var listDetail = rows.ToEntitys <TempInvoiceDetail>(); //新增,补齐主表信息 var isadd = string.IsNullOrWhiteSpace(moMain.TimId); if (isadd) { moMain.TimId = Guid.NewGuid().ToString(); moMain.TimCreateTime = DateTime.Now; moMain.TimOwnerId = Guid.Empty.ToString(); moMain.TimOwnerName = "系统登录人员"; } if (isadd) { db.TempInvoiceMain.Add(moMain); } else { db.TempInvoiceMain.Update(moMain); //更新时,删除原有明细 var currDetail = db.TempInvoiceDetail.Where(x => x.TimId == moMain.TimId).ToList(); if (currDetail.Count > 0) { db.TempInvoiceDetail.RemoveRange(currDetail); } } //添加明细 if (listDetail.Count > 0) { //初始值 foreach (var item in listDetail) { item.TidId = Guid.NewGuid().ToString(); item.TimId = moMain.TimId; } db.TempInvoiceDetail.AddRange(listDetail); } int num = db.SaveChanges(); vm.Set(num > 0); if (isadd) { vm.data = moMain.TimId; } return(vm); }
public ActionResultVM Index() { var vm = new ActionResultVM(); return(vm); }
public IActionResult Register(Domain.UserInfo mo, string RegisterCode) { var vm = new ActionResultVM(); if (string.IsNullOrWhiteSpace(RegisterCode) || HttpContext.Session.GetString("RegisterCode") != RegisterCode) { vm.Msg = "验证码错误或已过期"; } else if (!(mo.UserName?.Length >= 5 && mo.UserPwd?.Length >= 5)) { vm.Msg = "账号、密码长度至少 5 位数"; } else { mo.UserPwd = Core.CalcTo.MD5(mo.UserPwd); mo.UserCreateTime = DateTime.Now; //邮箱注册 if (Fast.ParsingTo.IsMail(mo.UserName)) { mo.UserMail = mo.UserName; } vm = RegisterUser(mo); } ViewData["UserName"] = mo.UserName; return(View(vm)); }
/// <summary> /// 验证Token /// </summary> /// <param name="token"></param> /// <returns></returns> public static ActionResultVM ValidToken(string token) { var vm = new ActionResultVM(); try { if (string.IsNullOrWhiteSpace(token)) { vm.Set(ARTag.unauthorized); } else { using var db = new SQLiteConnection(SQLiteConn); db.CreateTable <SysKey>(); var sk = db.Table <SysKey>().FirstOrDefault(x => x.SkToken == token); vm.Set(sk?.SkTokenExpireTime > DateTime.Now); } } catch (Exception ex) { vm.Set(ex); } return(vm); }
/// <summary> /// WebHook /// </summary> /// <returns></returns> public ActionResultVM WebHook() { var vm = new ActionResultVM(); try { if (Request.Method == "POST") { using var ms = new MemoryStream(); Request.Body.CopyTo(ms); string postStr = System.Text.Encoding.UTF8.GetString(ms.ToArray()); //new WebHookService(postStr); vm.data = postStr; vm.Set(ARTag.success); } } catch (Exception ex) { vm.Set(ex); ConsoleTo.Log(ex); } return(vm); }
/// <summary> /// 查询 /// </summary> /// <param name="path">路径,传ID时需传 isid=true</param> /// <param name="isid">是ID</param> public static ActionResultVM QueryFile(string path, bool isid = false) { var vm = new ActionResultVM(); try { using var db = new SQLiteConnection(SQLiteConn); FileRecord fr = null; if (isid) { fr = db.Table <FileRecord>().FirstOrDefault(x => x.FrId == path); } else { fr = db.Table <FileRecord>().FirstOrDefault(x => x.FrPath == path); } if (fr == null) { vm.Set(ARTag.lack); } else { vm.Set(ARTag.success); vm.data = fr; } } catch (Exception ex) { vm.Set(ex); } return(vm); }
public ActionResultVM CreateApp(string password) { var vm = new ActionResultVM(); try { if (GlobalTo.GetValue <bool>("Safe:IsDev")) { if (!string.IsNullOrWhiteSpace(password) && password == GlobalTo.GetValue("Safe:CreateAppPassword")) { vm = SQLiteBase.CreateApp(); } else { vm.Set(ARTag.unauthorized); vm.msg = "密码错误"; } } else { vm.Set(ARTag.refuse); } } catch (Exception ex) { vm.Set(ex); ConsoleTo.Log(ex); } return(vm); }
/// <summary> /// 创建App /// </summary> /// <returns></returns> public static ActionResultVM CreateApp(string skName = null, string skRemark = null) { var vm = new ActionResultVM(); try { using var db = new SQLiteConnection(SQLiteConn); db.CreateTable <SysKey>(); var mo = new SysKey() { SkAppId = Core.UniqueTo.LongId().ToString(), SkAppKey = Core.UniqueTo.LongId().ToString() + Core.UniqueTo.LongId().ToString(), SkCreateTime = DateTime.Now, SkName = skName == null ? "默认": skName, SkToken = Core.CalcTo.MD5(Core.UniqueTo.LongId().ToString()), SkTokenExpireTime = DateTime.Now.AddMinutes(GlobalTo.GetValue <int>("Safe:TokenExpired")), SkRemark = skRemark == null ? "系统自动生成": skRemark }; int num = db.Insert(mo); vm.Set(num > 0); vm.data = mo; } catch (Exception ex) { vm.Set(ex); } return(vm); }
public ActionResultVM SaveSysMenu(SysMenu mo, string savetype) { var vm = new ActionResultVM(); if (string.IsNullOrWhiteSpace(mo.SmPid)) { mo.SmPid = Guid.Empty.ToString(); } using (var db = new ContextBase()) { if (savetype == "add") { mo.SmId = Guid.NewGuid().ToString(); db.SysMenu.Add(mo); } else { db.SysMenu.Update(mo); } int num = db.SaveChanges(); vm.Set(num > 0); } //清理缓存 Core.CacheTo.Remove(Func.Common.GlobalCacheKey.SysMenu); return(vm); }
public ActionResultVM SaveSysButton(SysButton mo, string savetype) { var vm = new ActionResultVM(); if (string.IsNullOrWhiteSpace(mo.SbPid)) { mo.SbPid = Guid.Empty.ToString(); } if (mo.SbBtnHide == null) { mo.SbBtnHide = -1; } if (savetype == "add") { mo.SbId = Guid.NewGuid().ToString(); db.SysButton.Add(mo); } else { db.SysButton.Update(mo); } int num = db.SaveChanges(); vm.Set(num > 0); //清理缓存 Core.CacheTo.Remove(Application.CommonService.GlobalCacheKey.SysButton); return(vm); }