Ejemplo n.º 1
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <returns></returns>
        public string SaveConfigForm(string rows, string tablename)
        {
            JArray ja = JArray.Parse(rows);

            var ru      = new RepositoryUse();
            var listRow = ru.SysTableConfigRepository.IQueryable(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++;
            }

            int num = ru.SysTableConfigRepository.Update(listRow);

            ru.Dispose();

            return(num >= 0 ? "success" : "fail");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <returns></returns>
        public string SaveConfigTable(string rows, string tablename)
        {
            JArray ja = JArray.Parse(rows);

            var ru      = new RepositoryUse();
            var listRow = ru.SysTableConfigRepository.IQueryable(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++;
            }

            int num = ru.SysTableConfigRepository.Update(listRow);

            ru.Dispose();

            return(num >= 0 ? "success" : "fail");
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="mo"></param>
        /// <returns></returns>
        public string SaveSysUser(SysUser mo, string savetype, string OldUserPwd)
        {
            int num = 0;

            using (var ru = new RepositoryUse())
            {
                if (savetype == "add")
                {
                    if (ru.SysUserRepository.IQueryable(x => x.UserName == mo.UserName).Count() > 0)
                    {
                        return("exists");
                    }
                    mo.CreateTime = DateTime.Now;
                    mo.UserPwd    = Core.CalcTo.MD5(mo.UserPwd);
                    num           = ru.SysUserRepository.Insert(mo);
                }
                else
                {
                    if (ru.SysUserRepository.IQueryable(x => x.UserName == mo.UserName && x.ID != mo.ID).Count() > 0)
                    {
                        return("exists");
                    }
                    if (mo.UserPwd != OldUserPwd)
                    {
                        mo.UserPwd = Core.CalcTo.MD5(mo.UserPwd);
                    }
                    num = ru.SysUserRepository.Update(mo);
                }
            }
            return(num > 0 ? "success" : "fail");
        }
Ejemplo n.º 4
0
        public string SQLServerTableInfoBuilder(string names, int cover)
        {
            var ListTableName = names.Split(',').ToList();

            if (cover == 1)
            {
                using (var ru = new RepositoryUse())
                {
                    ru.SysTableConfigRepository.Delete(x => ListTableName.Contains(x.TableName));
                }
            }

            string sql  = string.Empty;
            string path = Startup.HostingEnvironment.WebRootPath + "\\script\\GetTableInfo.txt";

            using (StreamReader sr = new StreamReader(path))
            {
                sql = sr.ReadToEnd();
            }

            foreach (var item in ListTableName)
            {
                SqlParameter[] param =
                {
                    new SqlParameter("@TableName", SqlDbType.VarChar, 50)
                };
                param[0].Value = item.ToLower();
                var dt = SQLServerDB.GetDataTable(sql, param);
                SQLServerDB.SqlBulkCopyByDataTable("SysTableConfig", dt);
            }

            return("success");
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 删除 表配置
        /// </summary>
        /// <returns></returns>
        public string DelSysTableConfig(string id)
        {
            int num = 0;

            using (var ru = new RepositoryUse())
            {
                num = ru.SysTableConfigRepository.Delete(x => x.ID == id);
            }
            return(num > 0 ? "success" : "fail");
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public string QueryConfigTable(QueryDataVM.GetParams param)
        {
            var or = new QueryDataVM.OutputResult();

            using (var ru = new RepositoryUse())
            {
                var query = from a in ru.Context.Set <SysTableConfig>()
                            select a;
                Func.Common.QueryJoin(query, param, ru, ref or);
            }
            return(or.ToJson());
        }
Ejemplo n.º 7
0
        public IActionResult SQLServerReset()
        {
            string result = string.Empty;
            var    nowdt  = DateTime.Now;
            string cmd    = "Sqlcmd ";

            using (var ru = new RepositoryUse())
            {
                var    dbconn   = ru.Context.Database.GetDbConnection();
                var    listConn = dbconn.ConnectionString.Split(';').ToList();
                string uid      = string.Empty;
                string pwd      = string.Empty;
                foreach (var kv in listConn)
                {
                    var    listkv = kv.Split('=').ToList();
                    string key    = listkv.FirstOrDefault().ToLower();

                    if ("uid,user id".Split(',').ToList().Contains(key))
                    {
                        uid = listkv.LastOrDefault();
                    }
                    if ("pwd,password".Split(',').ToList().Contains(key))
                    {
                        pwd = listkv.LastOrDefault();
                    }
                }

                cmd += "-S " + dbconn.DataSource + " -U " + uid + " -P " + pwd + " -d " + dbconn.Database;
            }

            cmd += " -i " + Startup.HostingEnvironment.WebRootPath + "\\script\\";

            result += "--------- Delete all the tables" + Environment.NewLine;

            string cmdout = Core.CmdTo.Run(cmd + "DataDropTable.txt");

            result += cmdout.Replace("Sqlcmd ", "^").Split('^').ToList().LastOrDefault();
            result += Environment.NewLine;

            result += "--------- Init tables" + Environment.NewLine;

            cmdout  = Core.CmdTo.Run(cmd + "DataInit.txt");
            result += cmdout.Replace("Sqlcmd ", "^").Split('^').ToList().LastOrDefault();

            result = result.Insert(0, "time consuming :" + (DateTime.Now - nowdt).Seconds + " S" + Environment.NewLine);

            return(Content(result));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <returns></returns>
        public string DelSysRole(string id)
        {
            int num = 0;

            using (var ru = new RepositoryUse())
            {
                if (ru.SysUserRepository.IQueryable(x => x.RoleID == id).Count() > 0)
                {
                    return("exists");
                }
                else
                {
                    num = ru.SysRoleRepository.Delete(x => x.ID == id);
                }
            }
            return(num > 0 ? "success" : "fail");
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 保存 表配置
        /// </summary>
        /// <param name="col"></param>
        /// <returns></returns>
        public string SaveSysTableConfig(SysTableConfig mo, string savetype)
        {
            int num = 0;

            using (var ru = new RepositoryUse())
            {
                if (savetype == "add")
                {
                    num = ru.SysTableConfigRepository.Insert(mo);
                }
                else
                {
                    num = ru.SysTableConfigRepository.Update(mo);
                }
            }
            return(num > 0 ? "success" : "fail");
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="mo"></param>
        /// <returns></returns>
        public string SaveSysRole(SysRole mo, string savetype)
        {
            int num = 0;

            using (var ru = new RepositoryUse())
            {
                if (savetype == "add")
                {
                    mo.CreateTime = DateTime.Now;
                    num           = ru.SysRoleRepository.Insert(mo);
                }
                else
                {
                    num = ru.SysRoleRepository.Update(mo);
                }
            }
            return(num > 0 ? "success" : "fail");
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 查询角色
        /// </summary>
        public string QueryRole()
        {
            string result = "[]";

            using (var ru = new RepositoryUse())
            {
                var query = from a in ru.Context.Set <SysRole>()
                            where a.Status == 1
                            orderby a.CreateTime
                            select new
                {
                    value = a.ID,
                    text  = a.Name
                };
                var list = query.ToList();
                result = list.ToJson();
            }
            return(result);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 模态框表单组件
        /// </summary>
        /// <param name="tablename">列配置表名</param>
        /// <param name="paneltitle">面板标题(有两个区域或以上时,英文逗号分隔)</param>
        /// <param name="modalsize">模态框大小 1小 2中 3大</param>
        /// <param name="index">表单ID后缀</param>
        /// <returns></returns>
        public IViewComponentResult Invoke(string tablename, string paneltitle = "", int modalsize = 3, int index = 1)
        {
            var ru = new RepositoryUse();

            //查询表对应的表单,排序,按区域分组
            var listCol = ru.SysTableConfigRepository.IQueryable(x => x.TableName == tablename).OrderBy(x => x.FormOrder).ToList();

            var groupCol = listCol.GroupBy(x => x.FormArea.Value).ToList();

            ru.Dispose();

            //表名
            TempData["tablename"] = tablename;
            //ID索引
            TempData["index"] = index;
            //模态框大小
            TempData["modalsize"] = modalsize == 3 ? "modal-lg" : modalsize == 1 ? "modal-sm" : "";
            //多面板标题
            TempData["paneltitle"] = paneltitle.Split(',').ToList();

            return(View(groupCol));
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 修改为新的密码
        /// </summary>
        /// <param name="oldpwd">现有</param>
        /// <param name="newpwd1">新</param>
        /// <param name="newpwd2"></param>
        /// <returns></returns>
        public IActionResult UpdateNewPassword(string oldpwd, string newpwd1, string newpwd2)
        {
            string result = "fail";

            if (string.IsNullOrWhiteSpace(oldpwd) || string.IsNullOrWhiteSpace(newpwd1))
            {
                result = "密码不能为空";
            }
            else if (newpwd1.Length < 5)
            {
                result = "密码长度至少 5 位";
            }
            else if (newpwd1 != newpwd2)
            {
                result = "两次输入的密码不一致";
            }
            else
            {
                var userinfo = Func.Common.GetLoginUserInfo(HttpContext);

                using (var ru = new RepositoryUse())
                {
                    var mo = ru.SysUserRepository.FindEntity(userinfo.UserId);
                    if (mo != null && mo.UserPwd == Core.CalcTo.MD5(oldpwd))
                    {
                        mo.UserPwd = Core.CalcTo.MD5(newpwd1);
                        ru.Save();
                        result = "success";
                    }
                    else
                    {
                        result = "现有密码错误";
                    }
                }
            }

            return(Content(result));
        }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            Singleton singleton = new Singleton();
            singleton.ConsoleWriteLineString("Singleton DesoignPatterns console writeline.");

            IFactoryMethod ingrediens = FactoryMethod.CookScrambledEggs(IngiedientEnum.Ham);
            ingrediens.Ingredient();
            IFactoryMethod ingrediens2 = FactoryMethod.CookScrambledEggs(IngiedientEnum.Onion);
            ingrediens2.Ingredient();
            IFactoryMethod ingrediens3 = FactoryMethod.CookScrambledEggs(IngiedientEnum.Eggs);
            ingrediens3.Ingredient();
            IFactoryMethod ingrediens4 = FactoryMethod.CookScrambledEggs(IngiedientEnum.Salt);
            ingrediens4.Ingredient();

            //Builder and repository(abstract class instead of interface )
            Client mClient = new Client();
            mClient.CreateProduct();

            //Observer
            ConcreteItem concreteItem = new ConcreteItem();

            ConcreateObserver cObserver1=new ConcreateObserver("Item 1");
            ConcreateObserver cObserver2=new ConcreateObserver("Item 2");

            concreteItem.Attach(cObserver1);
            concreteItem.Attach(cObserver2);
            concreteItem.ChangeItemNumber(2);
            concreteItem.DeAttach(cObserver2);
            concreteItem.ChangeItemNumber(5);

            //Repository with interface

            var repository = new RepositoryUse();
            repository.Use();

            Console.ReadKey();
        }
Ejemplo n.º 15
0
        public string SQLServerTableInfo()
        {
            string result  = string.Empty;
            var    listAll = new List <string>();
            var    listHas = new List <string>();

            using (var ru = new RepositoryUse())
            {
                var queryHas = from a in ru.Context.Set <SysTableConfig>()
                               group a by a.TableName into g
                               select g.Key;
                listHas = queryHas.ToList();

                var dbname = ru.Context.Database.GetDbConnection().Database;
                var dt     = SQLServerDB.GetDataTable($"SELECT name FROM " + dbname + "..SysObjects Where XType = 'U' ORDER BY Name");
                listAll = dt.Select().Select(x => x[0].ToString()).ToList();
            }

            return(new
            {
                listAll,
                listHas
            }.ToJson());
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 登录验证
        /// </summary>
        /// <param name="mo"></param>
        /// <param name="captcha">验证码</param>
        /// <param name="remember">1记住登录状态</param>
        /// <returns></returns>
        public async Task <AccountValidationVM> LoginValidation(SysUser mo, string captcha, int remember)
        {
            var result = new AccountValidationVM();

            if (string.IsNullOrWhiteSpace(captcha) || HttpContext.Session.GetString("captcha").ToLower() != captcha.ToLower())
            {
                result.code    = 104;
                result.message = "验证码错误或已过期";
                return(result);
            }

            var outMo = new SysUser();

            if (string.IsNullOrWhiteSpace(mo.UserName) || string.IsNullOrWhiteSpace(mo.UserPwd))
            {
                result.code    = 101;
                result.message = "用户名或密码不能为空";
                return(result);
            }
            else
            {
                using (var ru = new RepositoryUse())
                {
                    outMo = ru.SysUserRepository.IQueryable(x => x.UserName == mo.UserName && x.UserPwd == Core.CalcTo.MD5(mo.UserPwd, 32)).FirstOrDefault();
                }
            }

            if (outMo == null || string.IsNullOrWhiteSpace(outMo.ID))
            {
                result.code    = 102;
                result.message = "用户名或密码错误";
                return(result);
            }

            if (outMo.Status != 1)
            {
                result.code    = 103;
                result.message = "用户已被禁止登录";
                return(result);
            }

            try
            {
                #region 授权访问信息

                //登录信息
                var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);
                identity.AddClaim(new Claim(ClaimTypes.Sid, outMo.ID));
                identity.AddClaim(new Claim(ClaimTypes.Name, outMo.UserName));
                identity.AddClaim(new Claim(ClaimTypes.GivenName, outMo.Nickname ?? ""));
                identity.AddClaim(new Claim(ClaimTypes.Role, outMo.RoleID));
                //取值
                //HttpContext.User.FindFirstValue(ClaimTypes.Sid);

                //配置
                var authParam = new AuthenticationProperties();
                if (remember == 1)
                {
                    authParam.IsPersistent = true;
                    authParam.ExpiresUtc   = DateTime.Now.AddDays(10);
                }

                //写入
                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity), authParam);

                result.code    = 100;
                result.message = "登录成功";
                result.url     = "/";
                return(result);

                #endregion
            }
            catch (Exception ex)
            {
                result.code    = 105;
                result.message = "处理登录请求出错(" + ex.Message + ")";
                return(result);
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 公共导出
        /// 默认查询所有数据 再根据表配置保留要导出的列
        ///
        /// </summary>
        public void Export(QueryDataVM.GetParams param)
        {
            if (Func.Common.DicTable.ContainsKey(param.uri))
            {
                //表名
                param.tableName = Func.Common.DicTable[param.uri];

                //导出文件名
                string filename = "导出表格";

                //生成excel的临时文件目录
                string path = Startup.HostingEnvironment.WebRootPath + "\\temp\\";

                //存放导出的数据
                var dt = new DataTable();

                //查询导出的数据
                string sql = ExportSql(param.tableName.ToLower());
                dt = SQLServerDB.GetDataTable(sql);

                #region 表配置处理(列排序、列改名、剔除不要的列)
                using (var ru = new RepositoryUse())
                {
                    var configquery = from a in ru.Context.Set <Domain.SysTableConfig>()
                                      where a.TableName == param.tableName && a.ColHide == 0 && a.ColExport == 1
                                      orderby(a.ColFrozen == null ? 0 : a.ColFrozen) descending, a.ColOrder ascending
                        select new
                    {
                        a.ColField,
                        a.ColTitle
                    };
                    //配置信息
                    var configlist = configquery.ToList();

                    var listcol = configlist.Select(x => x.ColField.ToLower()).ToList();
                    //需要删除的列
                    var listcolRemove = new List <string>();
                    foreach (DataColumn dc in dt.Columns)
                    {
                        if (!listcol.Contains(dc.ColumnName.ToLower()))
                        {
                            listcolRemove.Add(dc.ColumnName);
                        }
                    }
                    //删除列
                    foreach (var item in listcolRemove)
                    {
                        dt.Columns.Remove(item);
                    }

                    //列排序、重命名
                    for (int i = 0; i < configlist.Count; i++)
                    {
                        var item = configlist[i];
                        if (dt.Columns.Contains(item.ColField))
                        {
                            var dc = dt.Columns[item.ColField];
                            //列排序
                            dc.SetOrdinal(i);

                            //重命名列
                            int    index  = 1;
                            string newcol = item.ColTitle;
                            while (dt.Columns.Contains(newcol))
                            {
                                newcol = item.ColTitle + index.ToString();
                                index++;
                            }
                            dc.ColumnName = newcol;
                        }
                    }
                }
                #endregion

                #region 生成Excel并输出流
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                filename += DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                if (Core.NPOITo.DataTableToExcel(dt, path + filename))
                {
                    new Core.DownTo(Response).Stream(path, filename);
                }
                #endregion
            }
        }