Exemple #1
0
        private static void RecievePicture(Socket client, Connection connection, String data)
        {
            //lock (photoLocker)
            //{
            ILog log;

            try
            {
                FileProtocol fileProtocol = new FileProtocol(client);
                var          fileName     = fileProtocol.ReceiveFile(Server.pictureCount + "");
                Server.pictureCount++;
                connection.User.UploadPicture(fileName, data);
                log         = new Info();
                log.User    = connection.User.Name;
                log.Message = "Usuario sube nueva foto";
            }
            catch
            {
                log         = new Error();
                log.User    = connection.User.Name;
                log.Message = "Error subiendo foto";
            }
            Server.GetInstance().LogAction(log);
            //}
        }
Exemple #2
0
        public static void ClientHandler(Socket clientSocket)
        {
            var id = Interlocked.Add(ref Server.clientNumber, 1);

            bool isConnected   = true;
            User connectedUser = null;

            Console.WriteLine("Conectado al cliente " + id);
            while (isConnected)
            {
                try
                {
                    Message message = MessageProtocol.ReceiveMessage(clientSocket);
                    switch (message.Header.ICommand)
                    {
                    case CommandConstants.Login:
                        try
                        {
                            if (UserExist(message.MessageText))
                            {
                                connectedUser = SearchUser(message.MessageText);
                            }
                        }
                        catch (Exception)
                        {
                        }

                        break;

                    case CommandConstants.Register:

                        RegisterLogic(message.MessageText, clientSocket);

                        break;

                    case CommandConstants.ListUsers:
                        string  listUsers     = ShowUsers();
                        Message serverMessage = new Message(HeaderConstants.Response, CommandConstants.ListUsers, listUsers);
                        MessageProtocol.SendMessage(clientSocket, serverMessage);
                        break;

                    case CommandConstants.UploadFile:
                        try
                        {
                            FileProtocol fp       = new FileProtocol(clientSocket);
                            string       fileName = fp.ReceiveFile();

                            connectedUser.PhotoList.Add(new Photo(fileName));

                            Message uploadMessage = new Message(HeaderConstants.Response, CommandConstants.UploadFile, "Foto recibida");
                            MessageProtocol.SendMessage(clientSocket, uploadMessage);
                        }
                        catch (Exception)
                        {
                        }

                        break;

                    case CommandConstants.UserLogged:
                        if (connectedUser != null)
                        {
                            Message authMessage = new Message(HeaderConstants.Response, CommandConstants.UserLogged);
                            MessageProtocol.SendMessage(clientSocket, authMessage);
                        }
                        else
                        {
                            Message authMessage = new Message(HeaderConstants.Response, CommandConstants.UserNotLogged);
                            MessageProtocol.SendMessage(clientSocket, authMessage);
                        }

                        break;

                    case CommandConstants.ListUserPhotos:
                        try
                        {
                            string userName     = message.MessageText;
                            string fileresponse = "";
                            if (!UserExist(userName))
                            {
                                fileresponse = "Usuario invalido";
                            }
                            else
                            {
                                fileresponse = SearchUser(userName).showUserPhotos();
                            }
                            Message filesMessage = new Message(HeaderConstants.Response, CommandConstants.ListUserPhotos, fileresponse);

                            MessageProtocol.SendMessage(clientSocket, filesMessage);
                        }
                        catch (Exception)
                        {
                        }
                        break;


                    case CommandConstants.CommentPhoto:
                        try
                        {
                            string photoName    = message.MessageText;
                            string fileresponse = "";

                            Photo commentedPhoto = SearchPhoto(connectedUser, photoName);
                            if (!PhotoExist(connectedUser, photoName))
                            {
                                fileresponse = "Foto invalida";
                            }
                            else
                            {
                                fileresponse = SearchPhoto(connectedUser, photoName).showComments();
                            }

                            Message commentMessage = new Message(HeaderConstants.Response, CommandConstants.CommentPhoto, fileresponse);

                            MessageProtocol.SendMessage(clientSocket, commentMessage);
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                        break;

                    case CommandConstants.UserNotLogged:
                        connectedUser = null;
                        break;

                    default:
                        break;
                    }
                }
                catch (Exception)
                {
                    isConnected = false;
                }
            }
        }