public override int GetHashCode() { int hash = 1; if (Id.Length != 0) { hash ^= Id.GetHashCode(); } if (FirstPlay != false) { hash ^= FirstPlay.GetHashCode(); } if (FirstRequest != false) { hash ^= FirstRequest.GetHashCode(); } if (ParentalApproval != false) { hash ^= ParentalApproval.GetHashCode(); } if (PermissionGranted != false) { hash ^= PermissionGranted.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public async Task HandleMessageA(FirstRequest message) { var outbound = new FirstRequestOutbound { SomeIdentifier = message.SomeIdentifier.ToString() }; _logger.Info($"Forwarding request (type: {outbound.GetType().Name})"); await _httpClient.PostAsJsonAsync("http://localhost:9022/api/messages/a", outbound); }
public void Should_create_a_default_response_based_on_the_conventions() { var request = new FirstRequest(); var conventions = MockRepository.GenerateMock<IConventions>(); conventions.Stub(c => c.GetResponseTypeFor(request)).Return(typeof(FirstResponse)); IoC.Container = new Container(); IoC.Container.RegisterInstance(conventions); var interceptorBase = new MockRepository().PartialMock<ConventionBasedInterceptor>(); var response = interceptorBase.CreateDefaultResponseFor(request); Assert.IsType<FirstResponse>(response); }
public void Should_create_a_default_response_based_on_the_conventions() { var request = new FirstRequest(); var conventions = MockRepository.GenerateMock <IConventions>(); conventions.Stub(c => c.GetResponseTypeFor(request)).Return(typeof(FirstResponse)); IoC.Container = new Container(); IoC.Container.RegisterInstance(conventions); var interceptorBase = new MockRepository().PartialMock <ConventionBasedInterceptor>(); var response = interceptorBase.CreateDefaultResponseFor(request); Assert.IsType <FirstResponse>(response); }
public ActionResult <ReturnMessage> SendFirstRequest(FirstRequest firstRequest) { ReturnMessage returnMessage = new ReturnMessage(); try { messageService.SendFirstRequest(firstRequest); } catch (Exception ex) { returnMessage.Ret = ex.InnerException.Message; return(returnMessage); } returnMessage.Ret = "successfully"; return(returnMessage); }
/// <summary> /// Полный запрос от ВК /// http://localhost:50694/?api_url=https://api.vk.com/api.php&api_id=6206497&api_settings=1&viewer_id=46611989&viewer_type=4&sid=83876255d0fa6f12ed3a2f0d9005692df68ca0348dd1dfbe4d0d52c86ae6ecd01d56b92328a89486bf72f&secret=83d669486c&access_token=bd07a6fc28d0d8491e122703b7090996d2c8b7d5ee52fbcef603ae67d5edc5bb4166effc81fa3b840e602&user_id=0&is_app_user=1&auth_key=972a517ae2939e02e9b3834c97da5a50&language=0&parent_language=0&is_secure=1&ads_app_id=6206497_f18e3a738302567922&api_result=%7B%22response%22%3A%5B%7B%22id%22%3A46611989%2C%22first_name%22%3A%22%D0%9C%D0%B8%D1%88%D0%B0%22%2C%22last_name%22%3A%22%D0%A8%D1%82%D0%B0%D0%BD%D1%8C%D0%BA%D0%BE%22%2C%22nickname%22%3A%22BenyKrik%22%2C%22city%22%3A%7B%22id%22%3A2%2C%22title%22%3A%22%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3%22%7D%2C%22country%22%3A%7B%22id%22%3A1%2C%22title%22%3A%22%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%22%7D%2C%22photo_200%22%3A%22https%3A%5C%2F%5C%2Fpp.userapi.com%5C%2Fc639129%5C%2Fv639129989%5C%2F2ba7f%5C%2FLGwnKIkG1pw.jpg%22%2C%22has_mobile%22%3A1%2C%22online%22%3A0%2C%22status%22%3A%22%D0%AD%D0%B9%2C%20%D0%BF%D1%80%D0%BE%D1%81%D0%BD%D0%B8%D1%81%D1%8C%21%20%D0%9D%D1%83%20%D1%82%D1%8B%20%D0%B8%20%D1%81%D0%BE%D0%BD%D1%8F.%20%D0%A2%D0%B5%D0%B1%D1%8F%20%D0%B4%D0%B0%D0%B6%D0%B5%20%D0%B2%D1%87%D0%B5%D1%80%D0%B0%D1%88%D0%BD%D0%B8%D0%B9%20%D1%88%D1%82%D0%BE%D1%80%D0%BC%20%D0%BD%D0%B5%20%D1%80%D0%B0%D0%B7%D0%B1%D1%83%D0%B4%D0%B8%D0%BB.%20%D0%93%D0%BE%D0%B2%D0%BE%D1%80%D1%8F%D1%82%2C%20%D0%BC%D1%8B%20%D1%83%D0%B6%D0%B5%20%D0%BF%D1%80%D0%B8%D0%BF%D0%BB%D1%8B%D0%BB%D0%B8%20%D0%B2%20%D0%9C%D0%BE%D1%80%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D0%B4.%20%D0%9D%D0%B0%D1%81%20%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D1%82%D1%8F%D1%82%2C%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%BE%D1%87%D0%BD%D0%BE%21%22%7D%5D%7D&referrer=group&lc_name=135b0cdd&sign=c76f449244e9deac48004ec57e83a275eb2c2f8ea159a8c85fb807ca3dc25457&hash /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <IActionResult> Index(FirstRequest request) { //TODO обработка запроса if (Environment.IsDevelopment()) { if (string.IsNullOrEmpty(request.ApiResultJson)) { request.ApiResultJson = @"{'response':[{'id':46611989,'first_name':'Миша','last_name':'Штанько','nickname':'BenyKrik','city':{'id':2,'title':'Санкт - Петербург'},'country':{'id':1,'title':'Россия'},'photo_200':'https:\/\/ pp.userapi.com\/ c639129\/ v639129989\/ 2ba7f\/ LGwnKIkG1pw.jpg','has_mobile':1,'online':0,'status':'Эй, проснись!Ну ты и соня.Тебя даже вчерашний шторм не разбудил. Говорят, мы уже приплыли в Морровинд.Нас выпустят, это точно!'}]}"; } } var userData = request.ApiResult.Value.UserData; var user = await Unit.Get <User>().FindAsync(_x => _x.Id == userData.Id); if (user == null) { user = new User(); Unit.Get <User>().Create(user); } user.Id = userData.Id; user.Avatar = userData.Photo200; user.FirstName = userData.Firstname; user.LastName = userData.Lastname; user.LastEnter = DateTime.Now; CurrentUser.SetUserData(user); HttpContext.Session.Set(nameof(User), CurrentUser); await Unit.SaveAsync(); request.CustomData = new CustomData(); request.CustomData.IsFamiliarWithBot = CurrentUser.IsFamiliarWithBot; request.CustomData.Longitude = CurrentUser.Longitude; request.CustomData.Latitude = CurrentUser.Latitude; request.CustomData.IdCity = CurrentUser.IdCity; return(View(request)); }
public void SendFirstRequest(FirstRequest firstRequest) { Message newMessage = new Message(); newMessage.Applicant = firstRequest.Applicant; newMessage.Recipient = firstRequest.Recipient; newMessage.SupplyId = firstRequest.SupplyId; newMessage.NeedId = firstRequest.NeedId; newMessage.Time = firstRequest.Time; newMessage.MessageType = "First"; newMessage.MeaasgeState = "N"; newMessage.Items = new List <Item>(); for (int i = 0; i < firstRequest.Items.Count; i++) { newMessage.Items.Add(new Item()); } for (int i = 0; i < firstRequest.Items.Count; i++) { newMessage.Items[i].ItemName = firstRequest.Items[i].ItemName; newMessage.Items[i].ItemCount = firstRequest.Items[i].ItemCount; } platformContext.Messages.Add(newMessage); for (int i = 0; i < firstRequest.Items.Count; i++) { Exchange exchange = new Exchange(); exchange.Requestor = firstRequest.Applicant; exchange.Supplicant = firstRequest.Recipient; exchange.NeedId = firstRequest.NeedId; exchange.SupplyId = firstRequest.SupplyId; exchange.ItemName = firstRequest.Items[i].ItemName; exchange.ItemCount = Convert.ToString(firstRequest.Items[i].ItemCount); exchange.Type = "请求"; exchange.Time = firstRequest.Time; platformContext.Exchanges.Add(exchange); } platformContext.SaveChanges(); }
public async Task <int> GetPlayerCount(CancellationToken token) { using (var client = new TcpClient()) { client.Connect(ServerAddress, Constants.DefaultPort); using (var stream = client.GetStream()) { var firstRequest = new FirstRequest() { RequestType = RequestType.PlayerCount, }; var firstRequestJson = JsonConvert.SerializeObject(firstRequest); Debug.Log($"firstRequestJson sent '{firstRequestJson}'"); var firstRequestData = Encoding.UTF8.GetBytes(firstRequestJson); stream.Write(firstRequestData, 0, firstRequestData.Length); var payerCountRequest = new PlayerCountRequest() { RequestType = RequestType.PlayerCount, }; var payerCountRequestJson = JsonConvert.SerializeObject(payerCountRequest); var payerCountRequestData = Encoding.UTF8.GetBytes(payerCountRequestJson); await stream.WriteAsync(payerCountRequestData, 0, payerCountRequestData.Length, token); var responseSize = Response.GetSize(); var responseData = new byte[responseSize]; int triesCount = 0; bool success = false; do { try { await Task.Delay(_timeBetweenTries, token); stream.Read(responseData, 0, responseData.Length); success = true; } catch (Exception ex) { Debug.Log(ex.ToString()); triesCount++; success = false; } finally { } }while (!success || triesCount > maxTries); if (!success) { throw new IOException("cannot connect to server"); } string responseJson = System.Text.Encoding.UTF8.GetString(responseData); var response = JsonConvert.DeserializeObject <Response>(responseJson); return(response.PlayerCount); } } }
private void ProcessServerLoop(TcpListener server, CancellationToken token) { while (!token.IsCancellationRequested) { Debug.Log("Ожидание подключений... "); try { using (TcpClient client = server.AcceptTcpClient()) { Debug.Log("Подключен клиент. Выполнение запроса..."); using (NetworkStream stream = client.GetStream()) { var firstRequestSize = FirstRequest.GetSize(); var buffer = new byte[firstRequestSize]; Debug.Log($"firstRequestSize {firstRequestSize}"); stream.Read(buffer, 0, buffer.Length); string result = System.Text.Encoding.UTF8.GetString(buffer); Debug.Log($"firstRequest string '{result}'"); var firstRequest = JsonConvert.DeserializeObject <FirstRequest>(result); var response = new Response(); switch (firstRequest.RequestType) { case RequestType.PlayerCount: var playerCountRequestSize = PlayerCountRequest.GetSize(); buffer = new byte[playerCountRequestSize]; stream.Read(buffer, 0, buffer.Length); result = System.Text.Encoding.UTF8.GetString(buffer); var playerCountRequest = JsonConvert.DeserializeObject <PlayerCountRequest>(result); response.PlayerCount = 4; break; default: Debug.Assert(false); Debug.Break(); break; } var responseJson = JsonConvert.SerializeObject(response); var responseData = Encoding.UTF8.GetBytes(responseJson); Debug.Log($"Отправлено сообщение: {responseData}"); stream.Write(responseData, 0, responseData.Length); Debug.Log($"Отправлено сообщение: {responseData}"); } } } catch (Exception ex) { Debug.Log($"exception on server: {ex}"); throw; } finally { //TODO: check that does not block. I know it is not, but check Thread.Sleep(1000); } } }