Esempio n. 1
0
        private void InitUI()
        {
            Action <LawData> action = null;

            MouseTool.ShowLoading();
            LawCT_Title.Text = Settings.Default.LawButtonName;
            new HttpRequest();
            if (NetworkTool.CheckNetwork() > 0)
            {
                if (action == null)
                {
                    action = new Action <LawData>(_003CInitUI_003Eb__1b);
                }
                GetLawData.AsyncPOST(action);
                return;
            }
            DataTable dataTable = MSCE.GetDataTable("select LawJson from LawData");

            if (dataTable.Rows.Count > 0)
            {
                LawData ld = JsonConvert.DeserializeObject <LawData>(dataTable.Rows[0]["LawJson"].ToString());
                GetLawData_DoAction(ld);
            }
            else
            {
                AutoClosingMessageBox.Show("無法取得資料,請稍後再試");
                MouseTool.ShowArrow();
            }
        }
        private void btnDownload_btnPausing_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Action <MeetingData>        action = null;
            _003C_003Ec__DisplayClass21 _003C_003Ec__DisplayClass = new _003C_003Ec__DisplayClass21();

            _003C_003Ec__DisplayClass.sender            = sender;
            _003C_003Ec__DisplayClass._003C_003E4__this = this;
            e.Handled = true;
            MouseTool.ShowLoading();
            if (NetworkTool.CheckNetwork() > 0)
            {
                string iD      = userMeeting.ID;
                string userID  = UserID;
                string userPWD = UserPWD;
                if (action == null)
                {
                    action = new Action <MeetingData>(_003C_003Ec__DisplayClass._003CbtnDownload_btnPausing_MouseLeftButtonDown_003Eb__1f);
                }
                GetMeetingData.AsyncPOST(iD, userID, userPWD, action);
            }
            else
            {
                DataTable dataTable = MSCE.GetDataTable("select MeetingJson from MeetingData where MeetingID=@1 and UserID =@2", userMeeting.ID, UserID);
                if (dataTable.Rows.Count > 0)
                {
                    MeetingData md = JsonConvert.DeserializeObject <MeetingData>(dataTable.Rows[0]["MeetingJson"].ToString());
                    GetMeetingData_DoAction(md, (Image)_003C_003Ec__DisplayClass.sender);
                }
                else
                {
                    AutoClosingMessageBox.Show("無法取得資料,請稍後再試");
                    MouseTool.ShowArrow();
                }
            }
        }
Esempio n. 3
0
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                var now = DateTime.Now;

                using (var db = new livecloudEntities())
                {
                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "clearSystemBarrageTimes",
                        AddTime     = now,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current),
                        Remarks     = "系统弹幕使用次数清零"
                    };

                    db.dt_ManageLog.Add(manageLog);

                    foreach (var data in db.dt_SystemBarrageTimes)
                    {
                        data.times      = 0;
                        data.updatetime = now;
                    }

                    db.SaveChanges();
                }

                result.Code    = ResultHelper.Success;
                result.StrCode = ResultHelper.SuccessMsg;

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("ClearSystemBarrageTimes", "ClearSystemBarrageTimes", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
Esempio n. 4
0
        private void btnDownload_btnPausing_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            e.Handled = true;

            // 先撈一次MeetingData
            MouseTool.ShowLoading();
            //GetMeetingData.AsyncPOST(userMeeting.ID, UserID, UserPWD, (md) => { GetMeetingData_DoAction(md,(Image)sender); });
            if (NetworkTool.CheckNetwork() > 0)
            {
                GetMeetingData.AsyncPOST(userMeeting.ID, UserID, UserPWD, (md) => { GetMeetingData_DoAction(md, (Image)sender); });
            }
            else
            {
                //DB查詢登入
                DataTable dt = MSCE.GetDataTable("select MeetingJson from MeetingData where MeetingID=@1 and UserID =@2"
                                                 , userMeeting.ID
                                                 , UserID);

                if (dt.Rows.Count > 0)
                {
                    MeetingData md = JsonConvert.DeserializeObject <MeetingData>(dt.Rows[0]["MeetingJson"].ToString());
                    GetMeetingData_DoAction(md, (Image)sender);
                }
                else
                {
                    AutoClosingMessageBox.Show("無法取得資料,請稍後再試");
                    MouseTool.ShowArrow();
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 发送受伤信息
        /// </summary>
        /// <param name="pos">角色位置</param>
        public void SendHarmInfo(Vector2 pos)
        {
            var deathInfo = new GameDeathInfoDTO(pos.x, pos.y);

            StartCoroutine(NetworkTool.PostJsonRequest(
                               "/push_death_info"
                               , JsonConvert.SerializeObject(deathInfo),
                               result => {}));
        }
Esempio n. 6
0
 public void Login(string code, NetworkTool.RequestCallback callback)
 {
     StartCoroutine(NetworkTool.GetRequest($"/login_code/{code}", (result =>
     {
         user = JsonConvert.DeserializeObject <GameUserInfoDTO>(result);
         loginSucceedEvent.Send();
         // Debug.Log(user);
         isInitMapInfos = false; // 让地图信息也初始化
         callback(result);
     })));
 }
        private void InitUI()
        {
            MouseTool.ShowLoading();
            //LawCT_Title.Text = MyPL.Properties.Settings.Default.LawButtonName;
            txtTitle.Text = ButtonName;
            //Network.HttpRequest hr = new Network.HttpRequest();
            if (1 == 1 || NetworkTool.CheckNetwork() > 0)
            {
                // 非同步POST方法
                //GetLawData.AsyncPOST((ld) => { GetLawData_DoAction(ld); });
                GetUserFolder.AsyncPOST(UserID, UserPWD, (fd) => { GetUserFolder_DoAction(fd); });
                //, () => { this.Dispatcher.BeginInvoke(new Action(() => { AutoClosingMessageBox.Show("無法取得資料,請稍後再試"); })); });
            }
            else
            {
                DataTable dt = MSCE.GetDataTable("select LawJson from LawData");


                if (dt.Rows.Count > 0)
                {
                    LawData ld = JsonConvert.DeserializeObject <LawData>(dt.Rows[0]["LawJson"].ToString());
                    GetLawData_DoAction(ld);
                }
                else
                {
                    AutoClosingMessageBox.Show("無法取得資料,請稍後再試");
                    MouseTool.ShowArrow();
                }
            }



            #region  步POST
            //LawData lawData = GetLawData.POST();

            //if (lawData != null)
            //{
            //    int i=0;
            //    foreach (LawDataLaw item in lawData.LawList)
            //    {
            //        i++;
            //        bool IsLastRow= (i==lawData.LawList.Length);
            //        LawRowSP.Children.Add(new LawRow(item,IsLastRow, LawListCT_HangTheDownloadEvent_Callback));
            //    }
            //}
            //else
            //{
            //    AutoClosingMessageBox.Show("無法取得資料,請稍後再試");
            //}
            #endregion
        }
Esempio n. 8
0
        /// <summary>
        /// 通过地图 Id 取得地图数据
        /// </summary>
        /// <param name="mapId"></param>
        /// <param name="callback"></param>
        private void GetMap(string mapId, NetworkTool.RequestCallback callback)
        {
            // 先检查缓存里面有没有
            if (mapCache.TryGetValue(mapId, out var value))
            {
                callback(value);
                return;
            }

            StartCoroutine(NetworkTool.GetRequest($"/get_map/{mapId}", result =>
            {
                // 先添加到缓存里面
                mapCache.Add(mapId, result);
                callback(result);
            }));
        }
Esempio n. 9
0
        /// <summary>
        /// 取得图片
        /// </summary>
        /// <param name="path"></param>
        /// <param name="callback"></param>
        public void GetSpriteByPath(string path, NetworkTool.RequestSpriteCallback callback)
        {
            // 先检查缓存里面有没有
            if (imgCache.TryGetValue(path, out var value))
            {
                callback(value);
                return;
            }

            StartCoroutine(NetworkTool.GetSpriteRequest(path, result =>
            {
                // 先添加到缓存里面
                imgCache.Add(path, result);
                callback(result);
            }));
        }
Esempio n. 10
0
        /// <summary>
        /// 用于初始化地图信息
        /// </summary>
        /// <param name="callback"></param>
        public void InitMapInfoList(NetworkTool.RequestCallback callback)
        {
            if (isInitMapInfos)
            {
                callback("");
                return;
            }

            StartCoroutine(NetworkTool.GetRequest("/get_map_infos", result =>
            {
                // 先清空
                mapInfos.Clear();
                var array = JArray.Parse(result);
                foreach (var item in array)
                {
                    mapInfos.Add(JsonConvert.DeserializeObject <GameMapInfoDTO>(item.ToString()));
                }

                callback(result);
                isInitMapInfos = true;
            }));
        }
Esempio n. 11
0
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                int id           = int.TryParse(request.Form["ID"] ?? "", out id) ? id : -1;
                var action       = request.Form["Type"] ?? "";
                var name         = request.Form["Name"] ?? "";
                var roleListJson = request.Form["RoleList"] ?? "";
                var now          = DateTime.Now;

                PermissionsList permissionsList = null;

                try
                {
                    permissionsList = (string.IsNullOrEmpty(roleListJson))
                        ? null
                        : JsonConvert.DeserializeObject <PermissionsList>(roleListJson);
                }
                catch (Exception jsonEx)
                {
                    permissionsList = null;
                }

                switch (action.ToLower())
                {
                case "add":
                {
                    if (string.IsNullOrEmpty(name) ||
                        permissionsList == null)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                case "edit":
                {
                    if (id <= 0)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                default:
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }

                using (var db = new livecloudEntities())
                {
                    ////驗證權限(不確定是否為相應的欄位)
                    //var operationManager = db.dt_Manager.Find(managerId);

                    //var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                    //if (operationManagerRole.RoleManage == false)
                    //{
                    //    result.Code = ResultHelper.NotAuthorized;
                    //    result.StrCode = ResultHelper.NotAuthorizedMsg;
                    //    return result;
                    //}

                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "ManagerEdit",
                        AddTime     = now,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };

                    if (!string.IsNullOrEmpty(name))
                    {
                        var dupNameRole = action.ToLower() == "add" ? db.dt_ManagerRole.Where(a => a.RoleName == name.Trim()).FirstOrDefault() : db.dt_ManagerRole.Where(a => a.RoleName == name.Trim() & a.Id != id).FirstOrDefault();

                        if (dupNameRole != null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "已存在相同名称的角色!";
                            return(result);
                        }
                    }

                    switch (action.ToLower())
                    {
                    case "add":
                    {
                        var role = new dt_ManagerRole()
                        {
                            RoleName        = name,
                            LiveCmsManage   = permissionsList.liveCmsManage.ToBoolByOnOffString(),
                            DealerManage    = permissionsList.AnchorManage.ToBoolByOnOffString(),
                            DealerList      = permissionsList.AnchorList.ToBoolByOnOffString(),
                            DealerPost      = permissionsList.AnchorPost.ToBoolByOnOffString(),
                            DealerTime      = permissionsList.AnchorTime.ToBoolByOnOffString(),
                            LiveManage      = permissionsList.liveManage.ToBoolByOnOffString(),
                            VideoList       = permissionsList.videoList.ToBoolByOnOffString(),
                            BarrageManage   = permissionsList.barrageManage.ToBoolByOnOffString(),
                            SystemBarrage   = permissionsList.systemBarrage.ToBoolByOnOffString(),
                            WordsManage     = permissionsList.wordsManage.ToBoolByOnOffString(),
                            ManualReview    = permissionsList.manualReview.ToBoolByOnOffString(),
                            GiftManage      = permissionsList.giftManage.ToBoolByOnOffString(),
                            GiftList        = permissionsList.giftList.ToBoolByOnOffString(),
                            DealerTable     = permissionsList.AnchorTable.ToBoolByOnOffString(),
                            Manager         = permissionsList.Manager.ToBoolByOnOffString(),
                            ManagerList     = permissionsList.managerList.ToBoolByOnOffString(),
                            RoleManage      = permissionsList.roleManage.ToBoolByOnOffString(),
                            ManageLog       = permissionsList.manageLog.ToBoolByOnOffString(),
                            ShieldedRecord  = permissionsList.shieldedRecord.ToBoolByOnOffString(),
                            LiveNotSpeak    = permissionsList.liveNotSpeak.ToBoolByOnOffString(),
                            BlackWordManage = permissionsList.blackWordManage.ToBoolByOnOffString(),
                            RealTimeBarrage = permissionsList.realTimeBarrage.ToBoolByOnOffString(),
                            AllowIp         = permissionsList.AllowIp.ToBoolByOnOffString(),
                            AddTime         = now
                        };

                        db.dt_ManagerRole.Add(role);

                        manageLog.Remarks = "添加角色:" + name;

                        break;
                    }

                    case "edit":
                    {
                        var role = db.dt_ManagerRole.Find(id);

                        if (role == null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "ID:" + id + "的角色不存在!";
                            return(result);
                        }

                        if (!string.IsNullOrEmpty(name))
                        {
                            role.RoleName = name;
                        }

                        if (permissionsList != null)
                        {
                            if (!string.IsNullOrEmpty(permissionsList.liveCmsManage))
                            {
                                role.LiveCmsManage = permissionsList.liveCmsManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.AnchorManage))
                            {
                                role.DealerManage = permissionsList.AnchorManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.AnchorList))
                            {
                                role.DealerList = permissionsList.AnchorList.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.AnchorPost))
                            {
                                role.DealerPost = permissionsList.AnchorPost.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.AnchorTime))
                            {
                                role.DealerTime = permissionsList.AnchorTime.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.liveManage))
                            {
                                role.LiveManage = permissionsList.liveManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.videoList))
                            {
                                role.VideoList = permissionsList.videoList.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.barrageManage))
                            {
                                role.BarrageManage = permissionsList.barrageManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.systemBarrage))
                            {
                                role.SystemBarrage = permissionsList.systemBarrage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.sentenceManage))
                            {
                                role.SentenceManage = permissionsList.sentenceManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.wordsManage))
                            {
                                role.WordsManage = permissionsList.wordsManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.manualReview))
                            {
                                role.ManualReview = permissionsList.manualReview.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.giftManage))
                            {
                                role.GiftManage = permissionsList.giftManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.giftList))
                            {
                                role.GiftList = permissionsList.giftList.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.AnchorTable))
                            {
                                role.DealerTable = permissionsList.AnchorTable.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.Manager))
                            {
                                role.Manager = permissionsList.Manager.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.managerList))
                            {
                                role.ManagerList = permissionsList.managerList.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.roleManage))
                            {
                                role.RoleManage = permissionsList.roleManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.manageLog))
                            {
                                role.ManageLog = permissionsList.manageLog.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.shieldedRecord))
                            {
                                role.ShieldedRecord = permissionsList.shieldedRecord.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.liveNotSpeak))
                            {
                                role.LiveNotSpeak = permissionsList.liveNotSpeak.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.blackWordManage))
                            {
                                role.BlackWordManage = permissionsList.blackWordManage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.realTimeBarrage))
                            {
                                role.RealTimeBarrage = permissionsList.realTimeBarrage.ToBoolByOnOffString();
                            }

                            if (!string.IsNullOrEmpty(permissionsList.AllowIp))
                            {
                                role.AllowIp = permissionsList.AllowIp.ToBoolByOnOffString();
                            }
                        }

                        manageLog.Remarks = "修改角色:" + name;

                        break;
                    }
                    }

                    db.dt_ManageLog.Add(manageLog);

                    db.SaveChanges();

                    result.Code    = ResultHelper.Success;
                    result.StrCode = ResultHelper.SuccessMsg;
                }

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("SetRole", "SetRole", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                int  id      = int.TryParse(request.Form["ID"], out id) ? id : -1;
                byte state   = byte.TryParse(request.Form["State"], out state) ? state : (byte)255; //0黑名单|1白名单
                var  content = request.Form["Content"] ?? "";
                var  remark  = request.Form["Remark"] ?? "";
                var  action  = request.Form["Type"] ?? "";
                var  now     = DateTime.Now;

                switch (action.ToLower())
                {
                case "add":
                {
                    if (string.IsNullOrEmpty(content) || state == (byte)255)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                case "edit":
                {
                    if (id <= 0 ||
                        string.IsNullOrEmpty(content))
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                default:
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }

                using (var db = new livecloudEntities())
                {
                    ////驗證權限(不確定是否為相應的欄位)
                    //var operationManager = db.dt_Manager.Find(managerId);

                    //var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                    //if (operationManagerRole.SentenceManage == false)
                    //{
                    //    result.Code = ResultHelper.NotAuthorized;
                    //    result.StrCode = ResultHelper.NotAuthorizedMsg;
                    //    return result;
                    //}

                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "setSentenceManage",
                        AddTime     = now,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };

                    switch (action.ToLower())
                    {
                    case "add":
                    {
                        var sentence = db.dt_SensitiveSentences
                                       .Where(s => s.content == content.Trim())
                                       .FirstOrDefault();

                        if (sentence != null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "已有相同内容之" + (sentence.state == 0 ? "黑" : "白") + "名单!";
                            return(result);
                        }

                        var blockWords = db.dt_SensitiveWords
                                         .Where(s => s.state == 0 && content.Trim().Contains(s.content))
                                         .FirstOrDefault();

                        if (blockWords != null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "已有包含该内容之禁用词语!";
                            return(result);
                        }

                        sentence = new dt_SensitiveSentences()
                        {
                            content    = content.Trim(),
                            remark     = remark,
                            state      = state,
                            addtime    = now,
                            updatetime = now,
                            adminid    = managerId,
                            adminname  = db.dt_Manager.Find(managerId).user_name
                        };

                        manageLog.Remarks = "添加" + ((state == 1) ? "白" : "黑") + "名单:" + content;

                        db.dt_SensitiveSentences.Add(sentence);

                        break;
                    }

                    case "edit":
                    {
                        var sentence = db.dt_SensitiveSentences
                                       .Where(s => s.content == content.Trim() && s.id != id)
                                       .FirstOrDefault();

                        if (sentence != null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "已有相同内容之" + (sentence.state == 0 ? "黑" : "白") + "名单!";
                            return(result);
                        }

                        var blockWords = db.dt_SensitiveWords
                                         .Where(s => s.state == 0 && content.Trim().Contains(s.content))
                                         .FirstOrDefault();

                        if (blockWords != null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "已有包含该内容之禁用词语!";
                            return(result);
                        }

                        sentence = db.dt_SensitiveSentences.Find(id);

                        if (sentence == null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "找不到ID:" + id + "的数据!";
                            return(result);
                        }


                        if (!string.IsNullOrEmpty(content.Trim()))
                        {
                            sentence.content = content.Trim();
                        }

                        if (!string.IsNullOrEmpty(remark.Trim()))
                        {
                            sentence.remark = remark.Trim();
                        }

                        if (state < 255)
                        {
                            sentence.state = state;
                        }

                        sentence.updatetime = now;
                        sentence.adminid    = managerId;
                        sentence.adminname  = db.dt_Manager.Find(managerId).user_name;

                        manageLog.Remarks = "修改黑白名单ID:" + sentence.id + ", 內容:" + content;

                        break;
                    }
                    }

                    db.dt_ManageLog.Add(manageLog);

                    db.SaveChanges();
                    UpdateMsg.PostUpdate("dt_SensitiveSentences");
                }

                result.Code    = ResultHelper.Success;
                result.StrCode = ResultHelper.SuccessMsg;

                return(result);
            }
            catch (DbUpdateException ex)
            {
                Log.Info("SetSentenceManage", "SetSentenceManage", ex.InnerException.Message.ToString());
                result.Code    = ResultHelper.ParamFail;
                result.StrCode = "已有重复的内容,请刷新页面";
                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("SetSentenceManage", "SetSentenceManage", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                var userName    = request.Form["UserName"] ?? "";
                var oldPassword = request.Form["oldPassword"] ?? "";
                var newPassword = request.Form["newPassword"] ?? "";
                var action      = request.Form["Type"] ?? "";
                var now         = DateTime.Now;

                if (string.IsNullOrEmpty(userName) ||
                    string.IsNullOrEmpty(oldPassword) ||
                    string.IsNullOrEmpty(newPassword) ||
                    action.ToLower() != "edit")
                {
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }

                using (var db = new livecloudEntities())
                {
                    ////驗證權限(不確定是否為相應的欄位)
                    //var operationManager = db.dt_Manager.Find(managerId);

                    //var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                    //if (operationManagerRole.Manager == false)
                    //{
                    //    result.Code = ResultHelper.NotAuthorized;
                    //    result.StrCode = ResultHelper.NotAuthorizedMsg;
                    //    return result;
                    //}

                    var manager = db.dt_Manager.Where(m => m.user_name == userName).FirstOrDefault();

                    if (manager == null)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = "不存在管理员帐户:" + userName + "!";
                        return(result);
                    }

                    if (manager.password != oldPassword)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = "原密码错误!";
                        return(result);
                    }

                    manager.password = newPassword;

                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "setPassword",
                        AddTime     = now,
                        Remarks     = "修改帐户密码:" + manager.user_name,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };

                    db.dt_ManageLog.Add(manageLog);

                    db.SaveChanges();

                    result.Code    = ResultHelper.Success;
                    result.StrCode = ResultHelper.SuccessMsg;
                }

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("SetPassword", "SetPassword", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
Esempio n. 14
0
        private void CallLigon()
        {
            canLogin = false;
            MouseTool.ShowLoading();
            try
            {
                string UserID        = tbUserID.Text.Trim();
                string UserPWD       = tbUserPWD.Password.Trim();
                string UserDateBegin = DateTool.MonthFirstDate(DateTime.Today).ToString("yyyyMMdd");              //"20190101";
                string UserDateEnd   = DateTool.MonthFirstDate(DateTime.Today.AddMonths(1)).ToString("yyyyMMdd"); //"20190101";


                //Network.HttpRequest hr = new Network.HttpRequest();
                if (NetworkTool.CheckNetwork() > 0)
                {
                    string url     = WsTool.GetUrl();
                    string xmlData = "<?xml version=\"1.0\"?><UserInfo><UserID><![CDATA[{0}]]></UserID><UserPW><![CDATA[{1}]]></UserPW><UserDevice>1</UserDevice><UserDateBegin>{2}</UserDateBegin><UserDateEnd>{3}</UserDateEnd></UserInfo>";
                    xmlData = string.Format(xmlData, UserID, UserPWD, UserDateBegin, UserDateEnd);
                    Dictionary <string, string> postData = new Dictionary <string, string>();
                    postData["XmlDoc"] = xmlData;
                    //LogTool.Debug(xmlData);
                    HttpWebRequest request = HttpTool.GetHttpWebRequest(url + "/UserData", "POST", postData);

                    // init your request...then:   //lambda
                    //呼叫方法,第二個是lambda匿名方法
                    DoWithResponse(request, (response) =>
                    {
                        //這裡面是不同的執行序;
                        User user = null;

                        try
                        {
                            string data = new StreamReader(response.GetResponseStream()).ReadToEnd();
                            //LogTool.Debug(data);
                            user = XmlHelper.XmlDeserialize <User>(data, Encoding.UTF8);
                        }
                        catch (Exception ex)
                        {
                            this.Dispatcher.BeginInvoke(new Action(() => { AutoClosingMessageBox.Show("登入失敗,請重新登入"); }));
                            LogTool.Debug(ex);
                        }
                        this.Dispatcher.BeginInvoke(new Action <User>(CheckLogin), user);
                    });
                }
                else
                {
                    //DB查詢登入
                    DataTable dt = MSCE.GetDataTable("select UserID from LoginInfo where UserID =@1", UserID);
                    if (dt.Rows.Count > 0)
                    {
                        dt = MSCE.GetDataTable("select UserJson from LoginInfo where UserID =@1 and UserPWD=@2"
                                               , UserID
                                               , UserPWD);

                        if (dt.Rows.Count > 0)
                        {
                            User   user = JsonConvert.DeserializeObject <User>(dt.Rows[0]["UserJson"].ToString());
                            string HomeUserButtonAryJSON = JsonConvert.SerializeObject(user.EnableButtonList);
                            string UTC      = user.UTC.ToString();
                            long   deltaUTC = 0;
                            try
                            {
                                deltaUTC = DateTool.GetCurrentTimeInUnixMillis() - long.Parse(UTC);
                            }
                            catch (Exception ex)
                            {
                                LogTool.Debug(ex);
                            }
                            string SQL     = @"Update NowLogin set UserID=@1,UserName=@2,UserPWD=@3,MeetingListDate=getdate(),HomeUserButtonAryJSON=@4,UserEmail=@5,UTC=@6,DeltaUTC=@7,RemeberLogin=@8";
                            int    success = MSCE.ExecuteNonQuery(SQL
                                                                  , user.ID
                                                                  , user.Name
                                                                  , tbUserPWD.Password.Trim()
                                                                  , HomeUserButtonAryJSON
                                                                  , user.Email
                                                                  , DateTool.GetCurrentTimeInUnixMillis().ToString()
                                                                  , deltaUTC.ToString()
                                                                  , cbRemeberLogin.IsChecked == true ? "true" : "false");


                            if (success < 1)
                            {
                                LogTool.Debug(new Exception(@"DB失敗: " + SQL));
                                return;
                            }
                            this.Dispatcher.BeginInvoke(new Action <User>(CheckLogin), user);
                        }
                        else
                        {
                            MouseTool.ShowArrow();
                            AutoClosingMessageBox.Show("您的密碼錯誤");
                            canLogin = true;
                        }
                    }
                    else
                    {
                        MouseTool.ShowArrow();
                        AutoClosingMessageBox.Show("無此使用者帳號,請重新輸入");
                        canLogin = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MouseTool.ShowArrow();
                AutoClosingMessageBox.Show("登入失敗");
                canLogin = true;
            }
        }
Esempio n. 15
0
        void Run(object obj)
        {
            var server = obj as Socket;

            if (server != null)
            {
                #region SocketConnected
                SocketConnected?.Invoke(this, new SocketEventArgs(server));
                #endregion

                List <byte> lstResponse = new List <byte>();
                var         prev        = DateTime.Now;
                var         chr         = new Chattering()
                {
                    ChatteringTime = DisconnectCheckTime
                };

                bool IsThStart = true;

                chr.StateChanged += (o, s) => { if (!s.Value)
                                                {
                                                    IsThStart = false;
                                                }
                };
                while (IsThStart)
                {
                    try
                    {
                        #region DataRead
                        if (server.Available > 0)
                        {
                            try
                            {
                                int n = server.Receive(baResponse);
                                for (int i = 0; i < n; i++)
                                {
                                    lstResponse.Add(baResponse[i]);
                                }
                                prev = DateTime.Now;
                            }
                            catch (TimeoutException) { }
                        }
                        #endregion

                        #region Modbus Parse
                        if (lstResponse.Count >= 10)
                        {
                            int            Slave        = lstResponse[6];
                            ModbusFunction Function     = (ModbusFunction)lstResponse[7];
                            int            StartAddress = (lstResponse[8] << 8) | lstResponse[9];

                            switch (Function)
                            {
                            case ModbusFunction.BITREAD_F1:
                            case ModbusFunction.BITREAD_F2:
                                #region BitRead
                                if (lstResponse.Count == 12)
                                {
                                    int Length = (lstResponse[10] << 8) | lstResponse[11];

                                    if (BitReadRequest != null)
                                    {
                                        var args = new BitReadRequestArgs(lstResponse.ToArray());
                                        BitReadRequest?.Invoke(this, args);

                                        if (args.Success && args.ResponseData != null && args.ResponseData.Length == args.Length)
                                        {
                                            #region MakeData
                                            List <byte> Datas = new List <byte>();
                                            int         nlen  = args.ResponseData.Length / 8;
                                            nlen += (args.ResponseData.Length % 8 == 0) ? 0 : 1;
                                            for (int i = 0; i < nlen; i++)
                                            {
                                                byte val = 0;
                                                for (int j = (i * 8), nTemp = 0; j < args.ResponseData.Length && j < (i * 8) + 8; j++, nTemp++)
                                                {
                                                    if (args.ResponseData[j])
                                                    {
                                                        val |= Convert.ToByte(Math.Pow(2, nTemp));
                                                    }
                                                }
                                                Datas.Add(val);
                                            }
                                            #endregion
                                            #region Write
                                            List <byte> ret = new List <byte>();
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add((byte)(((nlen + 3) & 0xFF00) >> 8));
                                            ret.Add((byte)(((nlen + 3) & 0x00FF)));
                                            ret.Add((byte)Slave);
                                            ret.Add((byte)Function);
                                            ret.Add((byte)Datas.Count);
                                            ret.AddRange(Datas.ToArray());

                                            byte[] send = ret.ToArray();
                                            server.Send(send);
                                            #endregion
                                        }
                                    }
                                    lstResponse.Clear();
                                }
                                #endregion
                                break;

                            case ModbusFunction.WORDREAD_F3:
                            case ModbusFunction.WORDREAD_F4:
                                #region WordRead
                                if (lstResponse.Count == 12)
                                {
                                    int Length = (lstResponse[10] << 8) | lstResponse[11];

                                    if (WordReadRequest != null)
                                    {
                                        var args = new WordReadRequestArgs(lstResponse.ToArray());
                                        WordReadRequest?.Invoke(this, args);

                                        if (args.Success && args.ResponseData != null && args.ResponseData.Length == args.Length)
                                        {
                                            #region MakeData
                                            List <byte> Datas = new List <byte>();
                                            for (int i = 0; i < args.ResponseData.Length; i++)
                                            {
                                                Datas.Add((byte)((args.ResponseData[i] & 0xFF00) >> 8));
                                                Datas.Add((byte)((args.ResponseData[i] & 0x00FF)));
                                            }
                                            #endregion
                                            #region Write
                                            int         nlen = Length * 2;
                                            List <byte> ret  = new List <byte>();
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add((byte)(((nlen + 3) & 0xFF00) >> 8));
                                            ret.Add((byte)(((nlen + 3) & 0x00FF)));
                                            ret.Add((byte)Slave);
                                            ret.Add((byte)Function);
                                            ret.Add((byte)Datas.Count);
                                            ret.AddRange(Datas.ToArray());

                                            byte[] send = ret.ToArray();
                                            server.Send(send);
                                            #endregion
                                        }
                                    }
                                    lstResponse.Clear();
                                }
                                #endregion
                                break;

                            case ModbusFunction.BITWRITE_F5:
                                #region BitWrite
                                if (lstResponse.Count == 12)
                                {
                                    int WriteValue = (lstResponse[10] << 8) | lstResponse[11];
                                    if (BitWriteRequest != null)
                                    {
                                        var args = new BitWriteRequestArgs(lstResponse.ToArray());
                                        BitWriteRequest?.Invoke(this, args);

                                        if (args.Success)
                                        {
                                            #region Write
                                            int         nv  = args.WriteValue ? 0xFF00 : 0;
                                            List <byte> ret = new List <byte>();
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(6);
                                            ret.Add((byte)Slave);
                                            ret.Add((byte)Function);
                                            ret.Add((byte)((StartAddress & 0xFF00) >> 8));
                                            ret.Add((byte)((StartAddress & 0x00FF)));
                                            ret.Add((byte)((nv & 0xFF00) >> 8));
                                            ret.Add((byte)((nv & 0x00FF)));

                                            byte[] send = ret.ToArray();
                                            server.Send(send);
                                            #endregion
                                        }
                                    }
                                    lstResponse.Clear();
                                }
                                #endregion
                                break;

                            case ModbusFunction.WORDWRITE_F6:
                                #region WordWrite
                                if (lstResponse.Count == 12)
                                {
                                    int WriteValue = (lstResponse[10] << 8) | lstResponse[11];

                                    if (WordWriteRequest != null)
                                    {
                                        var args = new WordWriteRequestArgs(lstResponse.ToArray());
                                        WordWriteRequest?.Invoke(this, args);

                                        if (args.Success)
                                        {
                                            #region Write
                                            List <byte> ret = new List <byte>();
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(6);
                                            ret.Add((byte)args.Slave);
                                            ret.Add((byte)args.Function);
                                            ret.Add((byte)((args.StartAddress & 0xFF00) >> 8));
                                            ret.Add((byte)((args.StartAddress & 0x00FF)));
                                            ret.Add((byte)((args.WriteValue & 0xFF00) >> 8));
                                            ret.Add((byte)((args.WriteValue & 0x00FF)));

                                            byte[] send = ret.ToArray();
                                            server.Send(send);
                                            #endregion
                                        }
                                    }
                                    lstResponse.Clear();
                                }
                                #endregion
                                break;

                            case ModbusFunction.MULTIBITWRITE_F15:
                                #region MultiBitWrite
                                if (lstResponse.Count >= 13)
                                {
                                    int ByteCount = lstResponse[12];
                                    if (lstResponse.Count >= 13 + ByteCount)
                                    {
                                        var args = new MultiBitWriteRequestArgs(lstResponse.ToArray());
                                        if (MultiBitWriteRequest != null)
                                        {
                                            MultiBitWriteRequest?.Invoke(this, args);

                                            if (args.Success)
                                            {
                                                #region Write
                                                List <byte> ret = new List <byte>();
                                                ret.Add(0);
                                                ret.Add(0);
                                                ret.Add(0);
                                                ret.Add(0);
                                                ret.Add(0);
                                                ret.Add(6);
                                                ret.Add((byte)args.Slave);
                                                ret.Add((byte)args.Function);
                                                ret.Add((byte)((args.StartAddress & 0xFF00) >> 8));
                                                ret.Add((byte)((args.StartAddress & 0x00FF)));
                                                ret.Add((byte)((args.Length & 0xFF00) >> 8));
                                                ret.Add((byte)((args.Length & 0x00FF)));

                                                byte[] send = ret.ToArray();
                                                server.Send(send);
                                                #endregion
                                            }
                                        }
                                        lstResponse.Clear();
                                    }
                                }
                                #endregion
                                break;

                            case ModbusFunction.MULTIWORDWRITE_F16:
                                #region MultiWordWrite
                                if (lstResponse.Count >= 13)
                                {
                                    int ByteCount = lstResponse[12];
                                    if (lstResponse.Count >= 13 + ByteCount)
                                    {
                                        if (MultiWordWriteRequest != null)
                                        {
                                            var args = new MultiWordWriteRequestArgs(lstResponse.ToArray());
                                            MultiWordWriteRequest?.Invoke(this, args);

                                            if (args.Success)
                                            {
                                                #region Write
                                                List <byte> ret = new List <byte>();
                                                ret.Add(0);
                                                ret.Add(0);
                                                ret.Add(0);
                                                ret.Add(0);
                                                ret.Add(0);
                                                ret.Add(6);
                                                ret.Add((byte)args.Slave);
                                                ret.Add((byte)args.Function);
                                                ret.Add((byte)((args.StartAddress & 0xFF00) >> 8));
                                                ret.Add((byte)((args.StartAddress & 0x00FF)));
                                                ret.Add((byte)((args.Length & 0xFF00) >> 8));
                                                ret.Add((byte)((args.Length & 0x00FF)));

                                                byte[] send = ret.ToArray();
                                                server.Send(send);
                                                #endregion
                                            }
                                        }
                                        lstResponse.Clear();
                                    }
                                }
                                #endregion
                                break;

                            case ModbusFunction.WORDBITSET_F26:
                                #region WordBitSet
                                if (lstResponse.Count == 13)
                                {
                                    if (WordBitSetRequest != null)
                                    {
                                        var args = new WordBitSetRequestArgs(lstResponse.ToArray());
                                        WordBitSetRequest?.Invoke(this, args);

                                        if (args.Success)
                                        {
                                            #region Write
                                            int         nv  = args.WriteValue ? 0xFF00 : 0;
                                            List <byte> ret = new List <byte>();
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(0);
                                            ret.Add(6);
                                            ret.Add((byte)args.Slave);
                                            ret.Add((byte)args.Function);
                                            ret.Add((byte)((args.StartAddress & 0xFF00) >> 8));
                                            ret.Add((byte)((args.StartAddress & 0x00FF)));
                                            ret.Add((byte)((nv & 0xFF00) >> 8));
                                            ret.Add((byte)((nv & 0x00FF)));

                                            byte[] send = ret.ToArray();
                                            server.Send(send);
                                            #endregion
                                        }
                                    }
                                    lstResponse.Clear();
                                }
                                #endregion
                                break;
                            }
                        }
                        #endregion

                        #region Buffer Clear
                        if ((DateTime.Now - prev).TotalMilliseconds >= 50 && lstResponse.Count > 0)
                        {
                            lstResponse.Clear();
                        }
                        #endregion

                        chr.Set(NetworkTool.IsSocketConnected(server));
                    }
                    catch (SocketException ex)
                    {
                        if (ex.SocketErrorCode == SocketError.TimedOut)
                        {
                        }
                        else if (ex.SocketErrorCode == SocketError.ConnectionReset)
                        {
                        }
                        else if (ex.SocketErrorCode == SocketError.ConnectionAborted)
                        {
                            IsThStart = false;
                        }
                    }
                    catch { }
                    Thread.Sleep(10);
                }

                #region Socket Closed
                if (server.Connected)
                {
                    server.Close();
                }
                SocketDisconnected?.Invoke(this, new SocketEventArgs(server));
                #endregion
            }
        }
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                int id        = int.TryParse(request.Form["ID"] ?? "-1", out id) ? id : -1;
                var userName  = request.Form["UserName"] ?? "";
                var password  = request.Form["Password"] ?? "";
                var realName  = request.Form["RealName"] ?? "";
                var adminRole = request.Form["AdminRole"] ?? "";
                var action    = request.Form["Type"] ?? "";
                var now       = DateTime.Now;

                ////驗證權限
                //using (var db = new livecloudEntities())
                //{
                //    var operationManager = db.dt_Manager.Find(managerId);

                //    var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                //    if (operationManagerRole.Manager == false)
                //    {
                //        result.Code = ResultHelper.NotAuthorized;
                //        result.StrCode = ResultHelper.NotAuthorizedMsg;
                //        return result;
                //    }
                //}

                switch (action.ToLower())
                {
                case "add":
                {
                    if (string.IsNullOrEmpty(userName) ||
                        string.IsNullOrEmpty(password) ||
                        string.IsNullOrEmpty(adminRole))
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                case "edit":
                {
                    if (id <= 0)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    //if (!string.IsNullOrEmpty(userName))
                    //{
                    //    result.Code = ResultHelper.ParamFail;
                    //    result.StrCode = "不允许修改管理员帐户名称!";
                    //    return result;
                    //}
                    break;
                }

                default:
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }

                using (var db = new livecloudEntities())
                {
                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "ManagerEdit",
                        AddTime     = now,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };

                    dt_ManagerRole role = null;

                    if (!string.IsNullOrEmpty(adminRole))
                    {
                        int roleId = int.TryParse(adminRole, out roleId) ? roleId : -1;

                        role = (roleId > 0)
                            ? db.dt_ManagerRole.Find(roleId)
                            : db.dt_ManagerRole.Where(r => r.RoleName == adminRole).FirstOrDefault();

                        if (role == null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "找不到管理员角色ID:" + roleId + "的数据!";
                            return(result);
                        }
                    }

                    switch (action.ToLower())
                    {
                    case "add":
                    {
                        var dupNameManager = db.dt_Manager.Where(a => a.user_name == userName).FirstOrDefault();

                        if (dupNameManager != null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "已存在相同名称的管理员!";
                            return(result);
                        }

                        var manager = new dt_Manager()
                        {
                            user_name  = userName,
                            real_name  = realName,
                            password   = password,
                            admin_role = role.Id,
                            add_time   = now,
                            Status     = 1
                        };

                        db.dt_Manager.Add(manager);

                        manageLog.Remarks = "新增管理员帐户:" + userName;

                        break;
                    }

                    case "edit":
                    {
                        var manager = db.dt_Manager.Find(id);

                        if (manager == null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "ID:" + id + "的管理员不存在!";
                            return(result);
                        }

                        if (!string.IsNullOrEmpty(realName))
                        {
                            manager.real_name = realName;
                        }
                        if (!string.IsNullOrEmpty(password))
                        {
                            manager.password = password;
                        }
                        if (role != null)
                        {
                            manager.admin_role = role.Id;
                        }

                        manageLog.Remarks = "修改管理员信息:" + manager.user_name + "(ID:" + manager.id + ")";

                        break;
                    }
                    }

                    db.dt_ManageLog.Add(manageLog);

                    db.SaveChanges();
                }

                result.Code    = ResultHelper.Success;
                result.StrCode = ResultHelper.SuccessMsg;

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("ManagerEdit", "ManagerEdit", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
Esempio n. 17
0
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.NotLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                var pwd      = request.Form["Password"] ?? "";
                var userName = request.Form["Username"] ?? "";

                //缺少正則檢查
                if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(pwd))
                {
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }

                //缺少已登入檢查

                using (livecloudEntities db = new Models.livecloudEntities())
                {
                    var manager = db.dt_Manager
                                  .Where(m => m.user_name == userName && m.password == pwd)
                                  .FirstOrDefault();

                    //缺少檢查管理員帳號是否已停用
                    if (manager == null) // || manager.Status != 1)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = "帐户或密码错误";
                        return(result);
                    }

                    if (manager.Status == (byte)0)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = "帐户已被停用";
                        return(result);
                    }

                    var role = db.dt_ManagerRole
                               .Where(r => r.Id == manager.admin_role)
                               .FirstOrDefault();

                    if (role == null)
                    {
                        throw new Exception("找不到 管理員ID:" + manager.id + " 對應的角色權限ID:" + manager.admin_role + " 的訊息");
                    }

                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = manager.id,
                        ManagerName = manager.user_name,
                        ActionType  = "Login",
                        AddTime     = DateTime.Now,
                        Remarks     = "登入成功",
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };
                    db.dt_ManageLog.Add(manageLog);

                    db.SaveChanges();

                    session["ManagerId"]   = manager.id;
                    session["ManagerName"] = manager.user_name;
                    session["RoleId"]      = manager.admin_role;

                    result.Code     = ResultHelper.Success;
                    result.StrCode  = "登录成功";
                    result.IsLogin  = ResultHelper.IsLogin;
                    result.BackData = new GetRoleInfoBodyData()
                    {
                        barrageManage   = role.BarrageManage.ToOnOff(),
                        AnchorList      = role.DealerList.ToOnOff(),
                        AnchorManage    = role.DealerManage.ToOnOff(),
                        AnchorPost      = role.DealerPost.ToOnOff(),
                        AnchorTable     = role.DealerTable.ToOnOff(),
                        AnchorTime      = role.DealerTime.ToOnOff(),
                        giftList        = role.GiftList.ToOnOff(),
                        giftManage      = role.GiftManage.ToOnOff(),
                        livecmsManage   = role.LiveCmsManage.ToOnOff(),
                        liveManage      = role.LiveManage.ToOnOff(),
                        manageLog       = role.ManageLog.ToOnOff(),
                        Manager         = role.Manager.ToOnOff(),
                        managerList     = role.ManagerList.ToOnOff(),
                        manualReview    = role.ManualReview.ToOnOff(),
                        roleManage      = role.RoleManage.ToOnOff(),
                        systemBarrage   = role.SystemBarrage.ToOnOff(),
                        videoList       = role.VideoList.ToOnOff(),
                        wordsManage     = role.WordsManage.ToOnOff(),
                        sentenceManage  = role.SentenceManage.ToOnOff(),
                        shieldedRecord  = role.ShieldedRecord.ToOnOff(),
                        liveNotSpeak    = role.LiveNotSpeak.ToOnOff(),
                        blackWordManage = role.BlackWordManage.ToOnOff(),
                        realTimeBarrage = role.RealTimeBarrage.ToOnOff()
                    };
                }

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("Login", "Login", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                result.IsLogin = ResultHelper.NotLogin;
                return(result);
            }
        }
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                var timeNow = DateTime.Now;
                var multiId = request.Form["ID"] ?? "";

                if (string.IsNullOrEmpty(multiId) || !(new Regex(@"^(([\d]{1,}){1}|(([\d]{1,}\,){1,}([\d]{1,}){1}))$").IsMatch(multiId)))
                {
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }

                var idList = multiId.Split(',').Select(o => Convert.ToInt32(o)).Distinct().OrderBy(o => o).ToList();

                using (var db = new livecloudEntities())
                {
                    var manager = db.dt_Manager.Find(managerId);

                    var UserBarrageNoSpeakList = db.dt_UserBarrageNoSpeak.Where(o => idList.Contains(o.id)).ToList();

                    foreach (var item in UserBarrageNoSpeakList)
                    {
                        var manageLog = new dt_ManageLog()
                        {
                            ManagerId   = managerId,
                            ManagerName = manager.user_name,
                            ActionType  = "delLiveNotSpeak",
                            AddTime     = timeNow,
                            Remarks     = "删除用戶禁言: " + item.identityid + "_" + item.UserName + "(ID:" + item.id + ")",
                            IP          = NetworkTool.GetClientIP(HttpContext.Current)
                        };
                        db.dt_ManageLog.Add(manageLog);
                    }

                    db.dt_UserBarrageNoSpeak.RemoveRange(UserBarrageNoSpeakList);

                    db.SaveChanges();
                    UpdateMsg.PostUpdate("dt_UserBarrageNoSpeak");

                    result.Code    = ResultHelper.Success;
                    result.StrCode = ResultHelper.SuccessMsg;
                }
                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("DelManager", "DelManager", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
Esempio n. 19
0
        //
        private void btnLastNext_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            SV.ScrollToVerticalOffset(1);
            Image img = sender as Image;

            if (img.Name.Equals("btnLast"))
            {
                MeetingListDate = MeetingListDate.AddMonths(-1);
            }
            else
            {
                MeetingListDate = MeetingListDate.AddMonths(1);
            }


            // 非同步POST方法
            MouseTool.ShowLoading();


            //檢查是否有網路連線
            Network.HttpRequest hr = new Network.HttpRequest();
            if (NetworkTool.CheckNetwork() > 0)
            {
                Task.Factory.StartNew(() =>
                {
                    //無快取機制
                    //GetUserData.AsyncPOST(UserID, UserPWD
                    //                          , MeetingListDate
                    //                          , (userObj, dateTime) => GetUserData_DoAction(userObj, dateTime));

                    //有快取機制
                    if (PreLoadLastNextMonthDict.ContainsKey(MeetingListDate) == true)
                    {
                        GetUserData_DoAction(PreLoadLastNextMonthDict[MeetingListDate], MeetingListDate);
                        //預載上一個月和下一個月
                        PreLoadLastNextMonth();
                    }
                    else
                    {
                        GetUserData.AsyncPOST(UserID, UserPWD
                                              , MeetingListDate
                                              , (userObj, dateTime) =>
                        {
                            GetUserData_DoAction(userObj, dateTime);
                            //預載上一個月和下一個月
                            PreLoadLastNextMonth();
                        });
                    }
                });
                //}).ContinueWith(task =>
                //{
                //    //預載上一個月
                //    //Thread.Sleep(100);
                //    //GetUserData.AsyncPOST(UserID, UserPWD
                //    //                                 , MeetingListDate.AddMonths(-1)
                //    //                                 , (userObj, dateTime) => { LastNextDict[dateTime] = userObj; });

                //}).ContinueWith(task =>
                //{
                //    //預載下一個月
                //    //Thread.Sleep(100);
                //    //GetUserData.AsyncPOST(UserID, UserPWD
                //    //                                 , MeetingListDate.AddMonths(1)
                //    //                                 , (userObj, dateTime) => { LastNextDict[dateTime] = userObj; });
                //});
            }
            else
            {
                //DB查詢日期
                DataTable dt = MSCE.GetDataTable("select UserJson from UserData where UserID =@1 and ListDate=@2"
                                                 , UserID
                                                 , DateTool.MonthFirstDate(MeetingListDate).ToString("yyyyMMdd"));

                User user = new User();
                if (dt.Rows.Count > 0)
                {
                    user = JsonConvert.DeserializeObject <User>(dt.Rows[0]["UserJson"].ToString());
                }
                else
                {
                    dt = MSCE.GetDataTable("select top 1 UserJson from UserData where UserID =@1"
                                           , UserID);

                    if (dt.Rows.Count > 0)
                    {
                        user = JsonConvert.DeserializeObject <User>(dt.Rows[0]["UserJson"].ToString());
                    }
                    user.MeetingList = new UserMeeting[0];
                }

                GetUserData_DoAction(user, MeetingListDate);
            }

            //, () => { this.Dispatcher.BeginInvoke(new Action(() => { AutoClosingMessageBox.Show("無法取得資料,請稍後再試"); })); });


            #region  步POST方法
            //User user=GetUserData.POST(UserID, UserPWD,
            //                           DateTool.MonthFirstDate(MeetingListDate).ToString("yyyyMMdd"),
            //                           DateTool.MonthLastDate(MeetingListDate).ToString("yyyyMMdd"));
            //if (user != null)
            //{
            //    if (user.MeetingList.Length < 1)
            //        txtNothing.Visibility = Visibility.Visible;
            //    InitUI(user.MeetingList, MeetingListDate);
            //    // 會議列表的上下一頁不要複寫Buton的JSON了
            //    // HomeUserButtonAryJSON = JsonConvert.SerializeObject(user.EnableButtonList);
            //}
            //else
            //{
            //    AutoClosingMessageBox.Show("無法取得資料,請稍後再試");
            //}
            #endregion

            // 先做UI,再把按鈕的JSON存下來
            string SQL     = @"update NowLogin Set MeetingListDate=@1";                         //,HomeUserButtonAryJSON=@2
            int    success = MSCE.ExecuteNonQuery(SQL, MeetingListDate.ToString("yyyy/MM/dd")); //, HomeUserButtonAryJSON);
            if (success < 1)
            {
                LogTool.Debug(new Exception(@"DB失敗: " + SQL));
            }
        }
Esempio n. 20
0
 /// <summary>
 /// 发送游戏结束的信息
 /// </summary>
 /// <param name="score"></param>
 /// <param name="time"></param>
 /// <param name="hp"></param>
 /// <param name="isWin"></param>
 public void SendGameEnd(int score, float time, int hp, bool isWin)
 {
     StartCoroutine(NetworkTool.PostJsonRequest("/push_end_info",
                                                JsonConvert.SerializeObject(new GameEndInfoDTO(score, time, hp, isWin)), result => { }));
 }
Esempio n. 21
0
 /// <summary>
 /// 发送开始游戏的信息
 /// </summary>
 public void SendStartGame()
 {
     StartCoroutine(NetworkTool.GetRequest($"/play_map/{currentMapId}", result => { }));
 }
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;
            var now     = DateTime.Now;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                string ids = request.Form["ID"] ?? "";

                if (string.IsNullOrEmpty(ids) || !regex.IsMatch(ids))
                {
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }
                ////驗證權限
                //using (var db = new livecloudEntities())
                //{
                //    var operationManager = db.dt_Manager.Find(managerId);

                //    var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                //    if (operationManagerRole.WordsManage == false)
                //    {
                //        result.Code = ResultHelper.NotAuthorized;
                //        result.StrCode = ResultHelper.NotAuthorizedMsg;
                //        return result;
                //    }
                //}


                using (var db = new livecloudEntities())
                {
                    var idList = ids.Split(',').Select(i => int.Parse(i)).ToList();

                    var query = from w in db.dt_SensitiveWords
                                where idList.Contains(w.id)
                                select w;

                    var removeList = db.dt_SensitiveWords.RemoveRange(query);

                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "delWordsManage",
                        AddTime     = now,
                        Remarks     = "删除禁用敏感字词ID:" + ids,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };

                    db.dt_ManageLog.Add(manageLog);

                    db.SaveChanges();
                    UpdateMsg.PostUpdate("dt_SensitiveWords");
                }

                result.Code    = ResultHelper.Success;
                result.StrCode = ResultHelper.SuccessMsg;

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("DelWordsManage", "DelWordsManage", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
Esempio n. 23
0
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                var now     = DateTime.Now;
                var multiId = request.Form["ID"] ?? "";

                if (string.IsNullOrEmpty(multiId) || !(new Regex(@"^(([\d]{1,}){1}|(([\d]{1,}\,){1,}([\d]{1,}){1}))$").IsMatch(multiId)))
                {
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }
                //驗證權限
                using (var db = new livecloudEntities())
                {
                    var operationManager = db.dt_Manager.Find(managerId);

                    var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                    if (operationManagerRole.RoleManage == false)
                    {
                        result.Code    = ResultHelper.NotAuthorized;
                        result.StrCode = ResultHelper.NotAuthorizedMsg;
                        return(result);
                    }
                }

                var idList = multiId.Split(',').Select(o => Convert.ToInt32(o)).Distinct().OrderBy(o => o).ToList();

                using (var db = new livecloudEntities())
                {
                    var usedRolesManagerList = db.dt_Manager.Where(m => idList.Contains(m.admin_role));

                    if (usedRolesManagerList.Count() > 0)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = "无法删除已绑定管理员之角色!";
                        return(result);
                    }

                    var delRoleList = db.dt_ManagerRole.RemoveRange(db.dt_ManagerRole.Where(o => idList.Contains(o.Id)));

                    var manager = db.dt_Manager.Find(managerId);

                    foreach (var role in delRoleList)
                    {
                        var manageLog = new dt_ManageLog()
                        {
                            ManagerId   = managerId,
                            ManagerName = manager.user_name,
                            ActionType  = "delRole",
                            AddTime     = now,
                            Remarks     = "删除角色:" + role.RoleName + "(ID:" + role.Id + ")",
                            IP          = NetworkTool.GetClientIP(HttpContext.Current)
                        };
                        db.dt_ManageLog.Add(manageLog);
                    }

                    db.dt_ManagerRole.RemoveRange(delRoleList);

                    db.SaveChanges();

                    result.Code    = ResultHelper.Success;
                    result.StrCode = ResultHelper.SuccessMsg;
                }
                //刷新腳色緩存
                //Cache.refreshRole();

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("DelRole", "DelRole", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                var action = request.Form["Type"] ?? "";

                int  id     = int.TryParse(request.Form["AnchorID"] ?? "-1", out id) ? id : -1;
                var  name   = request.Form["Name"] ?? "";
                byte sex    = byte.TryParse(request.Form["Sex"] ?? "", out sex) ? sex : (byte)255;
                byte age    = byte.TryParse(request.Form["Age"] ?? "", out age) ? age : (byte)255;
                var  city   = request.Form["City"] ?? "";
                int  height = int.TryParse(request.Form["Height"] ?? "-1", out height) ? height : -1;
                int  weight = int.TryParse(request.Form["Weight"] ?? "-1", out weight) ? weight : -1;
                var  image  = request.Form["Image"] ?? "";
                var  photo  = request.Form["Photo"] ?? "";
                var  bwh    = (request.Form["BWH"] ?? "").Replace(" ", "");
                var  now    = DateTime.Now;

                ////驗證權限
                //using (var db = new livecloudEntities())
                //{
                //    var operationManager = db.dt_Manager.Find(managerId);

                //    var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                //    if (operationManagerRole.DealerManage == false)
                //    {
                //        result.Code = ResultHelper.NotAuthorized;
                //        result.StrCode = ResultHelper.NotAuthorizedMsg;
                //        return result;
                //    }
                //}

                switch (action.ToLower())
                {
                case "add":
                {
                    if (string.IsNullOrEmpty(name) ||
                        sex > 2 || age > 250 ||
                        string.IsNullOrEmpty(city) ||
                        height < 0 || weight < 0 ||
                        bwh.Split(',').Length != 3 ||
                        string.IsNullOrEmpty(image) ||
                        string.IsNullOrEmpty(photo))
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                case "edit":
                {
                    if (id < 0 ||
                        (sex != (byte)255 && sex > 2) ||
                        (!string.IsNullOrEmpty(bwh) && bwh.Split(',').Length != 3))
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                default:
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }

                var imgName   = "";
                var photoName = "";

                if (image.Split(',').Length > 1)
                {
                    var imgUploader = new ImageUploader();
                    image = HttpUtility.UrlDecode(image.Split(',')[1].Trim()).Replace(" ", "+");
                    string jsonString = imgUploader.SaveToImageServer(image, ImageUploader.AnchorImageBaseUri);
                    imgName = JsonConvert.DeserializeObject <ImgServicesResponse>(jsonString).data.FirstOrDefault();
                }
                if (photo.Split(',').Length > 1)
                {
                    var imgUploader = new ImageUploader();
                    photo = HttpUtility.UrlDecode(photo.Split(',')[1].Trim()).Replace(" ", "+");
                    string jsonString = imgUploader.SaveToImageServer(photo, ImageUploader.AnchorImageBaseUri);
                    photoName = JsonConvert.DeserializeObject <ImgServicesResponse>(jsonString).data.FirstOrDefault();
                }



                using (var db = new livecloudEntities())
                {
                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "setAnchor",
                        AddTime     = now,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };

                    var dupNameAnchor = action.ToLower() == "add" ? db.dt_dealer.Where(a => a.dealerName == name.Trim()).FirstOrDefault() : db.dt_dealer.Where(a => a.dealerName == name.Trim() & a.id != id).FirstOrDefault();

                    if (dupNameAnchor != null)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = "已存在相同名称的主播!";
                        return(result);
                    }

                    switch (action.ToLower())
                    {
                    case "add":
                    {
                        //var dupNameAnchor = db.dt_dealer.Where(a=>a.dealerName == name.TrimEnd()).FirstOrDefault();

                        //if (dupNameAnchor != null)
                        //{
                        //    result.Code = ResultHelper.ParamFail;
                        //    result.StrCode = "已存在相同名称的主播!";
                        //    return result;
                        //}

                        var anchor = new dt_dealer()
                        {
                            dealerName  = name,
                            sex         = sex,
                            age         = age,
                            area        = city,
                            height      = height,
                            weight      = weight,
                            bwh         = bwh,
                            add_time    = now,
                            update_time = now,
                            img         = imgName,
                            img2        = photoName,
                            imgStr      = imgName,
                            img2Str     = photoName
                        };

                        db.dt_dealer.Add(anchor);

                        manageLog.Remarks = "添加主播信息:" + name;

                        break;
                    }

                    case "edit":
                    {
                        var anchor = db.dt_dealer.Find(id);

                        if (anchor == null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = ResultHelper.ParamFailMsg + " ID:" + id + "的主播不存在";
                            return(result);
                        }

                        if (!string.IsNullOrEmpty(name))
                        {
                            anchor.dealerName = name;
                        }
                        if (sex < (byte)255)
                        {
                            anchor.sex = sex;
                        }
                        if (age < (byte)255)
                        {
                            anchor.age = age;
                        }
                        if (!string.IsNullOrEmpty(city))
                        {
                            anchor.area = city;
                        }
                        if (height >= 0m)
                        {
                            anchor.height = height;
                        }
                        if (weight >= 0m)
                        {
                            anchor.weight = weight;
                        }
                        if (!string.IsNullOrEmpty(bwh))
                        {
                            anchor.bwh = bwh;
                        }
                        if (!string.IsNullOrEmpty(imgName))
                        {
                            anchor.img    = "Anchor/Image/" + imgName;
                            anchor.imgStr = imgName;
                        }
                        if (!string.IsNullOrEmpty(photoName))
                        {
                            anchor.img2    = "Anchor/Image/" + photoName;
                            anchor.img2Str = photoName;
                        }

                        anchor.update_time = now;

                        manageLog.Remarks = "修改主播信息:" + anchor.dealerName + "(ID:" + anchor.id + ")";

                        break;
                    }
                    }

                    db.dt_ManageLog.Add(manageLog);

                    db.SaveChanges();
                }

                result.Code    = ResultHelper.Success;
                result.StrCode = ResultHelper.SuccessMsg;

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("SetAnchor", "SetAnchor", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                var      action      = request.Form["Type"] ?? "";
                int      broadcastId = (int.TryParse(request.Form["BroadCastID"] ?? "", out broadcastId)) ? broadcastId : -1;
                int      liveId      = (int.TryParse(request.Form["GameID"] ?? "", out liveId)) ? liveId : -1;
                var      now         = DateTime.Now;
                DateTime startTime   = DateTime.TryParse(request.Form["StartTime"] ?? "", out startTime) ? startTime : now;
                DateTime endTime     = DateTime.TryParse(request.Form["EndTime"] ?? "", out endTime) ? endTime : now;

                var content = request.Form["Content"] ?? "";

                ////驗證權限(不確定是否為相應的欄位)
                //using (var db = new livecloudEntities())
                //{
                //    var operationManager = db.dt_Manager.Find(managerId);

                //    var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                //    if (operationManagerRole.SystemBarrage == false)
                //    {
                //        result.Code = ResultHelper.NotAuthorized;
                //        result.StrCode = ResultHelper.NotAuthorizedMsg;
                //        return result;
                //    }
                //}

                switch (action.ToLower())
                {
                case "add":
                {
                    if (liveId <= 0 || string.IsNullOrEmpty(content) || endTime <= startTime)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                case "edit":
                {
                    if (broadcastId <= 0 || string.IsNullOrEmpty(content) || endTime <= startTime)
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                default:
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }


                using (var db = new livecloudEntities())
                {
                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "setLiveBroadCast",
                        AddTime     = now,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };

                    dt_AdminBroadcastLog broadcast = null;

                    switch (action.ToLower())
                    {
                    case "add":
                    {
                        broadcast = new dt_AdminBroadcastLog()
                        {
                            LiveId        = liveId,
                            ManagerId     = managerId,
                            SendTime      = now,
                            StartTime     = startTime,
                            EndTime       = endTime,
                            Status        = (byte)1,
                            BroadcastText = content
                        };

                        db.dt_AdminBroadcastLog.Add(broadcast);

                        manageLog.Remarks = "添加广播至直播:" + liveId + ", 内容:" + content;

                        break;
                    }

                    case "edit":
                    {
                        broadcast = db.dt_AdminBroadcastLog.Find(broadcastId);

                        if (broadcast == null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = ResultHelper.ParamFailMsg + " ID:" + broadcastId + "的广播不存在";
                            return(result);
                        }

                        if (!string.IsNullOrEmpty(content))
                        {
                            broadcast.BroadcastText = content;
                        }

                        broadcast.StartTime = startTime;
                        broadcast.EndTime   = endTime;

                        manageLog.Remarks = "修改广播ID:" + broadcastId +
                                            ", 新内容:" + content;

                        break;
                    }
                    }

                    db.dt_ManageLog.Add(manageLog);

                    var rowaffected = db.SaveChanges();

                    if (rowaffected > 0)
                    {
                        try
                        {
                            using (var client = new WebClient()
                            {
                                Encoding = Encoding.UTF8
                            })
                            {
                                var broadcastModel = new
                                {
                                    Target = "",
                                    GameID = liveId.ToString("0000"),
                                    Data   = new
                                    {
                                        Type      = "BroadCast",
                                        ID        = broadcast.Id,
                                        Content   = content,
                                        StartTime = startTime.ToString("yyyy-MM-dd HH:mm:ss"),
                                        EndTime   = endTime.ToString("yyyy-MM-dd HH:mm:ss")
                                    }
                                };

                                client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
                                var data = "content=" + JsonConvert.SerializeObject(broadcastModel);

                                var response        = client.UploadString(Conf.WSUrl, "POST", data);
                                var broadcastResult = JsonConvert.DeserializeObject <Result>(response.ToString());

                                if (broadcastResult.code == 1)
                                {
                                    result.Code    = ResultHelper.Success;
                                    result.StrCode = "發送成功";
                                }
                                else
                                {
                                    result.Code    = -1;
                                    result.StrCode = "發送廣播時出錯";
                                }
                            }
                        }
                        catch (Exception te)
                        {
                            result.Code    = -1;
                            result.StrCode = "發送廣播時出錯";
                        }
                    }
                    else
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = "執行時出錯";
                    }
                }

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("setLiveBroadCast", "setLiveBroadCast", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
Esempio n. 26
0
        // 外界只能使用靜態方法取得實例
        public static SocketClient GetInstance(string _MeetingID, string _UserID, string _UserName, bool InitToSync)
        {
            bool SyncServerIsIP = false;

            IPAddress ip = default(IPAddress);

            IPAddress.TryParse(new Uri(WsTool.GetSyncServer_URL()).DnsSafeHost, out ip);
            if (IPAddress.Equals(default(IPAddress), ip) == false)
            {
                SyncServerIsIP = true;
            }



            if (SyncServerIsIP == false && NetworkTool.GetDomainNameIP(WsTool.GetSyncServer_URL(), 1000).Equals("") == true && NetworkTool.GetDomainNameIP(WsTool.GetSyncServerImp_URL(), 1000).Equals("") == true)
            {
                return(null);
            }

            // 先判斷目前有沒有實例,沒有的話才開始 lock,
            // 此次的判斷,是避免在有實例的情況,也執行 lock ,影響效能
            if (instance == null)
            {
                // 避免多執行緒可能會產生兩個以上的實例,所以 lock
                lock (thisLock)
                {
                    // lock 後,再判斷一次目前有無實例
                    // 此次的判斷,是避免多執行緒,同時通過前一次的 null == instance 判斷
                    if (instance == null)
                    {
                        Init_Instance(_MeetingID, _UserID, _UserName, InitToSync);
                    }
                    else
                    {
                        if (MeetingID.Equals(_MeetingID) == false)
                        {
                            Init_Instance(_MeetingID, _UserID, _UserName, InitToSync);
                        }
                        else
                        {
                            int i = 1;
                            while (i <= 10)
                            {
                                bool IsConnected = instance.GetIsConnected();
                                if (instance != null && IsConnected == true)
                                {
                                    break;
                                }
                                else if (i == 10)
                                {
                                    Init_Instance(_MeetingID, _UserID, _UserName, InitToSync);
                                }

                                Thread.Sleep(10);
                                i++;
                            }
                        }
                    }
                }
            }
            else
            {
                lock (thisLock)
                {
                    // lock 後,再判斷一次目前有無實例
                    // 此次的判斷,是避免多執行緒,同時通過前一次的 null == instance 判斷
                    if (instance == null)
                    {
                        Init_Instance(_MeetingID, _UserID, _UserName, InitToSync);
                    }
                    else
                    {
                        if (MeetingID.Equals(_MeetingID) == false)
                        {
                            Init_Instance(_MeetingID, _UserID, _UserName, InitToSync);
                        }
                        else
                        {
                            //if (instance.GetIsConnected() == false)
                            //    Init_Instance(_MeetingID, _UserID, _UserName, InitToSync);

                            int i = 1;
                            while (i <= 10)
                            {
                                bool IsConnected = instance.GetIsConnected();
                                if (instance != null && IsConnected == true)
                                {
                                    break;
                                }
                                else if (i == 10)
                                {
                                    Init_Instance(_MeetingID, _UserID, _UserName, InitToSync);
                                }

                                Thread.Sleep(10);
                                i++;
                            }
                        }
                    }
                }
            }

            //Thread.Sleep(100);
            return(instance);
        }
Esempio n. 27
0
        private void GetNewMeeting_DoAction(string dataString)
        {
            // 先判斷是否要invoke
            if (this.Dispatcher.CheckAccess() == false)
            {
                // 這裡是下載事件處理,優先權設定為ContextIdle => 列舉值為 3。 幕後作業完成後,會處理作業。
                this.Dispatcher.BeginInvoke(new Action <string>(GetNewMeeting_DoAction), dataString);
            }
            else
            {
                try
                {
                    string    CourseOrMeeting_String = PaperLess_Emeeting.Properties.Settings.Default.CourseOrMeeting_String;
                    XDocument xml   = null;
                    string    State = "";
                    try
                    {
                        xml   = XDocument.Parse(dataString);
                        State = xml.Element("User").Attribute("State").Value.Trim();
                    }
                    catch (Exception ex)
                    {
                        LogTool.Debug(ex);
                    }
                    switch (State)
                    {
                    case "0":
                        string   NewAddMeetingID = xml.Element("User").Element("MeetingData").Attribute("ID").Value.Trim();
                        string   BeginTime       = xml.Element("User").Element("MeetingData").Attribute("BeginTime").Value.Trim();
                        DateTime date            = DateTime.Now;
                        bool     IsValid         = DateTime.TryParse(BeginTime, out date);
                        if (IsValid == false)
                        {
                            date = DateTime.Now;
                        }
                        // 先做UI,再把按鈕的JSON存下來
                        //string SQL = @"update NowLogin Set MeetingListDate=@1,NewAddMeetingID=@2";//,HomeUserButtonAryJSON=@2
                        //int success = MSCE.ExecuteNonQuery(SQL, date.ToString("yyyy/MM/dd"),NewAddMeetingID);//, HomeUserButtonAryJSON);
                        //if (success < 1)
                        //    LogTool.Debug(new Exception(@"DB失敗: " + SQL));
                        this.NewAddMeetingID = NewAddMeetingID;
                        // 非同步POST方法
                        MouseTool.ShowLoading();
                        //GetUserData.AsyncPOST(UserID, UserPWD
                        //   , date
                        //   , (userObj, dateTime) => GetUserData_DoAction(userObj, dateTime));

                        if (NetworkTool.CheckNetwork() > 0)
                        {
                            GetUserData.AsyncPOST(UserID, UserPWD
                                                  , date
                                                  , (userObj, dateTime) => GetUserData_DoAction(userObj, dateTime));
                        }
                        else
                        {
                            //DB查詢日期
                            DataTable dt = MSCE.GetDataTable("select UserJson from UserData where UserID =@1 and ListDate=@2"
                                                             , UserID
                                                             , DateTool.MonthFirstDate(MeetingListDate).ToString("yyyyMMdd"));

                            User user = new User();
                            if (dt.Rows.Count > 0)
                            {
                                user = JsonConvert.DeserializeObject <User>(dt.Rows[0]["UserJson"].ToString());
                            }
                            else
                            {
                                dt = MSCE.GetDataTable("select top 1 UserJson from UserData where UserID =@1"
                                                       , UserID);

                                if (dt.Rows.Count > 0)
                                {
                                    user = JsonConvert.DeserializeObject <User>(dt.Rows[0]["UserJson"].ToString());
                                }
                                user.MeetingList = new UserMeeting[0];
                            }

                            GetUserData_DoAction(user, MeetingListDate);
                        }

                        AutoClosingMessageBox.Show(string.Format("成功加入{0}", CourseOrMeeting_String));

                        //重整列表
                        break;

                    case "1":
                        //AutoClosingMessageBox.Show(string.Format("該機關非{0}人員", CourseOrMeeting_String));
                        AutoClosingMessageBox.Show(string.Format("本{0}未邀請貴機關單位參與", CourseOrMeeting_String));
                        //AutoClosingMessageBox.Show("該機關非與會人員");
                        break;

                    case "2":
                        AutoClosingMessageBox.Show("已加入過");
                        break;

                    case "3":
                        AutoClosingMessageBox.Show(string.Format("{0}不存在", CourseOrMeeting_String));
                        break;

                    case "4":
                        AutoClosingMessageBox.Show(string.Format("{0}尚未發佈", CourseOrMeeting_String));
                        break;

                    case "5":
                        AutoClosingMessageBox.Show("無此使用者");
                        break;

                    case "6":
                        AutoClosingMessageBox.Show("加入失敗");
                        break;

                    case "7":
                        AutoClosingMessageBox.Show("機密會議");
                        break;

                    case "8":
                        AutoClosingMessageBox.Show("會議已取消");
                        break;

                    default:
                        AutoClosingMessageBox.Show("新增錯誤,請聯絡系統管理人員");
                        break;
                    }
                }
                catch (Exception ex)
                {
                    AutoClosingMessageBox.Show("新增錯誤,請聯絡系統管理人員");
                    LogTool.Debug(ex);
                }
                txtPinCode.Text = "";
                MouseTool.ShowArrow();
            }
        }
Esempio n. 28
0
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                var action  = request.Form["Type"] ?? "";
                var content = request.Form["Content"] ?? "";
                var remark  = request.Form["Remark"] ?? "";
                int id      = int.TryParse(request.Form["ID"] ?? "", out id) ? id : -1;
                var now     = DateTime.Now;

                switch (action.ToLower())
                {
                case "add":
                {
                    if (string.IsNullOrEmpty(content))
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                case "edit":
                {
                    if (id <= 0 ||
                        string.IsNullOrEmpty(content))
                    {
                        result.Code    = ResultHelper.ParamFail;
                        result.StrCode = ResultHelper.ParamFailMsg;
                        return(result);
                    }
                    break;
                }

                default:
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }

                using (var db = new livecloudEntities())
                {
                    ////驗證權限(不確定是否為相應的欄位)
                    //var operationManager = db.dt_Manager.Find(managerId);

                    //var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                    //if (operationManagerRole.SystemBarrage == false)
                    //{
                    //    result.Code = ResultHelper.NotAuthorized;
                    //    result.StrCode = ResultHelper.NotAuthorizedMsg;
                    //    return result;
                    //}

                    var manageLog = new dt_ManageLog()
                    {
                        ManagerId   = managerId,
                        ManagerName = db.dt_Manager.Find(managerId).user_name,
                        ActionType  = "setSystemBarrage",
                        AddTime     = now,
                        IP          = NetworkTool.GetClientIP(HttpContext.Current)
                    };

                    switch (action.ToLower())
                    {
                    case "add":
                    {
                        var dupContent = db.dt_SystemBarrage.Where(s => s.content == content).FirstOrDefault();

                        if (dupContent != null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "已存在相同内容的系统弹幕!";
                            return(result);
                        }

                        var totalCount = db.dt_SystemBarrage.Count();

                        if (totalCount >= Conf.MaxSystemBarrageCount)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = "系统弹幕已达" + Conf.MaxSystemBarrageCount.ToString() + "条,无法继续添加!";
                            return(result);
                        }

                        var sysBarrage = new dt_SystemBarrage()
                        {
                            content     = content,
                            add_time    = now,
                            update_time = now,
                            state       = (byte)1,
                            times       = 0,
                            operUser    = db.dt_Manager.Find(managerId).user_name,
                            Remark      = remark
                        };

                        db.dt_SystemBarrage.Add(sysBarrage);

                        manageLog.Remarks = "添加系统弹幕:" + content;

                        break;
                    }

                    case "edit":
                    {
                        var sysBarrage = db.dt_SystemBarrage.Find(id);

                        if (sysBarrage == null)
                        {
                            result.Code    = ResultHelper.ParamFail;
                            result.StrCode = ResultHelper.ParamFailMsg + " ID:" + id + "的系统弹幕不存在";
                            return(result);
                        }

                        sysBarrage.content     = content;
                        sysBarrage.update_time = now;
                        sysBarrage.operUser    = db.dt_Manager.Find(managerId).user_name;
                        if (!string.IsNullOrEmpty(remark))
                        {
                            sysBarrage.Remark = remark;
                        }

                        manageLog.Remarks = "修改系统弹幕:" + content + "(ID:" + sysBarrage.id + ")";

                        break;
                    }
                    }

                    db.dt_ManageLog.Add(manageLog);

                    db.SaveChanges();
                }

                result.Code    = ResultHelper.Success;
                result.StrCode = ResultHelper.SuccessMsg;

                return(result);
            }
            catch (DbUpdateException ex)
            {
                Log.Info("SetSystemBarrage", "SetSystemBarrage", ex.InnerException.Message.ToString());
                result.Code    = ResultHelper.ParamFail;
                result.StrCode = "已有重复的内容,请刷新页面";
                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("SetSystemBarrage", "SetSystemBarrage", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }
Esempio n. 29
0
        void Run(object obj)
        {
            var server = obj as Socket;

            if (server != null)
            {
                #region SocketConnected
                SocketConnected?.Invoke(this, new SocketEventArgs(server));
                #endregion

                var lstResponse = new List <byte>();
                var prev        = DateTime.Now;
                var chr         = new Chattering()
                {
                    ChatteringTime = DisconnectCheckTime
                };

                var bDLE      = false;
                var bValid    = false;
                var IsThStart = true;

                chr.StateChanged += (o, s) => { if (!s.Value)
                                                {
                                                    IsThStart = false;
                                                }
                };
                while (IsThStart)
                {
                    try
                    {
                        #region DataRead
                        while (server.Available > 0)
                        {
                            try
                            {
                                int n = server.Receive(baResponse);
                                for (int i = 0; i < n; i++)
                                {
                                    var d = baResponse[i];
                                    var v = d;

                                    if (bDLE)
                                    {
                                        bDLE = false;
                                        if (v >= 0x10)
                                        {
                                            v -= 0x10;
                                        }
                                        else
                                        {
                                            bValid = false;
                                        }
                                    }

                                    switch (d)
                                    {
                                        #region STX
                                    case 0x02:
                                        lstResponse.Clear();
                                        bValid = true;
                                        break;

                                        #endregion
                                        #region ETX
                                    case 0x03:
                                    {
                                        if (bValid)
                                        {
                                            if (lstResponse.Count >= 3)
                                            {
                                                var sum = (byte)(lstResponse.GetRange(0, lstResponse.Count - 1).Select(x => (int)x).Sum() & 0xFF);
                                                if (sum == lstResponse[lstResponse.Count - 1])
                                                {
                                                    byte   slave = lstResponse[0];
                                                    byte   cmd   = lstResponse[1];
                                                    string msg   = MessageEncoding.GetString(lstResponse.ToArray(), 2, lstResponse.Count - 3);

                                                    if (MessageRequest != null)
                                                    {
                                                        var args = new MessageRequestArgs(slave, cmd, msg);
                                                        MessageRequest.Invoke(this, args);

                                                        if (!string.IsNullOrEmpty(args.ResponseMessage))
                                                        {
                                                            server.Send(TextComm.MakePacket(MessageEncoding, slave, cmd, args.ResponseMessage));
                                                        }
                                                    }
                                                }
                                            }
                                        }

                                        bValid = false;
                                        bDLE   = false;
                                        lstResponse.Clear();
                                    }
                                    break;

                                        #endregion
                                        #region DLE
                                    case 0x10:
                                        bDLE = true;
                                        break;

                                        #endregion
                                        #region Default
                                    default:
                                        lstResponse.Add(v);
                                        break;
                                        #endregion
                                    }
                                }
                            }
                            catch (TimeoutException) { }
                            prev = DateTime.Now;
                        }
                        #endregion

                        #region Buffer Clear
                        if ((DateTime.Now - prev).TotalMilliseconds >= 50 && lstResponse.Count > 0)
                        {
                            lstResponse.Clear();
                        }
                        #endregion

                        chr.Set(NetworkTool.IsSocketConnected(server));
                    }
                    catch (SocketException ex)
                    {
                        if (ex.SocketErrorCode == SocketError.TimedOut)
                        {
                        }
                        else if (ex.SocketErrorCode == SocketError.ConnectionReset)
                        {
                        }
                        else if (ex.SocketErrorCode == SocketError.ConnectionAborted)
                        {
                            IsThStart = false;
                        }
                    }
                    catch { }
                    Thread.Sleep(10);
                }

                #region Socket Closed
                if (server.Connected)
                {
                    server.Close();
                }
                SocketDisconnected?.Invoke(this, new SocketEventArgs(server));
                #endregion
            }
        }
Esempio n. 30
0
        public ResultInfoT <object> Post()
        {
            var result = new ResultInfoT <object>()
            {
                IsLogin = ResultHelper.IsLogin
            };
            var request = HttpContext.Current.Request;
            var session = HttpContext.Current.Session;

            try
            {
                int managerId = (int)(session["ManagerId"] ?? -1);

                if (managerId < 0)
                {
                    // 缺少Log紀錄
                    result.Code    = ResultHelper.NotAuthorized;
                    result.StrCode = ResultHelper.NotLoginMsg;
                    result.IsLogin = ResultHelper.NotLogin;
                    return(result);
                }

                var now     = DateTime.Now;
                var multiId = request.Form["ID"] ?? "";

                if (string.IsNullOrEmpty(multiId) || !(new Regex(@"^(([\d]{1,}){1}|(([\d]{1,}\,){1,}([\d]{1,}){1}))$").IsMatch(multiId)))
                {
                    result.Code    = ResultHelper.ParamFail;
                    result.StrCode = ResultHelper.ParamFailMsg;
                    return(result);
                }
                ////驗證權限
                using (var db = new livecloudEntities())
                {
                    var operationManager = db.dt_Manager.Find(managerId);

                    var operationManagerRole = Cache.Role.Where(o => o.Id == operationManager.admin_role).FirstOrDefault();

                    if (operationManagerRole.AllowIp == false)
                    {
                        result.Code    = ResultHelper.NotAuthorized;
                        result.StrCode = ResultHelper.NotAuthorizedMsg;
                        return(result);
                    }
                }

                var idList = multiId.Split(',').Select(o => Convert.ToInt32(o)).Distinct().OrderBy(o => o).ToList();

                using (var db = new livecloudEntities())
                {
                    var delAllowIpList = db.dt_AllowAccessIPList.Where(o => idList.Contains(o.Id)).ToList();

                    var manager = db.dt_Manager.Find(managerId);

                    bool ipDicSingal = false;

                    if (delAllowIpList.Count > 0)
                    {
                        foreach (var allowIp in delAllowIpList)
                        {
                            var manageLog = new dt_ManageLog()
                            {
                                ManagerId   = managerId,
                                ManagerName = manager.user_name,
                                ActionType  = "delAllowIp",
                                AddTime     = now,
                                Remarks     = "删除IP:" + allowIp.Ip + "(ID:" + allowIp.Id + ")",
                                IP          = NetworkTool.GetClientIP(HttpContext.Current)
                            };
                            db.dt_ManageLog.Add(manageLog);

                            ipDicSingal = apiController.RemoveIpList(allowIp.Ip);

                            if (!ipDicSingal)
                            {
                                break;
                            }
                        }

                        db.dt_AllowAccessIPList.RemoveRange(delAllowIpList);

                        if (ipDicSingal)
                        {
                            db.SaveChanges();
                        }
                        else
                        {
                            result.Code    = ResultHelper.ExecutingError;
                            result.StrCode = ResultHelper.ExecutingErrorMsg;
                            return(result);
                        }
                    }

                    result.Code    = ResultHelper.Success;
                    result.StrCode = ResultHelper.SuccessMsg;
                }

                return(result);
            }
            catch (Exception ex)
            {
                Log.Error("DelAnchor", "DelAnchor", ex.Message.ToString());
                result.Code    = ResultHelper.ExecutingError;
                result.StrCode = ResultHelper.ExecutingErrorMsg;
                return(result);
            }
        }