private void OnTextChanged(object sender, EventArgs me)
 {
     try
     {
         string keyword = ((TextBox)sender).Text;
         if (keyword.Length >= 2)
         {
             VisualizingTools.ShowWaitingAnimation(new Point(this.searchIcon.Left, this.searchBox.Bottom + 5), new Size(this.searchIcon.Width + this.searchBox.Width, this.searchBox.Height / 2), this);
             BackgroundWorker backgroundWorker = new BackgroundWorker();
             backgroundWorker.DoWork += (s, e) =>
             {
                 List <Consumer> matchList = ServerRequest.SearchFriendsByKeyword(Consumer.LoggedIn.Id, keyword);
                 if (matchList.Count > 0)
                 {
                     this.Invoke(new Action(() => { ShowFriendsInPanel(matchList); }));
                 }
             };
             backgroundWorker.RunWorkerCompleted += (s, e) =>
             {
                 backgroundWorker.Dispose();
                 VisualizingTools.HideWaitingAnimation();
             };
             backgroundWorker.RunWorkerAsync();
         }
         else
         {
             RefreshFriendlist();
         }
     }
     catch (Exception ex) { Console.WriteLine("Error in firendlist search box : " + ex.Message); }
 }
Ejemplo n.º 2
0
 public void RefreshFromServerRequest(ServerRequest serverRequest)
 {
     User       = String.IsNullOrEmpty(serverRequest.UserName) ? User : serverRequest.UserName;
     RemoteAddr = serverRequest.RemoteAddress ?? "";
     Bytes      = serverRequest.BytesSent;
     LastUrl    = serverRequest.LastUrl;
 }
        private void OnTextChangeNuntiasTextBox(Object sender, EventArgs eargs)
        {
            if (typingStatusSent == null)
            {
                return;
            }
            TextBox nuntiasBox = (TextBox)sender;
            string  text       = nuntiasBox.Text;
            string  sendText   = "typing...";

            if (text.Length == 0)
            {
                sendText = "";
            }

            if (typingStatusSent == true && sendText.Length > 0)
            {
                return;
            }
            if (typingStatusSent == false && sendText.Length == 0)
            {
                return;
            }
            typingStatusSent = null;
            BackgroundWorker loaderWorker = new BackgroundWorker();

            loaderWorker.DoWork += (s, e) =>
            {
                bool success = ServerRequest.SomethingTypingOnConversationFor(this.theConversation.ConversationID, Consumer.LoggedIn.Id, sendText);
                typingStatusSent = (success && sendText.Length > 0);
            };
            loaderWorker.RunWorkerCompleted += (s, e) => { loaderWorker.Dispose(); };
            loaderWorker.RunWorkerAsync();
        }
        public void EqualsDoesNotMatchesRequestWithDifferentIdentifier()
        {
            ServerRequest request1 = new ServerRequest();
            ServerRequest request2 = new ServerRequest();

            Assert.IsFalse(request1.Equals(request2));
        }
        public void EqualsDoesNotMatchDifferentTypes()
        {
            var request   = new ServerRequest();
            var different = new object();

            Assert.IsFalse(request.Equals(different));
        }
Ejemplo n.º 6
0
        public static string CheckUsernameValidity(ref string input)
        {
            input = input.ToLower();
            if (input.Length < 5)
            {
                return("Too short");
            }
            for (int i = 0; i < input.Length; i++)
            {
                if (input[i] == ' ')
                {
                    return("Username contains white space");
                }
                if (!((input[i] >= 'a' && input[i] <= 'z') || (input[i] >= 'A' && input[i] <= 'Z') || input[i] == '_' || (input[i] >= '0' && input[i] <= '9')))
                {
                    return("contains invalid characters");
                }
            }
            if (input.Length > 20)
            {
                return("Too long");
            }
            bool?existsOnDatabase = ServerRequest.UsernameAlreadyExists(input);

            if (existsOnDatabase == true)
            {
                return("Username already reserved");
            }
            else if (existsOnDatabase == null)
            {
                return("Availability checking failed");
            }
            return(null);
        }
Ejemplo n.º 7
0
        private void AcceptFriendRequestOf(Consumer consumer, Label addButtonLabel, Panel singleUserPanel)
        {
            BackgroundWorker backgroundWorker = new BackgroundWorker();

            backgroundWorker.DoWork += (s, e) =>
            {
                bool?success = ServerRequest.AcceptFriendRequest(consumer.Id, Consumer.LoggedIn.Id);
                if (success == true)
                {
                    if (this.InvokeRequired)
                    {
                        this.Invoke(new Action(() =>
                        {
                            this.SetAddFriendButton(consumer, singleUserPanel, "friend");
                        }));
                    }
                }
                else
                {
                    if (success == null)
                    {
                        MessageBox.Show("Database access denied!");
                    }
                }
            };
            backgroundWorker.RunWorkerCompleted += (s, e) => { backgroundWorker.Dispose(); };
            backgroundWorker.RunWorkerAsync();
        }
        public async Task <JsonResult> DeleteMessage(CommentViewModel commentViewModel)
        {
            var currentUser = _applicationUserService.GetUserById(Guid.Parse(User.Identity.GetUserId()));

            s_logger.Info("User " + currentUser.Id + " get url " + HttpContext.Request.Url.AbsoluteUri);
            CommentDTO commentDTO = _commentService.GetById(commentViewModel.Id);

            commentViewModel.CommentTime = commentDTO.CommentTime;
            ServerRequest serverRequest = new ServerRequest();

            try {
                if (DateTime.Now < commentViewModel.CommentTime.AddMinutes(10))
                {
                    await _commentService.DeleteComment(commentViewModel.Id);

                    serverRequest.Message = "succesful";
                    return(Json(serverRequest.Message, JsonRequestBehavior.DenyGet));
                }
                else
                {
                    serverRequest.ErrorOccured = true;
                    serverRequest.Message      = "You cannot delete you comment so... late";
                    return(Json(serverRequest.Message, JsonRequestBehavior.DenyGet));
                }
            }
            catch {
                s_logger.Error("Error when user " + currentUser.Id + " try to delete message");
                serverRequest.ErrorOccured = true;
                serverRequest.Message      = "error";
                return(Json(serverRequest.Message, JsonRequestBehavior.DenyGet));
            }
        }
Ejemplo n.º 9
0
        public async Task <JsonResult> DeleteMessage(CommentViewModel commentViewModel)
        {
            CommentDTO commentDTO = _commentService.GetById(commentViewModel.Id);

            commentViewModel.CommentTime = commentDTO.CommentTime;
            ServerRequest serverRequest = new ServerRequest();

            try
            {
                if (DateTime.Now < commentViewModel.CommentTime.AddMinutes(10))
                {
                    await _commentService.DeleteComment(commentViewModel.Id);

                    serverRequest.Message = "succesful";
                    return(Json(serverRequest.Message, JsonRequestBehavior.DenyGet));
                }
                else
                {
                    serverRequest.ErrorOccured = true;
                    serverRequest.Message      = "You cannot delete you comment so... late";
                    return(Json(serverRequest.Message, JsonRequestBehavior.DenyGet));
                }
            }
            catch
            {
                serverRequest.ErrorOccured = true;
                serverRequest.Message      = "error";
                return(Json(serverRequest.Message, JsonRequestBehavior.DenyGet));
            }
        }
        /// <summary>
        ///
        /// </summary>
        public void LabelInitialize()
        {
            this.enterLoginLabel      = new Label();
            this.enterLoginLabel.Text = "Enter Password";
            Rectangle lbound = this.passwordBox.Bounds;

            this.enterLoginLabel.Font      = CustomFonts.SmallBold;
            this.enterLoginLabel.ForeColor = Color.FromArgb(120, 120, 120);
            this.enterLoginLabel.SetBounds(lbound.Left - 5, lbound.Top + 5 - enterLoginLabel.PreferredHeight * 2, enterLoginLabel.PreferredWidth, enterLoginLabel.PreferredHeight);
            this.Controls.Add(enterLoginLabel);

            this.forgotPasswordLinkLabel              = new LinkLabel();
            this.forgotPasswordLinkLabel.Text         = "&Forgot Password";
            this.forgotPasswordLinkLabel.TextAlign    = ContentAlignment.MiddleRight;
            this.forgotPasswordLinkLabel.Font         = CustomFonts.Smaller;
            this.forgotPasswordLinkLabel.LinkArea     = new LinkArea(0, 16);
            this.forgotPasswordLinkLabel.LinkBehavior = LinkBehavior.NeverUnderline;
            this.forgotPasswordLinkLabel.Size         = this.forgotPasswordLinkLabel.PreferredSize;
            this.forgotPasswordLinkLabel.Location     = new Point(this.loginButton.Left - this.forgotPasswordLinkLabel.Width - 10, this.loginButton.Top);
            this.forgotPasswordLinkLabel.LinkClicked += delegate(Object sender, LinkLabelLinkClickedEventArgs e)
            {
                BackgroundWorker loaderWorker = new BackgroundWorker();
                loaderWorker.DoWork += (ss, ee) =>
                {
                    ServerRequest.SendVerificationCodeToResetPassword();
                };
                loaderWorker.RunWorkerAsync();
                loaderWorker.RunWorkerCompleted += (ss, ee) => { loaderWorker.Dispose(); };
                this.Visible = false;
                this.parent.Controls.Add(new UserVerificationPanel(this, "password_reset"));
            };
            this.Controls.Add(forgotPasswordLinkLabel);
        }
Ejemplo n.º 11
0
        public override Task <ServerReply> Disconnect(ServerRequest request, ServerCallContext context)
        {
            if (!TokenAuthentification(context.RequestHeaders, out string clientTokenValue))
            {
                return(Task.FromResult(new ServerReply()
                {
                    RequestState = true
                }));
            }

            if (!_registredUsers.TryRemove(clientTokenValue, out UserClient userDataInfo))
            {
                return(Task.FromResult(new ServerReply()
                {
                    RequestState = true
                }));
            }

            // stop stream channel
            userDataInfo.CancellationTokenSource.Cancel();

            userDataInfo.UserState = UserState.None;

            var reply = new ServerReply
            {
                RequestState = true
            };

            return(Task.FromResult(reply));
        }
    private void btn_click(object sender, EventArgs e)
    {
        ServerRequest sr       = new ServerRequest();
        var           callback = new ServerRequest.CallBackFunction(CallbackFunc);

        sr.DoRequest("myrequest", callback);
    }
        public static async Task Execute(ConnectionManager connectionManager, List <string> serverLines, string servers, string partitions)
        {
            List <AsyncUnaryCall <Empty> > asyncUnaryCalls = new List <AsyncUnaryCall <Empty> >();

            foreach (string line in serverLines)
            {
                string[] serverLineSplit = line.Split(" ");

                PCS           pcs           = connectionManager.GetPCS(connectionManager.GetPCSUrlFromAnUrl(serverLineSplit[1]));
                ServerRequest serverRequest = new ServerRequest()
                {
                    ServerId             = serverLineSplit[0],
                    Url                  = serverLineSplit[1],
                    MinDelay             = int.Parse(serverLineSplit[2]),
                    MaxDelay             = int.Parse(serverLineSplit[3]),
                    NetworkConfiguration = servers + partitions
                };

                asyncUnaryCalls.Add(pcs.Stub.ServerAsync(serverRequest));
            }

            List <Empty> statusReplies = new List <Empty>();

            foreach (AsyncUnaryCall <Empty> request in asyncUnaryCalls)
            {
                statusReplies.Add(await request.ResponseAsync);
            }
        }
Ejemplo n.º 14
0
 public IDisposable Start(IServerInformation serverInformation, Func<IFeatureCollection, Task> application)
 {
     var disposables = new List<IDisposable>();
     var information = (ServerInformation)serverInformation;
     var engine = new KestrelEngine(_libraryManager, _appShutdownService);
     engine.Start(1);
     foreach (var address in information.Addresses)
     {
         disposables.Add(engine.CreateServer(
             address.Scheme,
             address.Host,
             address.Port,
             async frame =>
             {
                 var request = new ServerRequest(frame);
                 await application.Invoke(request.Features);
             }));
     }
     disposables.Add(engine);
     return new Disposable(() =>
     {
         foreach (var disposable in disposables)
         {
             disposable.Dispose();
         }
     });
 }
Ejemplo n.º 15
0
    static bool ShowLoading = false;//是否顯示loading

    /// <summary>
    /// 初始化
    /// </summary>
    public void Init()
    {
        switch (Application.platform)
        {
        case RuntimePlatform.Android:
            Debug.Log("Android");
            IsFormal = true;
            break;

        case RuntimePlatform.IPhonePlayer:
            Debug.Log("IPhonePlayer");
            IsFormal = true;
            break;

        case RuntimePlatform.WindowsEditor:
            Debug.Log("WindowsEditor");
            IsFormal = true;
            break;

        case RuntimePlatform.OSXEditor:
            Debug.Log("OSXEditor");
            IsFormal = false;
            break;

        default:
            Debug.Log("default");
            IsFormal = true;
            break;
        }
        IsFormal = true;
        Conn     = this;
        //切場景不移除物件
        DontDestroyOnLoad(gameObject);
    }
Ejemplo n.º 16
0
        public ServerResponse Client(int msgCount, ServerRequest request)
        {
            lock (_syncObject)
            {
                if (request.Map.Cells != null)
                {
                    Map            = request.Map;
                    _lastMapUpdate = DateTime.Now;
                }
                else if (Map == null)
                {
                    return(new ServerResponse {
                        ClientCommand = ClientCommandType.UpdateMap
                    });
                }

                Map.InteractObjects = request.Map.InteractObjects;
                _msgCount           = msgCount;
                _wasUpdate          = true;

                return(new ServerResponse {
                    ClientCommand = ClientCommandType.None
                });
            }
        }
Ejemplo n.º 17
0
    public void InvokeRequestCallback(ServerRequest serverRequest)
    {
        if (serverRequest.isDone)
        {
            if (serverRequest.data.IsNotNull())
            {
                DebugModeLog(serverRequest);
                DataParser(serverRequest.data);
                return;
            }
        }

        int    code;
        string message;

        if (serverRequest.error.IsNotNull())
        {
            code    = serverRequest.error.code;
            message = serverRequest.error.message;

            if (HasErrorCodeInActionHandleErrorCodeDict(code))
            {
                actionHandleErrorCodeDict[code](code, message);
            }
        }
        else
        {
            code    = API_Code.ERROR_CODE;
            message = API_Code.messageDic[API_Code.ERROR_CODE];
        }

        OnRequestDataFailed(code, message);
    }
Ejemplo n.º 18
0
        /// <summary>
        /// Called every time the web server sends a response to a request. Uses this information to update
        /// the <see cref="_ServerRequests"/> list.
        /// </summary>
        /// <param name="remoteEndPoint"></param>
        /// <param name="url"></param>
        /// <param name="bytesSent"></param>
        /// <param name="userName"></param>
        private void UpdateServerRequestEntry(IPEndPoint remoteEndPoint, string url, long bytesSent, string userName)
        {
            if (bytesSent > 0)
            {
                ServerRequest serverRequest = null;
                _ServerRequestsSpinLock.Lock();
                try {
                    serverRequest = _ServerRequests.FirstOrDefault(r => {
                        return /* showPortNumber ? r.RemoteEndPoint.Equals(remoteEndPoint) :*/ (r.RemoteEndPoint.Address.Equals(remoteEndPoint.Address));
                    });
                    if (serverRequest == null)
                    {
                        serverRequest = new ServerRequest()
                        {
                            RemoteEndPoint = remoteEndPoint,
                        };
                        _ServerRequests.Add(serverRequest);
                    }
                } finally {
                    _ServerRequestsSpinLock.Unlock();
                }

                ++serverRequest.DataVersion;
                serverRequest.LastRequest = _Clock.UtcNow;
                serverRequest.BytesSent  += bytesSent;
                serverRequest.LastUrl     = url;
                serverRequest.UserName    = userName;
            }
        }
Ejemplo n.º 19
0
    private void btn_click(object sender, EventArgs e)
    {
        ServerRequest sr = new ServerRequest();

        sr.Callback += new ServerRequest.CallbackEventHandler(sr_Callback);
        sr.DoRequest("myrequest");
    }
Ejemplo n.º 20
0
        /// <summary>
        /// Sends a message to a remote server asychronously.
        /// </summary>
        /// <param name="action">The action to perform.</param>
        /// <param name="request">The request to send to the server.</param>
        /// <param name="userState">Any user state data.</param>
        /// <remarks>
        /// This operation will still be done in a synchronous mode.
        /// </remarks>
        public virtual void SendMessageAsync(string action, ServerRequest request, object userState)
        {
            if (isBusy)
            {
                throw new InvalidOperationException();
            }

            try
            {
                isBusy = true;
                InitialiseRemoting();
                Response result = client.ProcessMessage(action, request);

                if (SendMessageCompleted != null)
                {
                    MessageReceivedEventArgs args = new MessageReceivedEventArgs(result, null, false, userState);
                    SendMessageCompleted(this, args);
                }
            }
            catch (Exception error)
            {
                if (SendMessageCompleted != null)
                {
                    MessageReceivedEventArgs args = new MessageReceivedEventArgs(null, error, false, userState);
                    SendMessageCompleted(this, args);
                }
            }
            finally
            {
                isBusy = false;
            }
        }
Ejemplo n.º 21
0
 /// <summary>
 /// Fires the <see cref="RequestSending"/> event.
 /// </summary>
 /// <param name="action">The action that is being sent.</param>
 /// <param name="request">The request that is being sent.</param>
 protected virtual void FireRequestSending(string action, ServerRequest request)
 {
     if (RequestSending != null)
     {
         RequestSending(this, new CommunicationsEventArgs(action, request));
     }
 }
        /// <summary>
        /// Sends a message to a remote server.
        /// </summary>
        /// <param name="action">The action to perform.</param>
        /// <param name="request">The request to send to the server.</param>
        /// <returns>The response from the server.</returns>
        public Response SendMessage(string action, ServerRequest request)
        {
            // Make sure there is a password
            if ((cryptoKey.Length == 0) || (cryptoIv.Length == 0))
            {
                InitialisePassword();
            }

            // Generate the encrypted request
            var encryptedRequest = new EncryptedRequest();

            encryptedRequest.Action = action;
            var crypto = new RijndaelManaged();

            crypto.Key = cryptoKey;
            crypto.IV  = cryptoIv;
            encryptedRequest.EncryptedData = EncryptMessage(crypto, request.ToString());

            // Send the request
            var response          = innerConnection.SendMessage("ProcessSecureRequest", encryptedRequest);
            var encryptedResponse = response as EncryptedResponse;

            // Generate the actual response
            if ((response.Result == ResponseResult.Success) && (encryptedResponse != null))
            {
                var data = DecryptMessage(crypto, encryptedResponse.EncryptedData);
                response = XmlConversionUtil.ProcessResponse(data);
            }
            return(response);
        }
Ejemplo n.º 23
0
    public void OpenTowerPanel(bool isSuccess)
    {
        isRequest = isSuccess;
        if (this.gameObject.activeSelf)
        {
            PanelStatic.StaticBtnGameManager.RunOpenLoading(() => ServerRequest.requestTowerOpen());
        }
        else
        {
            PanelStatic.StaticBtnGameManagerBack.UICL.SendMessage("ShowTowerPanel", SendMessageOptions.RequireReceiver);
        }

        if (!isSuccess)
        {
            skipChallengeBtn.isEnabled  = false;
            startChallengeBtn.isEnabled = false;
            flashSprite.GetComponent <UISprite>().enabled = false;
            flashSprite.SetActive(false);
            rewardLeaveBtn.isEnabled = true;
            tempLeaveBtn.isEnabled   = true;
        }
        else
        {
            startChallengeTxt.text      = StaticLoc.Loc.Get("info1150"); // 继续挑战
            startChallengeBtn.isEnabled = true;
            flashSprite.GetComponent <UISprite>().enabled = true;
            flashSprite.SetActive(true);
        }
    }
Ejemplo n.º 24
0
        public bool SendMyPublicKey(InfoClients infoClients)
        {
            bool result = false;

            FileWriter.WriteOnEvents(EventLevel.Info, "Llamado al servidor para entrega de llave privada.");
            try
            {
                ServerRequest         callPartner = new ServerRequest(parameters.Value.EndpointServer, parameters.Value.RequestKeyPartner, parameters.Value.GetRequest);
                HttpStatusCode        resultCode  = new HttpStatusCode();
                Task <HttpStatusCode> response    = callPartner.RequestPartnerKey(infoClients);
                response.ContinueWith(task => {
                    resultCode = task.Result;
                }, TaskContinuationOptions.OnlyOnRanToCompletion);
                //Check the response values, if isn´t success set false
                if (resultCode.Equals(HttpStatusCode.NotFound))
                {
                    FileWriter.WriteOnEvents(EventLevel.Atention, "Respuesta no satisfactoria. resultCode:" + resultCode);
                    result = false;
                }
                else
                {
                    FileWriter.WriteOnEvents(EventLevel.Info, "Llave enviada de forma satisfactoria. resultCode:" + resultCode);
                    result = true;
                }
            }
            catch (System.Exception ex)
            {
                FileWriter.WriteOnEvents(EventLevel.Exception, "Excepcion en GeneratekeyEncrypts. " + ex.Message);
                result = false;
            }
            return(result);
        }
Ejemplo n.º 25
0
        public void NotAWebSocketRequestThrowsSynchronously()
        {
            var env     = new Dictionary <string, object>();
            var request = new ServerRequest(env);

            Assert.Throws <InvalidOperationException>(() => request.AcceptWebSocketRequest(socket => TaskAsyncHelper.Empty));
        }
Ejemplo n.º 26
0
        public void getOtherBet(ServerRequest req)
        {
            Console.Write(req.Team + " ");
            Bet other = req.Mybet;

            if (other.Pass)
            {
                pass++;
            }
            else
            {
                pass = 0;
            }
            if (other.Pass)
            {
                Console.WriteLine(" pass");
            }
            else if (other.Coinche)
            {
                Console.WriteLine(" coinche");
                coinche = true;
            }
            else if (other.Surcoinche)
            {
                Console.WriteLine(" surcoinche");
            }
            else
            {
                this.maxbet = other.Bet1 + 10;
                Console.WriteLine("bet " + other.Color.Name + " " + other.Bet1);
            }
        }
Ejemplo n.º 27
0
        public async Task <ActionResult> UploadFile(OrderViewModel order)
        {
            var                currentUser   = _applicationUserService.GetUserById(Guid.Parse(User.Identity.GetUserId()));
            FileViewModel      fileViewModel = new FileViewModel();
            HttpPostedFileBase file          = Request.Files[0];

            fileViewModel.OrderId  = order.Id;
            fileViewModel.FileName = Path.GetFileName(file.FileName);
            fileViewModel.FileType = file.ContentType;
            using (var binaryReader = new BinaryReader(file.InputStream)) {
                fileViewModel.Data = binaryReader.ReadBytes(file.ContentLength);
            }
            FileDTO.FileDTO fileDTO = _mapper.Map <FileViewModel, FileDTO.FileDTO>(fileViewModel);
            ServerRequest   result  = await _fileStorageService.UploadFileAsync(fileDTO);

            if (!result.ErrorOccured)
            {
                s_logger.Info("User " + currentUser.Id + " upload file ");
                return(RedirectToAction("GetTakenOrders", "Musician"));
            }
            else
            {
                s_logger.Error("Error when user " + currentUser.Id + " try to upload file ");
                ViewBag.Error = result.Message;
                return(RedirectToAction("GetTakenOrders", "Musician"));
            }
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Make a request to the Vélib Service by specifying the type of request
        /// </summary>
        /// <param name="requestType"> the server request </param>
        /// <param name="cityName"> the city name </param>
        /// <param name="stationNumber"> the station name </param>
        /// <returns> the string (response) sent by the Service </returns>
        private string GetResponseFromServer(ServerRequest requestType, string cityName = "", int stationNumber = 0)
        {
            WebRequest request = null;

            switch (requestType)
            {
            case ServerRequest.GetCitiesRequest:
                request = WebRequest.Create(_URIBuilder.GenerateURI(ServerRequest.GetCitiesRequest, _APIKey));
                break;

            case ServerRequest.GetStationsOfCityRequest:
                request = WebRequest.Create(_URIBuilder.GenerateURI(ServerRequest.GetStationsOfCityRequest, _APIKey, cityName));
                break;

            case ServerRequest.GetStationsRequest:
                request = WebRequest.Create(_URIBuilder.GenerateURI(ServerRequest.GetStationsRequest, _APIKey));
                break;

            case ServerRequest.GetStationInformationRequest:
                request = WebRequest.Create(_URIBuilder.GenerateURI(ServerRequest.GetStationInformationRequest, _APIKey, cityName, stationNumber));
                break;

            default:
                break;
            }
            WebResponse  response   = request.GetResponse();
            Stream       dataStream = response.GetResponseStream();
            StreamReader reader     = new StreamReader(dataStream);

            return(reader.ReadToEnd());
        }
Ejemplo n.º 29
0
        public HostContext(IDictionary <string, object> environment)
        {
            Request  = new ServerRequest(environment);
            Response = new ServerResponse(environment);

            Environment = environment;
        }
Ejemplo n.º 30
0
        public Task Invoke(IDictionary <string, object> env)
        {
            var request  = new ServerRequest(env);
            var response = new Gate.Response(env);

            if (!request.Url.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase))
            {
                var builder = new UriBuilder(request.Url);
                builder.Scheme = "https";

                if (request.Url.IsDefaultPort)
                {
                    builder.Port = -1;
                }

                response.SetHeader("Location", builder.ToString());
                response.StatusCode = 302;

                return(TaskAsyncHelper.Empty);
            }
            else
            {
                return(_next(env));
            }
        }
    public static bool IsSkyTrakCall(this ServerRequest request)
    {
        switch (request)
        {
        case ServerRequest.RegisterSkytrak:
        case ServerRequest.AddShots:
        case ServerRequest.GetSessionObj:
        case ServerRequest.GetRemoteSessionObj:
        case ServerRequest.GetSessionsList:
        case ServerRequest.GetRemoteSessionData:
        case ServerRequest.GetChallengeScores:
        case ServerRequest.UpdateChallengeScores:
        case ServerRequest.UpdateActivity:
        case ServerRequest.UpdateSession:
        case ServerRequest.UpdateUser:
        case ServerRequest.GetCustomerEsns:
        case ServerRequest.GetAppVersion:
        {
            return(true);
        }

        case ServerRequest.GetSessionGuid:
        case ServerRequest.GetUserInfo:
        case ServerRequest.CreateAccount:
        case ServerRequest.ResetPassword:
        {
            return(false);
        }
        }
        throw new NotSupportedException(string.Format("Request type {0} is not supported", request));
    }
Ejemplo n.º 32
0
        public Task<ServerResponse> ProcessRequest(ServerRequest request)
        {
            string collectionName = request.Route.Parameters["collectionName"];
            DataCollection collection = _dataSpace.GetCollection(collectionName);

            if (collection == null) {
                return Deferred.Create<ServerResponse>(ServerResponse.NotFound).Task;
            }

            DataRequest dataRequest = CreateDataRequest(request, collection);
            if ((dataRequest == null) || (collection.SupportsRequest(dataRequest) == false)) {
                return Deferred.Create<ServerResponse>(ServerResponse.MethodNotAllowed).Task;
            }

            if ((dataRequest.Operation != DataOperation.Query) &&
                String.IsNullOrEmpty(dataRequest.Query.ID)) {
                ServerResponse response = ServerResponse.CreateRequestError("Missing id parameter.");
                return Deferred.Create<ServerResponse>(response).Task;
            }

            if ((dataRequest.Operation == DataOperation.Insert) ||
                (dataRequest.Operation == DataOperation.Update) ||
                (dataRequest.Operation == DataOperation.Merge)) {
                Deferred<ServerResponse> deferred = Deferred.Create<ServerResponse>();

                request.GetData().ContinueWith(delegate(Task<object> dataTask) {
                    if (dataTask.Status == TaskStatus.Failed) {
                        deferred.Reject(dataTask.Error);
                        return;
                    }

                    Task<ServerResponse> executeTask = null;
                    try {
                        dataRequest.Item = (Dictionary<string, object>)dataTask.Result;
                        executeTask = ExecuteRequest(collection, dataRequest);
                    }
                    catch (Exception e) {
                        deferred.Resolve(ServerResponse.CreateServerError(e.Message));
                        return;
                    }

                    executeTask.ContinueWith(delegate(Task<ServerResponse> t) {
                        if (t.Status == TaskStatus.Done) {
                            deferred.Resolve(t.Result);
                        }
                        else {
                            deferred.Resolve(ServerResponse.CreateServerError(t.Error.Message));
                        }
                    });
                });

                return deferred.Task;
            }
            else {
                return ExecuteRequest(collection, dataRequest);
            }
        }
Ejemplo n.º 33
0
        public Task<ServerResponse> ProcessRequest(ServerRequest request)
        {
            string controllerName = request.Route.Parameters["controllerName"];
            Controller controller = _endpoints.GetController(controllerName);

            if (controller == null) {
                return Deferred.Create<ServerResponse>(ServerResponse.NotFound).Task;
            }

            ApiRequest apiRequest = new ApiRequest(controller, request.HttpRequest.Method, request.Route.Parameters["actionName"],
                                                   (Dictionary<string, string>)request.HttpRequest.Headers,
                                                   request.UrlData.Query);

            if (controller.SupportsRequest(apiRequest) == false) {
                return Deferred.Create<ServerResponse>(ServerResponse.MethodNotAllowed).Task;
            }

            if ((request.HttpRequest.Method == HttpVerb.POST) || (request.HttpRequest.Method == HttpVerb.PUT)) {
                Deferred<ServerResponse> deferred = Deferred.Create<ServerResponse>();

                request.GetData().ContinueWith(delegate(Task<object> dataTask) {
                    if (dataTask.Status == TaskStatus.Failed) {
                        deferred.Reject(dataTask.Error);
                        return;
                    }

                    Task<ServerResponse> executeTask;
                    try {
                        apiRequest.Data = dataTask.Result;
                        executeTask = ExecuteRequest(controller, apiRequest);
                    }
                    catch (Exception e) {
                        deferred.Resolve(ServerResponse.CreateServerError(e.Message));
                        return;
                    }

                    executeTask.ContinueWith(delegate(Task<ServerResponse> t) {
                        if (t.Status == TaskStatus.Done) {
                            deferred.Resolve(t.Result);
                        }
                        else {
                            deferred.Resolve(ServerResponse.CreateServerError(t.Error.Message));
                        }
                    });
                });

                return deferred.Task;
            }
            else {
                return ExecuteRequest(controller, apiRequest);
            }
        }
Ejemplo n.º 34
0
        public Task Invoke(IDictionary<string, object> env)
        {
            var serverRequest = new ServerRequest(env);
            var serverResponse = new ServerResponse(env);
            var hostContext = new HostContext(serverRequest, serverResponse);

            var origins = serverRequest.RequestHeaders.GetHeaders("Origin");
            if (origins != null && origins.Any(origin => !String.IsNullOrEmpty(origin)))
            {
                serverResponse.ResponseHeaders["Access-Control-Allow-Origin"] = origins;
                serverResponse.ResponseHeaders["Access-Control-Allow-Credentials"] = AllowCredentialsTrue;
            }

            hostContext.Items[HostConstants.SupportsWebSockets] = env.ContainsKey(OwinConstants.WebSocketSupport);

            serverRequest.DisableRequestBuffering();
            serverResponse.DisableResponseBuffering();

            _connection.Initialize(_resolver, hostContext);

            return _connection.ProcessRequestAsync(hostContext);
        }
Ejemplo n.º 35
0
        private DataRequest CreateDataRequest(ServerRequest serverRequest, DataCollection collection)
        {
            DataOperation operation;

            string id = serverRequest.UrlData.Query["id"];
            string partition = serverRequest.UrlData.Query["partition"];
            string operationName = serverRequest.Route.Parameters["operationName"];

            switch (serverRequest.HttpRequest.Method) {
                case HttpVerb.GET:
                    if (String.IsNullOrEmpty(id) == false) {
                        operation = DataOperation.Lookup;
                    }
                    else {
                        operation = DataOperation.Query;
                    }
                    break;
                case HttpVerb.POST:
                    if (String.IsNullOrEmpty(operationName)) {
                        operation = DataOperation.Update;
                    }
                    else {
                        operation = DataOperation.Execute;
                    }
                    break;
                case HttpVerb.PUT:
                    operation = DataOperation.Insert;
                    break;
                case HttpVerb.DELETE:
                    operation = DataOperation.Delete_;
                    break;
                default:
                    return null;
            }

            DataRequest dataRequest = new DataRequest(operation, operationName, serverRequest.UrlData.Query);
            dataRequest.Query = new DataQuery(collection, id);
            dataRequest.Partition = partition;

            return dataRequest;
        }
Ejemplo n.º 36
0
        private void PerformServerRequest(ServerRequest request)
        {
            //a long laundry list
            switch (request) {
                case ServerRequest.MERLIN:
                case ServerRequest.PERCIVAL:
                case ServerRequest.MORDRED:
                case ServerRequest.MORGANA:
                case ServerRequest.ASSASSIN:
                case ServerRequest.OBERON:
                case ServerRequest.SERVANT_OF_ARTHUR:
                case ServerRequest.MINION_OF_MORDRED:
                    lock (LockMe) {
                        Player.Card = (PlayingCards)Enum.Parse(typeof(PlayingCards), request.ToString());
                        this.Invoke((MethodInvoker)delegate {
                            cardValue.Text = Player.Card.ToString();
                            switch (Player.Card) {
                                case PlayingCards.MERLIN:
                                    RolePicture = global::AvalonClient.Properties.Resources.Merlin;
                                    break;
                                case PlayingCards.MORDRED:
                                    RolePicture = global::AvalonClient.Properties.Resources.Mordred;
                                    break;
                                case PlayingCards.MORGANA:
                                    RolePicture = global::AvalonClient.Properties.Resources.Morgana;
                                    break;
                                case PlayingCards.OBERON:
                                    RolePicture = global::AvalonClient.Properties.Resources.Oberon;
                                    break;
                                case PlayingCards.ASSASSIN:
                                    RolePicture = global::AvalonClient.Properties.Resources.Assassin;
                                    break;
                                case PlayingCards.PERCIVAL:
                                    RolePicture = global::AvalonClient.Properties.Resources.Galahad;
                                    break;
                                case PlayingCards.SERVANT_OF_ARTHUR: {
                                        List<Bitmap> servants = new List<Bitmap>();
                                        servants.Add(global::AvalonClient.Properties.Resources.Lancelot);
                                        servants.Add(global::AvalonClient.Properties.Resources.Bedevere);
                                        servants.Add(global::AvalonClient.Properties.Resources.Patsy);
                                        servants.Add(global::AvalonClient.Properties.Resources.King_Arthur);
                                        int random = new Random().Next(0, servants.Count);
                                        RolePicture = servants[random];
                                    }
                                    break;
                                case PlayingCards.MINION_OF_MORDRED: {
                                        List<Bitmap> minions = new List<Bitmap>();
                                        minions.Add(global::AvalonClient.Properties.Resources.Nee);
                                        minions.Add(global::AvalonClient.Properties.Resources.Rabbit);
                                        int random = new Random().Next(0, minions.Count);
                                        RolePicture = minions[random];
                                    }
                                    break;
                                default:
                                    break;
                            }
                            cardValue.Text = Player.Card.ToString().Replace("_", " ");
                        });
                    }
                    break;
                case ServerRequest.CHOOSE_TEAM: {
                        PickTeam pickTeam = new PickTeam(MaxPlayersInTeam, PlayersPlaying);
                        pickTeam.TopLevel = false;
                        pickTeam.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                        pickTeam.Dock = DockStyle.Fill;

                        this.Invoke((MethodInvoker)delegate {
                            infoPanel.Controls.Add(pickTeam);
                            pickTeam.Show();
                        });

                        while (pickTeam.DialogResult == System.Windows.Forms.DialogResult.None) {
                            Thread.Sleep(1000);
                        }

                        string team = "TEAM ";
                        foreach (String name in pickTeam.PlayersGoingOnMission) {
                            team += name + ";";
                        }
                        this.Invoke((MethodInvoker)delegate {
                            pickTeam.Close();
                            infoPanel.Controls.Remove(pickTeam);
                        });

                        TcpClient.SendMessage(team + "\n");
                    }
                    break;
                case ServerRequest.MISSION_VOTE_FAILS:
                    DisplayOutcome(!(FailedVotesInRound >= NeededFailVotes));
                    break;
                case ServerRequest.EVIL_WIN:
                    break;
                case ServerRequest.FIND_MERLIN:
                    break;
                case ServerRequest.GOOD_WIN:
                    break;
                case ServerRequest.KILL_MERLIN: {
                        List<string> names = new List<string>();
                        foreach (Players player in PlayersPlaying) {
                            if (player.Name != Player.Name && (player.Card != PlayingCards.MINION_OF_MORDRED && player.Card != PlayingCards.ASSASSIN &&
                                player.Card != PlayingCards.MORDRED && player.Card != PlayingCards.MORGANA && player.Card != PlayingCards.OBERON)) {
                                names.Add(player.Name);
                            }
                        }
                        PickMerlin pickMerlin = new PickMerlin(names);
                        pickMerlin.TopLevel = false;
                        pickMerlin.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                        pickMerlin.Dock = DockStyle.Fill;

                        this.Invoke((MethodInvoker)delegate {
                            infoPanel.Controls.Add(pickMerlin);
                            pickMerlin.Show();
                        });

                        while (pickMerlin.DialogResult == System.Windows.Forms.DialogResult.None) {
                            Thread.Sleep(1000);
                        }

                        var index = ((ListBox)pickMerlin.Controls["playerListValue"]).SelectedIndex;
                        this.Invoke((MethodInvoker)delegate {
                            pickMerlin.Close();
                            infoPanel.Controls.Remove(pickMerlin);
                        });

                        TcpClient.SendMessage(names[index] + "\n");
                    }
                    break;
                case ServerRequest.LADY_OF_THE_LAKE:
                    break;
                case ServerRequest.MERLIN_KILLED:
                    MerlinOutcome merlinOutcome = new MerlinOutcome(MerlinKilled);
                    merlinOutcome.Show();
                    break;
                case ServerRequest.TEAM_VOTE: {
                        while (PlayersOnTeam == null || PlayersOnTeam.Count == 0) {
                            Thread.Sleep(1000);
                        }
                        bool result = false;
                        TeamVote teamVote = new TeamVote(PlayersOnTeam);
                        teamVote.TopLevel = false;
                        teamVote.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                        teamVote.Dock = DockStyle.Fill;

                        this.Invoke((MethodInvoker)delegate {
                            infoPanel.Controls.Add(teamVote);
                            teamVote.Show();
                        });

                        while (teamVote.DialogResult == System.Windows.Forms.DialogResult.None) {
                            Thread.Sleep(1000);
                            if (teamVote.DialogResult == System.Windows.Forms.DialogResult.Yes) {
                                result = true;
                            }
                        }

                        this.Invoke((MethodInvoker)delegate {
                            teamVote.Close();
                            infoPanel.Controls.Remove(teamVote);
                        });

                        TcpClient.SendMessage(result.ToString() + "\n");
                    }
                    break;
                case ServerRequest.REQUEST_NAME:
                    Player.Name = nameValue.Text;
                    TcpClient.SendMessage(nameValue.Text);
                    break;
                case ServerRequest.RESET_MATCH:
                    SetTeamSelectionRound(1);
                    MoveVotePouch(true);
                    SetRound();
                    ClearPlayerCards();
                    break;
                case ServerRequest.PLAYERS_IN_GAME:
                    UpdatePlayersPanel();
                    break;
                case ServerRequest.RESET_TEAM_SELECTION_ROUND:
                    SetTeamSelectionRound(1);
                    MoveVotePouch(true);
                    break;
                case ServerRequest.REVEAL_PLAYERS:
                    break;
                case ServerRequest.TEAM_APPROVED:
                    DisplayTeamVote(true);
                    MoveVotePouch(true);
                    break;
                case ServerRequest.TEAM_REJECTED:
                    DisplayTeamVote(false);
                    MoveVotePouch();
                    break;
                case ServerRequest.UPDATE_SCORES:
                    break;
                case ServerRequest.VOTE_MISSION:
                    VoteForMission();
                    break;
                default:
                    break;
            }
        }
Ejemplo n.º 37
0
 private ServerRequest CreateExtensionRequest(string commandId, string successCallback, JSONObject jsonData = null) {
  if (jsonData == null) {
    jsonData = new JSONObject();
  }
 
  ISFSObject requestData = CreateExtensionObject(jsonData);
  ServerRequest serverRequest = new ServerRequest(ServerRequest.Type.EXTENSION,
                          Command.Create(GameId.USER, commandId),
                          requestData,
                          gameObject,
                          successCallback);
  return serverRequest;
 }
Ejemplo n.º 38
0
	public static void Queue(ServerRequest request) {
		requests.Add(request);
	}
Ejemplo n.º 39
0
	public static void QueueOnTop(ServerRequest request) {
		requests.Insert(0, request);
	}
Ejemplo n.º 40
0
 private ServerRequest CreatePublicMessageRequest(string commandId, string successCallback, JSONObject jsonData = null) {
  if (jsonData == null) {
    jsonData = new JSONObject();
  }
 
  ISFSObject requestData = CreatePublicMessageObject(jsonData, commandId);
  ServerRequest serverRequest = new ServerRequest(ServerRequest.Type.PUBLIC_MESSAGE,
                          Command.Create(GameId.USER, commandId),
                          requestData,
                          gameObject,
                          successCallback);
  return serverRequest;
 }
Ejemplo n.º 41
0
 /// <summary>
 /// Retrieves information about available updates.
 /// </summary>
 /// <returns>The update information returned by the server, or null if the request failed.</returns>
 public static UpdateInfo GetUpdateInfo()
 {
     var updateCommand = new ServerRequest("update_asm");
     return AssemblyServer.SendRequest<ServerRequest, UpdateInfo>(updateCommand);
 }
Ejemplo n.º 42
0
	private ServerRequest CreateExtensionRequest(string commandId, JSONObject jsonData = null) {
		if (jsonData == null) {
			jsonData = EMPTY_JSON_OBJECT;
		}

		ISFSObject requestData = CreateExtensionObject(jsonData);
		ServerRequest serverRequest = new ServerRequest(ServerRequest.Type.EXTENSION,
														Command.Create(GameId.TLMB, commandId),
														requestData,
														gameObject,
														"OnExtensionCallback");
		return serverRequest;
	}