コード例 #1
0
        /// <summary>
        /// Lưu checker nếu truyền, k truyền thì tìm checker
        /// </summary>
        /// <param name="Checkers"></param>
        /// <param name="Next"></param>
        /// <returns></returns>
        public bool AddChecker(List <string> Checkers, string Next, Boolean IsComeBack)
        {
            string    sql       = @"SELECT IdRow, p.IdStep, Next,IsComeBackPro from DP_Process p
join Tbl_PhanAnhGopY pa on p.Id = pa.Id and p.IdStep = pa.IdStep
where pa.Id = @Id and p.Next=@Next and p.IsComeBackPro = @IsComeBackPro ";
            DataTable dtProcess = cnn.CreateDataTable(sql, new SqlConditions()
            {
                { "Id", Id }, { "Next", Next }, { "IsComeBackPro", IsComeBack }
            });

            if (dtProcess.Rows.Count == 0)
            {
                Error = "Không tìm thấy bước xử lý tiếp theo";
                return(false);
            }
            DataRow dr = dtProcess.Rows[0];

            if (Checkers == null || Checkers.Count == 0)
            {
                Checkers = GetCheckers(dr["IdStep"].ToString(), Next, Convert.ToBoolean(dr["IsComeBackPro"]));
                if (!string.IsNullOrEmpty(Error))
                {
                    return(false);
                }
            }
            foreach (string id in Checkers)
            {
                Hashtable val1 = new Hashtable();
                val1["IdProcess"] = dr["IdRow"];
                val1["Checker"]   = id;
                if (cnn.Insert(val1, "DP_Process_Detail") < 1)
                {
                    cnn.RollbackTransaction();
                    Error = "Có gì đó không đúng, vui lòng thử lại sau";
                    return(false);
                }
                try
                {
                    string udpate_DonVi = " EXEC sp_ThemDonViXuLy @Id , @Next, @IdUser,@IsComeBack ";
                    cnn.ExecuteNonQuery(udpate_DonVi, new SqlConditions {
                        { "Id", Id }, { "Next", Next }, { "IdUser", id }, { "IsComeBack", IsComeBack }
                    });
                }
                catch (Exception ex)
                {
                    cnn.RollbackTransaction();
                    cnn.ClearError();
                }
            }

            string lstUser = string.Join(",", Checkers);
            string msg     = "Bạn có một phản ánh góp ý mới cần xử lý.";

            return(notify(lstUser, msg));
        }
コード例 #2
0
        public Task OnConnectedTokenAsync(string infoToken)
        {
            try
            {
                var id = Context.ConnectionId;
                TokenRequesModel infoDataCon = JsonConvert.DeserializeObject <TokenRequesModel>(infoToken);
                string           Token       = infoDataCon.Token;
                string           idUser      = infoDataCon.UserID.ToString();
                string           clientId    = Context.ConnectionId;
                if (!ConnectedClients.Keys.Contains(Token))
                {
                    ConnectedClients.Add(Token, clientId);
                }
                else
                {
                    ConnectedClients[Token] = clientId;
                }
                using (DpsConnection cnn = new DpsConnection(_config.ConnectionString))
                {
                    Hashtable has = new Hashtable();
                    has.Add("Token", Token);
                    has.Add("TimeConnect", DateTime.Now);
                    has.Add("TimeTokenConnect", DateTime.Now);
                    has.Add("ConnectionId", clientId);

                    string sql_ = @" IF EXISTS (SELECT * FROM SignalR_Connect c WHERE c.Token=@Token)
		                                BEGIN
			                                DELETE SignalR_Connect WHERE Token =@Token 
		                                END "        ;

                    cnn.ExecuteNonQuery(sql_, new SqlConditions {
                        { "Token", Token }
                    });
                    if (cnn.Insert(has, "SignalR_Connect") == 1)
                    {
                    }
                }
            }catch (Exception ex)
            {
                return(base.OnDisconnectedAsync(ex));
            }
            return(base.OnConnectedAsync());
        }