public IActionResult AddResponse([FromForm] NewResponse rData)
        {
            var      user        = _um.GetUserAsync(HttpContext.User).Result;
            Response newResponse = new Response
            {
                Body       = rData.Body,
                UserId     = user.Id,
                Popularity = 0,
                IsSolution = false
            };

            _service.CreateResponse(newResponse, rData.QuestionId);
            var origQ        = _service.GetQuestionById(rData.QuestionId);
            var qResponses   = _service.GetRelatedResponses(origQ.Id);
            var viewQuestion = new QuestionForView
            {
                Id         = origQ.Id,
                Title      = origQ.Title,
                Body       = origQ.Body,
                UserId     = origQ.UserId,
                Popularity = origQ.Popularity,
                Responses  = qResponses
            };

            return(View("Details", viewQuestion));
        }
Пример #2
0
 public void Listen()
 {
     while (ListeningToConnection)
     {
         byte[] buffer = new byte[1024];
         try {
             string response = Encoding.ASCII.GetString(buffer, 0, connection.Receive(buffer));
             Console.WriteLine("RESPONSE: " + response);
             if (response == "")
             {
                 PeerDisconnected?.Invoke();
                 break;
             }
             response = response.Replace("\r\n", "");
             string[] sections = response.Split('|');
             NewResponse?.Invoke(sections[0], sections[1]);
         } catch {
             PeerDisconnected?.Invoke();
             break;
         }
     }
 }
        private async Task <T> SendAndProcessRequest <T>(CancellationToken cancellationToken, RestRequest request)
        {
            var response = await _client.ExecuteTaskAsync <T>(request, cancellationToken)
                           .ConfigureAwait(false);

            //
            var dict = new Dictionary <string, string>
            {
                { "SC", response.StatusCode.ToString() },
                { "Content", response.Content },
                { "Error", response.ErrorMessage }
            };
            var sb = new StringBuilder();

            foreach (var item in dict)
            {
                sb.AppendLine(item.Key + " - " + item.Value);
            }
            NewResponse?.Invoke(this, sb.ToString());
            //
            return(CheckStatusResponse(response));
        }
Пример #4
0
        void HandleClient(object obj)
        {
            Socket client = obj as Socket;

            while (IsServerWork)
            {
                try
                {
                    byte[] buffer = new byte[6500];
                    client.Receive(buffer); // Принимаем данные

                    Guid id = Guid.NewGuid();

                    ActAbstract command = commandParser.ParseCommand(buffer, client);

                    if (sender.ExistUser(client))
                    {
                        NewRequest?.Invoke(DateTime.Now, command.ToString().Split('.').Last(), id, sender.GetUserID(client));                          // Событие нового сообщения
                    }
                    else
                    {
                        NewRequest?.Invoke(DateTime.Now, command.ToString().Split('.').Last(), id, Guid.Empty);  // Событие нового сообщения
                    }
                    command.Execute();
                    NewResponse?.Invoke(DateTime.Now, id);
                }
                catch (SocketException)
                {
                    break; // Выходим из цикла
                }
            }

            // Заканчиваем подключение
            sender.RemoveUser(client);
            CliendDisconnect.Invoke();
            client.Shutdown(SocketShutdown.Both);
            client.Disconnect(false);
            client.Dispose();
        }
Пример #5
0
 public void OnData(string value)
 {
     NewResponse?.Invoke(this, value.ToString());
 }