public override Response Handle(Request request) { Chat Chat = new Chat(int.Parse(request.Data["Chat"])); ClientStatus status = ClientStatus.GetInstance(Thread.CurrentThread.ManagedThreadId.ToString()); if (!UserIsInChat(Chat)) { return(ResponseError.DefineError(request, ResponseErrorType.InvalidChatError)); } else { Dictionary <string, string> ResponseData = new Dictionary <string, string> { ["Author"] = status.User.Username, ["Message"] = request.Data["Message"] }; foreach (KeyValuePair <SocketHandler, ClientStatus> ClientData in Server.Clients) { if (ClientData.Value.User.IsParticipant(Chat) && ClientData.Value.Chat != null && ClientData.Value.Chat.Id == Chat.Id) { Console.WriteLine("SENDED TO {0}", ClientData.Value.User.Username); ClientData.Key.Send(new Response(status: ResponseStatus.Success, onRequest: RequestType.SpreadMessage, data: ResponseData)); } } try { Chat.AddMessage(status.User, request.Data["Message"]); } catch (MySqlException) { return(ResponseError.DefineError(request, ResponseErrorType.DatabaseAccessError)); } return(new Response(ResponseStatus.Success, onRequest: request.Type)); } }
public void Save() { Chat.AddMessage(User, RequestData["Message"]); }