ChessServer.Commands.CommandChat.DoWork C# (CSharp) Method

DoWork() public method

public DoWork ( string request ) : Response
request string
return Protocol.Response
        public override Response DoWork(string request)
        {
            var workRequest = JsonConvert.DeserializeObject<ChatRequest>(request);
            var workResponse = new ChatResponse();
            if (Server.Games.ContainsKey(workRequest.GameID))
            {
                if (Server.Games[workRequest.GameID].PlayerWhite.Name == workRequest.From)
                {
                    var blackName = Server.Games[workRequest.GameID].PlayerBlack.Name;
                    var geted = Server.Users.Values.FirstOrDefault(user => user.Name == blackName);
                    if (geted != null)
                    {
                        Server.Messages.GetOrAdd(geted.Name, i => new List<Message>()).Add(MessageSender.ChatMessage(workRequest.From, workRequest.SayString));
                    }
                }
                else
                {
                    if (Server.Games[workRequest.GameID].PlayerBlack.Name == workRequest.From)
                    {
                        var whiteName = Server.Games[workRequest.GameID].PlayerWhite.Name;
                        var geted = Server.Users.Values.FirstOrDefault(user => user.Name == whiteName);

                        if (geted != null)
                        {
                            Server.Messages.GetOrAdd(geted.Name, i => new List<Message>()).Add(MessageSender.ChatMessage(workRequest.From, workRequest.SayString));
                        }
                    }
                }
                workResponse.Status = Statuses.Ok;
            }
            else
            {
                workResponse.Status = Statuses.GameNotFound;
            }
            return workResponse;
        }
CommandChat