コード例 #1
0
ファイル: ExpandsClass.cs プロジェクト: iJzFan/backup
        /// <summary>
        /// 运行自定义函数
        /// 引用下列的命名空间
        ///  1. using System.Data.SqlClient;
        ///  2. using Ass;
        /// </summary>
        /// <param name="funcName">函数名</param>
        /// <param name="sqlParms">参数</param>
        /// <returns></returns>
        public static object MySqlFunction(this CHIS.DbContext.CHISEntitiesSqlServer db, string funcName,
                                           params System.Data.SqlClient.SqlParameter[] sqlParms)
        {
            string connectionString = new Code.Utility.DataBaseHelper().ConnectionString;

            using (var conn = new System.Data.SqlClient.SqlConnection(connectionString))
            {
                string strSql = funcName; //自定SQL函数
                var    cmd    = new System.Data.SqlClient.SqlCommand(strSql, conn);
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                if (sqlParms != null)
                {
                    foreach (var p in sqlParms)
                    {
                        cmd.Parameters.Add(p);
                    }
                }
                System.Data.SqlClient.SqlParameter rtnp = new System.Data.SqlClient.SqlParameter();
                rtnp.ParameterName = "@Return";
                rtnp.Direction     = System.Data.ParameterDirection.ReturnValue;
                cmd.Parameters.Add(rtnp);

                conn.Open();
                object o = cmd.ExecuteScalar();

                return(rtnp.Value);
            }
        }
コード例 #2
0
ファイル: Global.cs プロジェクト: iJzFan/backup
        public static async Task _Initial_FuncAccess()
        {
            var db = new Code.Utility.DataBaseHelper().GetMainDbContext();

            _db_FuncAccess = null;
            _db_FuncAccess = await db.CHIS_Sys_FuncAccess.AsNoTracking().ToListAsync();
        }
コード例 #3
0
ファイル: Global.cs プロジェクト: iJzFan/backup
        public static async Task _Initial_ChinaArea()
        {
            var db = new Code.Utility.DataBaseHelper().GetMainDbContext();

            _db_ChinaArea = null;
            _db_ChinaArea = await db.SYS_ChinaArea.AsNoTracking().ToListAsync();
        }
コード例 #4
0
ファイル: Global.cs プロジェクト: iJzFan/backup
        public static async Task _Initial_Dict()
        {
            var db = new Code.Utility.DataBaseHelper().GetMainDbContext();

            _db_dictDetail = null;
            _db_dictDetail = await db.vwCHIS_Code_DictDetail.AsNoTracking().ToListAsync();
        }
コード例 #5
0
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            bool bPass = false;
            var  model = Global.db_FuncAccess.FirstOrDefault(m => m.AKeyId == FuncAccessKey);

            if (model != null)
            {
                var    doctorId  = int.Parse(context.HttpContext.User.FindFirst("DoctorId").Value);
                var    stationId = int.Parse(context.HttpContext.User.FindFirst("StationId").Value);
                string sql       = string.Format("exec sp_Sys_GetFuncDetailAccess '{0}','{1}',{2},{3}", model.ActionKey, model.FuncName, doctorId, stationId);
                var    db        = new Code.Utility.DataBaseHelper().GetMainDbContext();
                CHIS.Models.DataModel.typevalue rtn = db.SqlQuery <CHIS.Models.DataModel.typevalue>(sql).First();
                if (model.ResultType == "bool")
                {
                    bPass = new Ass.ObjReturn(rtn.value, rtn.type).ToBool();
                    //通过则不予理睬
                }
            }

            //未通过返回页面
            if (!bPass)
            {
                context.Result = new RedirectResult("/Home/Unaccess");        //转到未被授权的页面
            }
        }
コード例 #6
0
ファイル: ExpandClass.cs プロジェクト: iJzFan/backup
        /// <summary>
        /// 获取工作站的当日接诊量
        /// </summary>
        public static Models.StatisticsModels.TreatBasicSummary StationTodayTreatSummary(this CHIS.Models.vwCHIS_Code_WorkStation model, int doctorId)
        {
            var    db  = new Code.Utility.DataBaseHelper().GetMainDbContext();
            string sql = string.Format(@"
  select tt.name,sum(tt.waiting) waiting,sum(tt.treating) treating,sum(tt.treated) treated from (
   select 'ThisToday' name,0 waiting,0 treating,0 treated
   union
   select a as name,waiting,treating,treated from ( 
     select 'ThisToday' a,TreatStatus b ,count(1) n from vwCHIS_Register
     where StationId={0} and EmployeeID={1} and RegisterDate >= '{2}' and RegisterDate< '{3}' 
     group by TreatStatus) t pivot(max(n) for b in(waiting,treating,treated)) m
  ) tt group by tt.name
", model.StationID, doctorId, DateTime.Today.ToDateString(), DateTime.Today.AddDays(1).ToDateString());
            var    rlt = db.SqlQuery <Models.StatisticsModels.TreatBasicSummary>(sql).FirstOrDefault();

            return(rlt);
        }
コード例 #7
0
ファイル: ExpandsClass.cs プロジェクト: iJzFan/backup
        /// <summary>
        /// 执行存储过程返回表单
        /// </summary>
        public static IList <T> SqlQuery <T>(this CHIS.DbContext.CHISEntitiesSqlServer db, string sql, params object[] parameters)
            where T : new()
        {
            //注意:不要对GetDbConnection获取到的conn进行using或者调用Dispose,否则DbContext后续不能再进行使用了,会抛异常
            string connectionString = new Code.Utility.DataBaseHelper().ConnectionString;

            using (var conn = new System.Data.SqlClient.SqlConnection(connectionString))
            {
                conn.Open();
                using (var command = conn.CreateCommand())
                {
                    command.CommandText = sql;
                    command.Parameters.AddRange(parameters);
                    var propts = typeof(T).GetProperties();
                    var rtnList = new List <T>();
                    T   model; object val;
                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            model = new T();
                            foreach (var l in propts)
                            {
                                try
                                {
                                    val = reader[l.Name];
                                    if (val == DBNull.Value)
                                    {
                                        l.SetValue(model, null);
                                    }
                                    else
                                    {
                                        l.SetValue(model, val);
                                    }
                                }
                                catch { }
                            }
                            rtnList.Add(model);
                        }
                    }
                    return(rtnList);
                }
            }
        }