public void Operation(MainRequest chatData) { var data = chatData as GroupChatMessageModel; var groupChat = _allChatDetails.GetGroupByName(data.GroupName); var client = _allChatDetails.GetClientByName(Name); if (!groupChat.IsClientManager(client)) { var errorBody = new ErrorMessage { RequestType = "ErrorResponse", Error = $"The user name {Name} cannot add user to group beacuse he has not permission" }; _requestHandler.SendData(client.Client, Utils.SerlizeObject(errorBody)); return; } var alClientsToAdd = data.lsUsers.Where(c => !groupChat.IsClientExistInChat(_allChatDetails.GetClientByName(c))).Select(u => _allChatDetails.GetClientByName(u)).ToList(); groupChat.AddMultiClient(alClientsToAdd); Console.WriteLine($"Group users updated"); var successBody = new OkResponseMessage { RequestType = "SuccessResponse", Message = $"Group {data.GroupName} users updated" }; _requestHandler.SendData(client.Client, Utils.SerlizeObject(successBody)); }
private bool ValidateFirstConnectionToChat(IClientModel clientSneder, ChatModule chat, InsertToChatMessageModel data) { if (clientSneder.CurrentConnectChat == null) { if (chat == null) { var errorBody = new ErrorMessage { RequestType = MessageType.ErrorResponse, Error = $"There is not chat with id {data.ChatId}" }; _containerInterfaces.RequestHandler.SendData(clientSneder.Client, Utils.SerlizeObject(errorBody)); return(false); } else { var successBody = new OkResponseMessage { RequestType = MessageType.SuccessResponse, Message = $"user {data.From} in chat with {data.ChatId}" }; _containerInterfaces.RequestHandler.SendData(clientSneder.Client, Utils.SerlizeObject(successBody)); return(true); } } return(true); }
public void Operation(MainRequest chatData) { RestClient client = new RestClient("http://worldtimeapi.org/api/timezone/Asia/Jerusalem"); RestRequest request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); if (response.StatusCode != HttpStatusCode.OK) { var errorBody = new ErrorMessage { RequestType = MessageType.ErrorResponse, Error = $"The user name {_userClient.Name} cannot add user to group beacuse he has not permission" }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(errorBody)); return; } var body = Utils.DeSerlizeObject <TimeZoneModel>(response.Content); var successBody = new OkResponseMessage { RequestType = MessageType.SuccessResponse, Message = $"time now in Isreal : {body.Datatime} and number of day {body.DayOfWeekNumber}" }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(successBody)); }
public void Operation(MainRequest chatData) { var data = chatData as GroupChatMessageModel; var groupChat = _allChatDetails.GetGroupByName(data.GroupName); if (groupChat == null) { var errorBody = new ErrorMessage { RequestType = MessageType.ErrorResponse, Error = $"There is not group chat with name {data.GroupName}" }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(errorBody)); return; } if (!groupChat.IsClientManager(_userClient)) { var errorBody = new ErrorMessage { RequestType = MessageType.ErrorResponse, Error = $"The user name {_userClient.Name} cannot remove admin permission beacuse he has not permission" }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(errorBody)); return; } var alClientsToAdd = data.lsUsers.Where(c => groupChat.IsClientExistInChat(_allChatDetails.GetClientByName(c))).Select(u => _allChatDetails.GetClientByName(u)).ToList(); groupChat.RemoveMultiManagrs(alClientsToAdd); var successBody = new OkResponseMessage { RequestType = MessageType.SuccessResponse, Message = $"Group {data.GroupName} users updated" }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(successBody)); }
public void Operation(MainRequest chatData) { try { string commands = $"Commands : {Environment.NewLine}"; foreach (var command in _commandHandler.Commands) { commands += $"Name : {command.Name} - {command.Description} {Environment.NewLine}"; } var successBody = new OkResponseMessage { RequestType = MessageType.SuccessResponse, Message = commands }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(successBody)); _containerInterfaces.Logger.LogInformation("Success send all commands"); } catch (Exception e) { var errorBody = new ErrorMessage { RequestType = MessageType.ErrorResponse, Error = $"Error when get all commands {e.Message}" }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(errorBody)); _containerInterfaces.Logger.LogError($"Error when get all commands {e.Message}"); } }
public void Operation(MainRequest chatData) { var data = chatData as GroupChatMessageModel; var groupChat = _allChatDetails.GetGroupByName(data.GroupName); var client = _allChatDetails.GetClientByName(Name); var alClientsToRemove = data.lsUsers.Where(c => groupChat.IsClientExistInChat(_allChatDetails.GetClientByName(c))).Select(u => _allChatDetails.GetClientByName(u)).ToList(); groupChat.RemoveMultiClients(alClientsToRemove); var successBody = new OkResponseMessage { RequestType = "SuccessResponse", Message = $"Group {data.GroupName} users updated" }; _requestHandler.SendData(client.Client, Utils.SerlizeObject(successBody)); }
public void Operation(MainRequest chatData) { var data = chatData as CommandMessage; if (!data.Command.StartsWith("/")) { var errorBody = new ErrorMessage { RequestType = MessageType.ErrorResponse, Error = $"not valid command , must start with /" }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(errorBody)); return; } else { IOption optionCommand = _operationCommandFactory.GetOption(data.Command); if (optionCommand == null) { var errorBody = new ErrorMessage { RequestType = MessageType.ErrorResponse, Error = $"There is not command like" }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(errorBody)); return; } var successBody = new OkResponseMessage { RequestType = MessageType.SuccessResponse, Message = $"The request for command {data.Command} starting .. " }; _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(successBody)); optionCommand.Operation(data); } }