Beispiel #1
0
        /// <summary>
        /// 构造函数
        /// </summary>

        public WorkFlowApiController()
        {
            //获取AppInfo值 头部信息记录
            #region 设置当前线程数据库
            var base64EncodedBytes = Convert.FromBase64String(HttpContext.Current.Request.Headers.GetValues("AppInfo").First());
            var jsonText           = Encoding.UTF8.GetString(base64EncodedBytes);
            var AppInfo            = JsonConvert.DeserializeObject <ApiControllerBase.Models.AppInfoBase>(jsonText);

            if (AppInfo != null)
            {
                DBConnectionStringBuilder dbbuilder = new DBConnectionStringBuilder();
                string result, userConn;
                var    pubConn = dbbuilder.GetMainConnStringElement(0, out result, false);
                string defaultConn = dbbuilder.GetDefaultConnString();

                if (AppInfo.DbName.ToLower() == "ngsoft")
                {
                    userConn = pubConn;
                }
                else
                {
                    userConn = string.IsNullOrWhiteSpace(AppInfo.DbName)
                        ? defaultConn
                        : dbbuilder.GetAccConnstringElement(0, AppInfo.DbName, pubConn,
                                                            out result);
                }

                //设置当前数据库连接信息
                ConnectionInfoService.SetCallContextConnectString(userConn);
                MultiDelegatingDbProvider.CurrentDbProviderName = AppInfo.DbName;
            }
            #endregion

            service = new WorkFlowServiceProxy();
        }
        //初始化数据库
        private void InitDb()
        {
            //数据库连接方式取值方法一:固定链接串
            //string connectionString=@"ConnectType=SqlClient;Server=10.0.16.168\upty;Database=NG0054;User ID=sa;Password=123456";
            //string connectionString = "ConnectType=SqlClient;Server=10.0.18.21;Database=NG0008;User ID=sa;Password="******"ConnectType=SqlClient;Server=10.0.17.118;Database=NG0004;User ID=sa;Password=psoft";

            //二:从web.config取值
            //string connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();

            //三:从config目录下文件DataBases.xml中取值
            DBConnectionStringBuilder dbbuilder = new DBConnectionStringBuilder();
            //var userConn = dbbuilder.GetDefaultConnString(); //主帐套连接串

            var result   = string.Empty;
            var dbname   = dbbuilder.DefaultDB;
            var pubConn  = dbbuilder.GetMainConnStringElement(0, out result, false);          //获取主数据库连接串 NGSoft
            var userConn = dbbuilder.GetAccConnstringElement(0, dbname, pubConn, out result); //获取默认数据库连接串 NG0001

            ConnectionInfoService.SetSessionConnectString(userConn);

            I6WebAppInfo appInfo = new I6WebAppInfo();

            appInfo.PubConnectString  = pubConn;
            appInfo.UserConnectString = userConn;
            appInfo.LoginID           = "xyp";
            appInfo.UserName          = "******";
            appInfo.OCode             = "001";
            appInfo.UCode             = dbname.Substring(2);
            appInfo.DbName            = dbname;
            //appInfo.UserID = 2;
            //appInfo.OrgID = 1;

            string uid = DbHelper.GetString(userConn, string.Format("select phid from fg3_user where userno='{0}'", appInfo.LoginID));
            string oid = DbHelper.GetString(userConn, string.Format("select phid from fg_orglist where ocode='{0}'", appInfo.OCode));

            if (!string.IsNullOrWhiteSpace(uid))
            {
                appInfo.UserID = Convert.ToInt64(uid);
            }
            else
            {
                appInfo.UserID = 1;
            }

            if (!string.IsNullOrWhiteSpace(oid))
            {
                appInfo.OrgID = Convert.ToInt64(oid);
            }
            else
            {
                appInfo.OrgID = 1;
            }

            System.Web.HttpContext.Current.Session["NGWebAppInfo"] = appInfo;
        }
Beispiel #3
0
        /// <summary>
        /// 解析数据库连接串
        /// </summary>
        /// <param name="conStr"></param>
        /// <returns></returns>
        public static string GetDatabaseByConStr(string conStr)
        {
            if (string.IsNullOrEmpty(conStr))
            {
                conStr = ConnectionInfoService.GetSessionConnectString();
            }
            string dataBase = dataBase = NG.NGKeyValueUtility.GetValue(conStr, "Database", "Initial Catalog");

            if (string.IsNullOrEmpty(dataBase) || dataBase.Length < 1)
            {
                dataBase = NG.NGKeyValueUtility.GetValue(conStr, "User ID");
            }
            return(dataBase);
        }
Beispiel #4
0
        private string WebCheck(out string msg, out bool loginflag, string svrName, string database, string logid, string pwd, string isOnlineCheck = "")
        {
            var appInfo  = new I6WebAppInfo();
            var userConn = proxy.WebCheck(out msg, out loginflag, svrName, database, logid, pwd, appInfo, isOnlineCheck);

            if (!string.IsNullOrEmpty(userConn))
            {
                if (msg == "UserNoHaveOrg")
                {
                    System.Web.HttpContext.Current.Session[WebNGWebAppInfo] = appInfo;
                    SimulateWebLogin(appInfo.UCode.Replace("NG", ""), appInfo.OCode, appInfo.LoginID, appInfo);

                    string guid = string.Empty;
                    if (appInfo.UserType != UserType.System)
                    {
                        if (!proxy.SetLoginUsers("", ref guid, ref msg))//注册在线用户
                        {
                            loginflag = false;
                        }
                    }
                    else
                    {
                        guid = Guid.NewGuid().ToString();
                    }
                    System.Web.HttpContext.Current.Session[LoginMark] = guid;
                }
                else if (string.IsNullOrEmpty(msg))
                {
                    System.Web.HttpContext.Current.Session[UPAppInfoNameInSession] = appInfo;
                    System.Web.HttpContext.Current.Session[WebNGWebAppInfo]        = appInfo;
                    ConnectionInfoService.SetSessionConnectString(userConn);//初始化2.0的dbhelper
                    SimulateWebLogin(appInfo.UCode.Replace("NG", ""), appInfo.OCode, appInfo.LoginID, appInfo);

                    string guid = string.Empty;
                    if (appInfo.UserType != UserType.System)
                    {
                        if (!proxy.SetLoginUsers("", ref guid, ref msg))//注册在线用户
                        {
                            loginflag = false;
                        }
                    }
                    else
                    {
                        guid = Guid.NewGuid().ToString();
                    }
                    System.Web.HttpContext.Current.Session[LoginMark] = guid;
                }
            }
            return(userConn);
        }
Beispiel #5
0
        public static bool IsOracleDB()
        {
            string callStr = ConnectionInfoService.GetCallContextConnectString();

            if (string.IsNullOrEmpty(callStr) || callStr == DbHelper.ConnectString)
            {
                DbHelper.Open();
            }
            else
            {
                DbHelper.Open(callStr);
            }

            var res = DbHelper.Vendor == DbVendor.Oracle || DbHelper.Vendor == DbVendor.Oracle11 ||
                      DbHelper.Vendor == DbVendor.Oracle10 || DbHelper.Vendor == DbVendor.Oracle9;

            return(res);
        }
Beispiel #6
0
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            //获取AppInfo值 头部信息记录
            var base64EncodedBytes = Convert.FromBase64String(HttpContext.Current.Request.Headers.GetValues("AppInfo").First());
            var jsonText           = Encoding.UTF8.GetString(base64EncodedBytes);
            var AppInfo            = JsonConvert.DeserializeObject <AppInfoBase>(jsonText);

            if (AppInfo != null)
            {
                string curConnect = DbHelper.ConnectString;
                if (curConnect.IndexOf(AppInfo.DbName, StringComparison.CurrentCultureIgnoreCase) > 0)
                {
                    //连接串包含了当前数据库
                }
                else
                {
                    DBConnectionStringBuilder dbbuilder = new DBConnectionStringBuilder();
                    string result, userConn;
                    var    pubConn = dbbuilder.GetMainConnStringElement(0, out result, false);
                    string defaultConn = dbbuilder.GetDefaultConnString();

                    if (AppInfo.DbName.ToLower() == "ngsoft")
                    {
                        userConn = pubConn;
                    }
                    else
                    {
                        userConn = string.IsNullOrWhiteSpace(AppInfo.DbName)
                            ? defaultConn
                            : dbbuilder.GetAccConnstringElement(0, AppInfo.DbName, pubConn,
                                                                out result);
                    }

                    //设置当前数据库连接信息
                    ConnectionInfoService.SetCallContextConnectString(userConn);
                    MultiDelegatingDbProvider.CurrentDbProviderName = AppInfo.DbName;
                }
            }

            base.OnActionExecuting(actionContext);
        }
Beispiel #7
0
        public static void MyClassInitialize(TestContext testContext)
        {
            HttpSimulator hs = new HttpSimulator("/", @"E:\Enterprise\Enterprise3\Enterprise3.Test\Enterprise3.NHORM.Test");

            hs.SimulateRequest();

            I6WebAppInfo appInfo = new I6WebAppInfo
            {
                UserType          = UserType.OrgUser,
                PubConnectString  = ConfigHelper.GetString("PubConnectString"),
                UserConnectString = ConfigHelper.GetString("UserConnectString"),
                LoginID           = "007",
                UserName          = "******",
                OCode             = "001",
                OrgName           = "001组织",
                UCode             = "NG0003" //Northwind
            };

            //MockHttpContext.Init();

            System.Web.HttpContext.Current.Session["NGWebAppInfo"] = appInfo;
            ConnectionInfoService.SetSessionConnectString(ConfigHelper.GetString("UserConnectString"));
        }
Beispiel #8
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="requestContext">请求上下文</param>
        protected override void Initialize(System.Web.Routing.RequestContext requestContext)
        {
            var isSso = System.Web.HttpContext.Current.Request.Params["issso"] == null ? "" : System.Web.HttpContext.Current.Request.Params["issso"].ToString();

            if (isSso == "1")
            {
                var logId   = System.Web.HttpContext.Current.Request.Params["logno"] == null ? "" : System.Web.HttpContext.Current.Request.Params["logno"].ToString();
                var logName = System.Web.HttpContext.Current.Request.Params["logname"] == null ? "" : System.Web.HttpContext.Current.Request.Params["logname"].ToString();
                var oCode   = System.Web.HttpContext.Current.Request.Params["ocode"] == null ? "" : System.Web.HttpContext.Current.Request.Params["ocode"].ToString();
                var uCode   = System.Web.HttpContext.Current.Request.Params["ucode"] == null ? "" : System.Web.HttpContext.Current.Request.Params["ucode"].ToString();

                //comment by ljy 2018.01.17 特变要求预览能跟正式发布单据一样操作
                //ViewBag.IsSso = "true";
                ViewBag.IsSso = "false";

                try
                {
                    //设置NG3的i6WebInfoBase对象
                    var dbbuilder = new DBConnectionStringBuilder();
                    var dbName    = string.Empty;

                    //没有传帐套号过来
                    if (string.IsNullOrWhiteSpace(uCode))
                    {
                        dbName = dbbuilder.DefaultDB;  //如NG0001
                        uCode  = dbName.Substring(2);  //如0001
                    }
                    else
                    {
                        dbName = "NG" + uCode;
                    }

                    var result   = string.Empty;
                    var pubConn  = dbbuilder.GetMainConnStringElement(0, out result, false);          //获取主数据库连接串 NGSoft
                    var userConn = dbbuilder.GetAccConnstringElement(0, dbName, pubConn, out result); //获取默认数据库连接串 NG0001

                    var i6AppInfo = new I6WebAppInfo()
                    {
                        UserType          = UserType.OrgUser,
                        PubConnectString  = pubConn,
                        UserConnectString = userConn,
                        LoginID           = logId,
                        UserName          = logName,
                        OCode             = oCode,
                        UCode             = uCode,
                        DbName            = dbName,
                        UserID            = Convert.ToInt64(DbHelper.GetString(userConn, string.Format("select phid from fg3_user where userno='{0}'", logId))),
                        OrgID             = Convert.ToInt64(DbHelper.GetString(userConn, string.Format("select phid from fg_orglist where ocode='{0}'", oCode)))
                    };

                    System.Web.HttpContext.Current.Session["NGWebAppInfo"] = i6AppInfo;
                    ConnectionInfoService.SetSessionConnectString(i6AppInfo.UserConnectString);
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message); //应该加入日志,设置i6WebAppInfo异常。
                }
            }

            base.Initialize(requestContext);

            //调老丰AFCommonController的InitialAF(),里面含WorkFlowHandling()
            string dbnameStr = NG3.AppInfoBase.DbName;

            if (string.IsNullOrWhiteSpace(dbnameStr))
            {
                dbnameStr = base.NGPreCompileHandling();
            }
            base.InitialAF(dbnameStr);
        }
        /// <summary>
        /// 获取所有审批种类对应的审批单据的总数量
        /// </summary>
        /// <returns>返回Json串</returns>
        public string GetRecordListNum()
        {
            long   Uid   = Convert.ToInt64(System.Web.HttpContext.Current.Request.Params["Uid"]);
            long   Orgid = Convert.ToInt64(System.Web.HttpContext.Current.Request.Params["Orgid"]);
            string Year  = System.Web.HttpContext.Current.Request.Params["Year"];

            if (Uid == 0)
            {
                return(DCHelper.ErrorMessage("用户id为空!"));
            }
            if (Orgid == 0)
            {
                return(DCHelper.ErrorMessage("组织id为空!"));
            }
            if (string.IsNullOrEmpty(Year))
            {
                return(DCHelper.ErrorMessage("年度为空!"));
            }

            //设置当前数据库连接信息
            ConnectionInfoService.SetCallContextConnectString(NG3.AppInfoBase.UserConnectString);
            MultiDelegatingDbProvider.CurrentDbProviderName = NG3.AppInfoBase.DbName;

            BillRequestModel billRequest = new BillRequestModel();

            billRequest.Uid   = Uid;
            billRequest.Orgid = Orgid;
            billRequest.Year  = Year;
            var YNum = 0; //已审数量
            var NNum = 0; //待审数量

            try
            {
                //获取审批所有类型
                List <QTSysSetModel> procTypes = QTSysSetService.GetProcTypes();
                if (procTypes != null && procTypes.Count > 0)
                {
                    foreach (var sysSet in procTypes)
                    {
                        billRequest.BType     = sysSet.Value;
                        billRequest.Splx_Phid = sysSet.PhId;
                        int total = 0;
                        List <AppvalRecordVo> recordVos = GAppvalRecordService.GetDoneRecordList(billRequest, out total);
                        int total2 = 0;
                        List <AppvalRecordVo> recordVos2 = GAppvalRecordService.GetUnDoRecordList(billRequest, out total2);

                        YNum += total;
                        NNum += total2;
                    }
                }
                var dic = new Dictionary <string, object>();
                new CreateCriteria(dic).Add(ORMRestrictions <Int64> .NotEq("PhId", 0));
                new CreateCriteria(dic).Add(ORMRestrictions <List <Int32> > .In("FState", new List <int>()
                {
                    2, 0
                }));
                new CreateCriteria(dic).Add(ORMRestrictions <Int64> .Eq("OrgPhid", Orgid));
                new CreateCriteria(dic).Add(ORMRestrictions <string> .Eq("FYear", Year));
                //var Query = GKPaymentMstService.GetPaymentFailure(dic);
                var Query = GKPaymentMstService.Find(dic).Data;
                return(DataConverterHelper.SerializeObject(new
                {
                    Status = "success",
                    YNum = YNum,
                    NNum = NNum,
                    PaymentState = Query.Count//【待支付】信息提醒需求
                }));
            }
            catch (Exception e)
            {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }