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));
        }
Ejemplo n.º 2
0
 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));
        }
Ejemplo n.º 5
0
 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}");
     }
 }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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);
            }
        }