Beispiel #1
0
        /// <summary>
        /// 刷新Token并添加到返回数据中
        /// </summary>
        /// <param name="context"></param>
        /// <param name="response"></param>
        private void AddRefreshToken(HttpContext context, MResponse response)
        {
            Endpoint endpoint = context.GetEndpoint();
            // 检查请求接口标注的特性
            bool isPersona = endpoint?.Metadata.GetMetadata <PersonaAttribute>() != null;
            bool isUser    = endpoint?.Metadata.GetMetadata <UserAttribute>() != null;
            // 获取用户发送的cookie
            string token = context.Request.Headers["srlab_token"];

            // 请求不需认证的接口,返回原Token
            if (!isPersona && !isUser)
            {
                if (!string.IsNullOrWhiteSpace(token))
                {
                    response.Token = token;
                }
                return;
            }

            if (string.IsNullOrWhiteSpace(_currentUser?.PlatformID))
            {
                response.Token = null;
                return;
            }
            _currentUser.Token = token;
            response.Token     = RefreshToken();
        }
Beispiel #2
0
        public override void OnResultExecuting(ResultExecutingContext context)
        {
            // 统一出参格式
            MResponse response = new MResponse();

            if (context.Result is EmptyResult)
            {
                response = MResponse.Success();
            }
            else if (context.Result is ObjectResult obj)
            {
                if (obj.DeclaredType == typeof(MResponse))
                {
                    response = (MResponse)obj.Value;
                }
                else
                {
                    // 出参类型不为MResponse时,将出参赋值给MResponse.Data再返回
                    response = obj.Value.Success();
                }
            }

            // 统一刷新返回Token
            AddRefreshToken(context.HttpContext, response);

            context.Result = new ObjectResult(response);
            base.OnResultExecuting(context);
        }
Beispiel #3
0
        private void AddProject(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "projects.add"))
            {
                return;
            }

            try
            {
                using (var db = new DatabaseContext())
                {
                    var MPorject = Package.Unpacking <Project>(ClientResponse.DataBytes);
                    MPorject.UserId = Users.GetUserById(NetworkClient.Id).Id;

                    db.Projects.Attach(MPorject);
                    db.SaveChanges();

                    if (AccessController.IsPrivilege(NetworkClient, "edit_project"))
                    {
                        Sender.Broadcast("Project.Add.Confirm", MPorject);
                    }
                }
            }
            catch (DbException ex)
            {
            }
        }
        private void HistoryGetAll(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "requests.history"))
            {
                return;
            }

            try
            {
                var ProjectId = Package.Unpacking <int>(ClientResponse.DataBytes);

                using (var db = new DatabaseContext())
                {
                    WebRequestHistory[] DbHistory = db.WebRequestsHistory.Where(x => x.ProjectId == ProjectId).ToArray();

                    if (DbHistory.Length != 0)
                    {
                        Sender.Send(NetworkClient, "RequestsHistory.GetAll.Confirm", DbHistory);
                    }
                }
            }
            catch (DbException ex)
            {
                Debug.LogError("Возникло исключение при получении истории запросов с сервера. Код ошибки: " + ex);
            }
        }
Beispiel #5
0
        private void DeleteUser(HttpContext context)
        {
            mrequest      = new MRequest();
            mrequest.User = new UserInfo();

            mrequest.User.Hospital = context.Request.Form["Hospital"];
            mrequest.User.UserId   = Convert.ToInt32(context.Request.Form["UId"]);
            mresponse = new UserManagementService().DeleteAccount(mrequest);
            var users        = mresponse.users;
            var totalRecords = users.Count;
            var renderHtml   = createFelxiJson(context, users, totalRecords);

            switch (mresponse.acknowledge)
            {
            case AcknowledgeType.Success:
                context.Response.Write(renderHtml);
                break;

            case AcknowledgeType.Failure:

                break;

            default:
                break;
            }
        }
Beispiel #6
0
        private void AddNewUser(HttpContext context)
        {
            mrequest                   = new MRequest();
            mrequest.User              = new UserInfo();
            mrequest.User.Email        = context.Request.Form["Email"];
            mrequest.User.Password     = context.Request.Form["Password"];
            mrequest.User.UserName     = context.Request.Form["Name"];
            mrequest.User.MobileNumber = context.Request.Form["MobNumber"];
            mrequest.User.Hospital     = context.Request.Form["Hospital"];
            mresponse                  = new UserManagementService().InsertAccounts(mrequest);
            var users        = mresponse.users;
            var totalRecords = users.Count;
            var renderHtml   = createFelxiJson(context, users, totalRecords);

            switch (mresponse.acknowledge)
            {
            case AcknowledgeType.Success:
                context.Response.Write(renderHtml);
                break;

            case AcknowledgeType.Failure:

                break;

            default:
                break;
            }
            //context.Response.Write(new JavaScriptSerializer().Serialize(new
            //{
            //    success = true,
            //    message = "Record saved",
            //    data = renderHtml
            //}));
        }
Beispiel #7
0
        /// <summary>
        /// 添加SR基础数据
        /// </summary>
        /// <returns></returns>
        public async Task <MResponse> AsyncSRData()
        {
            MRankInfo srRankInfo = (await _steamBLL.GetRankScore(new[] { CurrentUser.RankID })).FirstOrDefault();

            if (srRankInfo == null)
            {
                bool hasSR = (await _steamBLL.GetOwnedGames(CurrentUser.PlatformID))?.OwnedGames?.Any(x => x.AppId == 207140) ?? false;
                if (!hasSR)
                {
                    return(MResponse.Fail("此账号尚未拥有SpeedRunners游戏"));
                }
                srRankInfo.RankType = 2;
            }
            else
            {
                srRankInfo.RankType     = 1;
                srRankInfo.OldRankScore = srRankInfo.RankScore;
            }
            BeginDb(DAL =>
            {
                DAL.UpdateRankInfo(srRankInfo, true);
                if (DAL.ExistRankLog(CurrentUser.PlatformID))
                {
                    return;
                }
                // 添加RankLog
                MRankLog rankLog = new MRankLog
                {
                    PlatformID = CurrentUser.PlatformID,
                    RankScore  = srRankInfo.RankScore.Value,
                };
                DAL.AddRankLog(rankLog);
            });
            return(MResponse.Success());
        }
Beispiel #8
0
        private void ChatMessagesGetAll(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "projects.chat"))
            {
                return;
            }

            try
            {
                int ProjectId = Package.Unpacking <int>(ClientResponse.DataBytes);

                using (var db = new DatabaseContext())
                {
                    Chat[] ChatMessages = db.Chats.Where(x => x.ProjectId == ProjectId).ToArray();

                    if (ChatMessages.Length != 0)
                    {
                        List <ModelChatMessage> mChatMessages = new List <ModelChatMessage>();

                        foreach (var Message in ChatMessages)
                        {
                            mChatMessages.Add(GetModelMessage(db, Message));
                        }

                        Sender.Send(NetworkClient, "Chat.Messages.GetAll.Confirm", mChatMessages.ToArray());
                    }
                }
            }
            catch (DbException ex)
            {
                Debug.LogError("Возникло исключение при получении списка сообщений. Код ошибки:\n" + ex);

                Sender.Send(NetworkClient, "Chat.Messages.GetAll.Error");
            }
        }
Beispiel #9
0
        private void AccessGetAll(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "teams.access"))
            {
                return;
            }

            try
            {
                int TeamId = Package.Unpacking <int>(ClientResponse.DataBytes);

                using (var db = new DatabaseContext())
                {
                    var DbTeamPrivileges = db.TeamPrivileges.Where(x => x.TeamGroupId == TeamId).ToArray();

                    Debug.Log($"Получен список прав доступа в количестве {DbTeamPrivileges.Length} записей.", ConsoleColor.Magenta);

                    Sender.Send(NetworkClient, "Team.Access.GetAll.Confirm",
                                DbTeamPrivileges, ClientResponse.WindowUid);
                }
            }
            catch (DbException ex)
            {
                Debug.LogError("Возникло исключение при получении списка прав доступа. Код ошибки:\n" + ex);
                Sender.Send(NetworkClient, "Team.Access.GetAll.Error");
            }
        }
Beispiel #10
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            redirectUrl = "~/Recorded/Default.aspx";
            string userName = txtUserName.Text;
            string password = txtPassword.Text;

            request      = new MRequest();
            request.User = new UserInfo {
                UserName = userName, Password = password
            };

            response = new UserManagementService().ValidateLogIn(request);
            if (response.LoginUser.IsValidUser)
            {
                SessionHandler.UserName = userName;
                SessionHandler.Hospital = response.LoginUser.Hospital;
                if (response.LoginUser.IsAdmin == 1)
                {
                    SessionHandler.AdminUser = "******";
                }
                else
                {
                    SessionHandler.AdminUser = "******";
                }
                Response.Redirect(redirectUrl);
                spnLogIn.Style["display"]       = "block";
                spnInvalidUser.Style["display"] = "none";
            }
            else
            {
                spnInvalidUser.InnerText        = "Invalid User/Password";
                spnInvalidUser.Style["display"] = "block";
                spnLogIn.Style["display"]       = "none";
            }
        }
Beispiel #11
0
        private void GetTeamProjects(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "projects"))
            {
                return;
            }

            try
            {
                using (var db = new DatabaseContext())
                {
                    var TeamGroups = db.TeamGroups.ToArray();

                    Debug.Log($"Получен список команд из базы данных в количестве {TeamGroups.Length} записей.", ConsoleColor.Magenta);

                    var MProject   = Package.Unpacking <Project>(ClientResponse.DataBytes);
                    var DbProjects = db.TeamProjects.Where(t => t.ProjectId == MProject.Id).ToArray();

                    Debug.Log($"Получен список проектов и команд из базы данных в количестве {DbProjects.Length} записей.", ConsoleColor.Magenta);

                    Sender.Send(NetworkClient, "TeamProject.Get",
                                DbConvertToWpf.ConvertTeamProjectCompilation(TeamGroups, DbProjects), ClientResponse.WindowUid);
                }
            }
            catch (DbException ex)
            {
                Debug.LogError("Возникла ошибка при получении списка проектов и команд из базы данных! Код ошибки:\n" + ex);

                Sender.Send(NetworkClient, "TeamProject.Get.Error");
            }
        }
Beispiel #12
0
        private void UsersGetAll(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "users"))
            {
                return;
            }

            try
            {
                using (var db = new DatabaseContext())
                {
                    var DbUsers = db.Users.ToArray();
                    var WUsers  = DbConvertToWpf.ConvertUser(DbUsers);

                    if (AccessController.IsPrivilege(NetworkClient, "users"))
                    {
                        Sender.Send(NetworkClient, "Users.GetAll.Confirm", WUsers);
                    }
                }
            }
            catch (DbException ex)
            {
                Debug.LogError("Возникло исключение при получении списка пользователей. Код ошибки:\n" + ex);
                Sender.Send(NetworkClient, "Users.GetAll.Error");
            }
        }
Beispiel #13
0
        private void WebRequestDirSaver(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "requests.add"))
            {
                return;
            }

            var WebRequestDirItem = Package.Unpacking <WebRequestDir>(ClientResponse.DataBytes);

            using (var db = new DatabaseContext())
            {
                db.Attach(WebRequestDirItem);
                db.SaveChanges();

                Sender.Broadcast("WebRequestDir.Save.Confirm", WebRequestDirItem, ClientResponse.WindowUid);

                WebRequestItem WebRequestItem =
                    db.WebRequestItems.FirstOrDefault(x => x.Id == WebRequestDirItem.WebRequestItemId);

                MBinding_WebRequest MBinding = new MBinding_WebRequest();
                MBinding.Item      = WebRequestItem;
                MBinding.Params    = db.WebRequestParamsItems.Where(x => x.WebRequestItemId == WebRequestItem.Id).ToArray();
                MBinding.Directory = WebRequestDirItem;

                Sender.Broadcast("WebRequestItem.MBinding_WebRequest.Add", MBinding);
            }
        }
Beispiel #14
0
        private void WebRequestBindingGet(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "requests"))
            {
                return;
            }

            int ProjectId = Package.Unpacking <int>(ClientResponse.DataBytes);

            using (var db = new DatabaseContext())
            {
                List <MBinding_WebRequest> MB_WebRequests = new List <MBinding_WebRequest>();

                WebRequestItem[] WebRequestItems =
                    db.WebRequestItems.Where(x => x.ProjectId == ProjectId).ToArray();

                foreach (var RequestItem in WebRequestItems)
                {
                    MBinding_WebRequest ListItem = new MBinding_WebRequest();
                    ListItem.Item      = RequestItem;
                    ListItem.Params    = db.WebRequestParamsItems.Where(x => x.WebRequestItemId == RequestItem.Id).ToArray();
                    ListItem.Directory = db.WebRequestDirs.FirstOrDefault(x => x.WebRequestItemId == RequestItem.Id);

                    MB_WebRequests.Add(ListItem);
                }

                Sender.Send(NetworkClient, "WebRequestItem.MBinding_WebRequest.Get",
                            MB_WebRequests.ToArray(), ClientResponse.WindowUid);
            }
        }
Beispiel #15
0
        private void WebRequestDirHistoryEdit(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            var RequestHistory = Package.Unpacking <WebRequestHistory>(ClientResponse.DataBytes);

            using (var db = new DatabaseContext())
            {
                ModelRequestDirectory RequestDir = new ModelRequestDirectory();
                RequestDir.RequestMethod = RequestHistory.Method;
                RequestDir.RequestTitle  = RequestHistory.Title;
                RequestDir.WebRequestId  = RequestHistory.WebRequestItemId;

                WebRequestDir WebDir = db.WebRequestDirs.FirstOrDefault(x => x.WebRequestItemId == RequestHistory.WebRequestItemId);
                RequestDir.Id    = WebDir.Id;
                RequestDir.Title = WebDir.Title;

                Debug.Log($"\r\nId - {RequestDir.Id}\n" +
                          $"RequestMethod - {RequestDir.RequestMethod}\n" +
                          $"RequestTitle - {RequestDir.RequestTitle}\n" +
                          $"Title - {RequestDir.Title}\n" +
                          $"WebRequestId - {RequestDir.WebRequestId}\r\n");

                Sender.Broadcast("WebRequestDir.History.Edit.Confirm",
                                 RequestDir, ClientResponse.WindowUid);
            }
        }
        public void PageLoadSearchRecords(HttpContext context)
        {
            //string hospital = SessionHandler.Hospital.ToString();
            // mrequest.User = new UserInfo { Hospital = hospital };
            string hospital = context.Request.Form["Hospital"];

            mresponse = new SearchRecordsService().SearchRecords(hospital);
            var records      = mresponse.records;
            int totalRecords = mresponse.records.Count;

            var renderHtml = createFlexiJson(context, records, totalRecords);

            switch (mresponse.acknowledge)
            {
            case AcknowledgeType.Success:
                context.Response.Write(renderHtml);
                break;

            case AcknowledgeType.Failure:
                break;

            default:
                break;
            }
        }
Beispiel #17
0
        private void GetTeamUsers(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "teams"))
            {
                return;
            }

            try
            {
                using (var db = new DatabaseContext())
                {
                    var UsersDb = db.Users.ToArray();

                    Debug.Log($"Получен список пользователей из базы данных в количестве {UsersDb.Length} записей.", ConsoleColor.Magenta);

                    var TGroup      = Package.Unpacking <TeamGroup>(ClientResponse.DataBytes);
                    var TeamUsersDb = db.TeamUsers.Where(t => t.TeamGroupId == TGroup.Id).ToArray();

                    Debug.Log($"Получен список команд и пользователей из базы данных в количестве {TeamUsersDb.Length} записей.", ConsoleColor.Magenta);

                    Sender.Send(NetworkClient, "TeamUser.Get",
                                DbConvertToWpf.ConvertTeamUserCompilation(UsersDb, TeamUsersDb), ClientResponse.WindowUid);
                }
            }
            catch (DbException ex)
            {
                Debug.LogError("Возникла ошибка при получении списка пользователей из базы данных! Код ошибки:\n" + ex);

                Sender.Send(NetworkClient, "TeamUser.Get.Error");
            }
        }
Beispiel #18
0
        public MResponse UpdateReqStatus(RequisitionVM status)
        {
            bool      success  = new RequestDAO().UpdateStatus(status.Status, status.Id);
            MResponse response = new MResponse(success);

            return(response);
        }
        private void AddHistoryItem(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "requests.history.add"))
            {
                return;
            }

            try
            {
                var WebRequestHistoryItem = Package.Unpacking <WebRequestHistory>(ClientResponse.DataBytes);

                using (var db = new DatabaseContext())
                {
                    if (WebRequestHistoryItem != null)
                    {
                        db.WebRequestsHistory.Add(WebRequestHistoryItem);
                        db.SaveChanges();

                        Sender.Send(NetworkClient, "RequestsHistory.Add.Confirm", WebRequestHistoryItem);
                    }
                }
            }
            catch (DbException ex)
            {
                Debug.LogError("Возникло исключение при добавлении объекта истории в базу данных. Код ошибки: " + ex);
            }
        }
Beispiel #20
0
        public MResponse UpdateCollectionPoint(int pointId, string deptId)
        {
            bool      success  = new CollectionPointDAO().UpdateCollectionPoint(pointId, deptId);
            MResponse response = new MResponse(success);

            return(response);
        }
Beispiel #21
0
        private void ChatMessagesNew(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "projects.chat"))
            {
                return;
            }

            try
            {
                var PreMessage = Package.Unpacking <Chat>(ClientResponse.DataBytes);

                using (var db = new DatabaseContext())
                {
                    PreMessage.UserId = Users.GetUserById(NetworkClient.Id).Id;
                    PreMessage.Date   = DateTime.Now;

                    db.Chats.Add(PreMessage);
                    db.SaveChanges();

                    Sender.Broadcast("Chat.Messages.New.Confirm", GetModelMessage(db, PreMessage));
                }
            }
            catch (DbException ex)
            {
                Debug.LogError("Возникло исключение при добавлении нового сообщения. Код ошибки:\n" + ex);

                Sender.Send(NetworkClient, "Chat.Messages.New.Error");
            }
        }
        private void WebRequestParamsUpdate(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "requests.edit"))
            {
                return;
            }

            try
            {
                var RequestParamsItems = Package.Unpacking <MBinding_WebRequestSaver>(ClientResponse.DataBytes);

                using (var db = new DatabaseContext())
                {
                    var DbRequestParamsItems = new List <WebRequestParamsItem>();

                    foreach (var RequestParamsItem in RequestParamsItems.Params)
                    {
                        WebRequestParamsItem DbRequestParam = db.WebRequestParamsItems.FirstOrDefault
                                                                  (x => x.Id == RequestParamsItem.Id);

                        if (DbRequestParam != null)
                        {
                            DbRequestParam.Key         = RequestParamsItem.Key;
                            DbRequestParam.Value       = RequestParamsItem.Value;
                            DbRequestParam.Description = RequestParamsItem.Description;
                            db.SaveChanges();
                            DbRequestParamsItems.Add(DbRequestParam);
                        }
                        else
                        {
                            //if (db.WebRequestParamsItems.FirstOrDefault(x => x.Key == RequestParamsItem.Key) == null)
                            //{
                            DbRequestParam                  = RequestParamsItem;
                            DbRequestParam.Key              = (DbRequestParam.Key != null) ? DbRequestParam.Key : "";
                            DbRequestParam.Value            = (DbRequestParam.Value != null) ? DbRequestParam.Value : "";
                            DbRequestParam.Description      = (DbRequestParam.Description != null) ? DbRequestParam.Description : "";
                            DbRequestParam.WebRequestItemId = RequestParamsItems.Item.Id;

                            if (DbRequestParam.Key.Trim() != string.Empty || DbRequestParam.Value.Trim() != string.Empty)
                            {
                                db.WebRequestParamsItems.Add(DbRequestParam);
                                db.SaveChanges();
                                DbRequestParamsItems.Add(DbRequestParam);
                            }
                            //}
                        }
                    }

                    if (DbRequestParamsItems.Count != 0)
                    {
                        Sender.Broadcast("WebRequestParamsItem.Update.Confirm", DbRequestParamsItems.ToArray());
                    }
                }
            }
            catch (DbException ex)
            {
                Sender.Send(NetworkClient, "WebRequestParamsItem.Update.Error");
            }
        }
Beispiel #23
0
        public static bool SendToServer(string KeyNetwork, object DataObject = null, int WindowUid = -1)
        {
            try
            {
                Debug.Log("Подготовка запроса для отправки на сервер. Информация о запросе: \n" +
                          $"KeyNetwork - {KeyNetwork}, WindowUid - {WindowUid}");

                if (!ClientNetwork.Connected)
                {
                    Debug.LogWarning("Не удалось проверить соединение с сервером, запрос отклонён!");
                    return(false);
                }

                byte[] DataBytes;

                if (DataObject != null && DataObject.GetType().Name == "Byte[]")
                {
                    DataBytes = (byte[])DataObject;
                }
                else
                {
                    DataBytes = Package.Packaging((DataObject == null) ? "" : DataObject);
                }

                var Receiver = new MResponse();
                Receiver.WindowUid  = WindowUid;
                Receiver.KeyNetwork = KeyNetwork;
                Receiver.DataBytes  = DataBytes;

                byte[] WriteDataBytes = Package.Packaging(Receiver);

                try
                {
                    ClientNetwork.Send(WriteDataBytes);
                }
                catch (SocketException ex)
                {
                    Debug.LogError("Возникла ошибка при попытке отправить запрос на сервер. " +
                                   "Код ошибки:\n" + ex);
                }

                return(true);
            }
            catch (Exception ex)
            {
                Debug.LogError("Возникла ошибка при создании экземпляра транспортировки. " +
                               "Код ошибки:\n" + ex);
            }

            return(false);
        }
Beispiel #24
0
        public MResponse PostDelegate(Delegation delegation, int headId, string deptId)
        {
            bool success = new DelegationDAO().InsertDelegation(delegation, deptId);

            if (success)
            {
                Email    email = new Email();
                Employee e     = new EmployeeDAO().GetEmployeeById(headId);
                email.SendEmail(delegation.Email, "Authority Delegation", email.CreateMsgBody(delegation, e.Name));
            }
            MResponse response = new MResponse(success);

            return(response);
        }
Beispiel #25
0
        public MResponse CancelDelegate(int headId, string deptId, Delegation delegation)
        {
            bool success = new DelegationDAO().CancelDelegation(deptId, delegation.Id);

            if (success)
            {
                Email    email = new Email();
                Employee e     = new EmployeeDAO().GetEmployeeById(headId);
                email.SendEmail(delegation.Email, "Authority Delegation Cancel", email.CancelMsgBody(delegation, e.Name));
            }
            MResponse response = new MResponse(success);

            return(response);
        }
Beispiel #26
0
        public static void Send(MNetworkClient NetworkClient, string KeyNetwork, object DataObject = null, int WindowUid = -1)
        {
            try
            {
                Debug.Log("Подготовка запроса для отправки клиенту. Информация о запросе: \n" +
                          $"KeyNetwork - {KeyNetwork}, WindowUid - {WindowUid}\n" +
                          $"Информация о пользователе: [{NetworkClient.Id}] {NetworkClient.Ip}:{NetworkClient.Port}");

                if (!NetworkClient.ClientNetwork.Connected)
                {
                    Debug.LogWarning("Не удалось проверить соединение с клиентом, запрос отклонён!");
                    return;
                }

                byte[] DataBytes;

                if (DataObject != null && DataObject.GetType().Name == "Byte[]")
                {
                    DataBytes = (byte[])DataObject;
                }
                else
                {
                    DataBytes = Package.Packaging((DataObject == null) ? "" : DataObject);
                }

                var Receiver = new MResponse();
                Receiver.WindowUid  = WindowUid;
                Receiver.KeyNetwork = KeyNetwork;
                Receiver.DataBytes  = DataBytes;

                byte[] WriteDataBytes = Package.Packaging(Receiver);

                try
                {
                    NetworkClient.ClientNetwork.Send(WriteDataBytes);
                    Debug.Log("Данные успешно отправлены клиенту.");
                }
                catch (SocketException ex)
                {
                    Debug.LogError("Возникла ошибка при попытке отправить запрос клиенту. " +
                                   "Код ошибки:\n" + ex);
                }
            }
            catch (Exception ex)
            {
                Debug.LogError("Возникла ошибка при создании экземпляра транспортировки. " +
                               "Код ошибки:\n" + ex);
            }
        }
Beispiel #27
0
        private static bool CheckKeyNetwork(MNetworkAction DataDelegate, MResponse ServerResponse)
        {
            if (DataDelegate.KeyNetwork != null)
            {
                if (DataDelegate.KeyNetwork == ServerResponse.KeyNetwork)
                {
                    return(true);
                }
            }
            else
            {
                return(true);
            }

            return(false);
        }
        private void WebRequestParamsGet(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "requests"))
            {
                return;
            }

            int ItemId = Package.Unpacking <int>(ClientResponse.DataBytes);

            using (var db = new DatabaseContext())
            {
                WebRequestParamsItem[] RequestParams = db.WebRequestParamsItems.ToArray();

                Sender.Send(NetworkClient, "WebRequestParamsItem.Get.Confirm", RequestParams, ClientResponse.WindowUid);
            }
        }
Beispiel #29
0
        private void UpdateProject(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "projects.edit"))
            {
                return;
            }

            try
            {
                using (var db = new DatabaseContext())
                {
                    var MProject = Package.Unpacking <Project>(ClientResponse.DataBytes);

                    Project DbProject = db.Projects.Where(p => p.Id == MProject.Id).FirstOrDefault();

                    Project DbProjectCache = new Project
                    {
                        Id     = DbProject.Id,
                        Uid    = DbProject.Uid,
                        Title  = DbProject.Title,
                        UserId = DbProject.UserId
                    };

                    DbProject.Uid   = MProject.Uid;
                    DbProject.Title = MProject.Title;

                    db.SaveChanges();

                    Debug.Log($"Информация о команде обновлена:\n" +
                              $"Id - {DbProjectCache.Id} > {MProject.Id}\n" +
                              $"TeamUid - {DbProjectCache.Uid} > {MProject.Uid}\n" +
                              $"Title - {DbProjectCache.Title} > {MProject.Title}\n" +
                              $"UserId - {DbProjectCache.UserId} > {MProject.UserId}", ConsoleColor.Magenta);

                    if (AccessController.IsPrivilege(NetworkClient, "edit_project"))
                    {
                        Sender.Broadcast("Project.Update.Confirm", DbProject, ClientResponse.WindowUid);
                    }
                }
            }
            catch (DbUpdateException ex)
            {
                Debug.LogError("Возникла ошибка при обновлении команды в базе данных! Код ошибки:\n" + ex);

                Sender.Send(NetworkClient, "Project.Update.Error");
            }
        }
Beispiel #30
0
        private void RegisterUser(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            try
            {
                using (var db = new DatabaseContext())
                {
                    var user = Package.Unpacking <Compo_Shared_Data.Models.User>(ClientResponse.DataBytes);

                    if (db.Users.Where(u => u.Email == user.Email).FirstOrDefault() == null &&
                        db.Users.Where(u => u.Login == user.Login).FirstOrDefault() == null)
                    {
                        user.Password = Crypter.Blowfish.Crypt(user.Password);
                        db.Users.Add(user);
                        db.SaveChanges();

                        Debug.Log("В базу данных добавлен новый пользователь", ConsoleColor.Magenta);
                        Sender.Send(NetworkClient, "User.Register.Confirm", default, 2);