public string Create(string senderReceptor, string textMessage, HttpPostedFileBase file)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:53273/api/Texts");
                if (textMessage.Equals(string.Empty) && file == null)
                {
                    return("No puede enviar mensajes vacios");
                }
                if (textMessage != string.Empty)
                {
                    var cipher  = new SDES();
                    var getUser = new UsersLogic();

                    var receptor = senderReceptor.Split('|');

                    var a           = getUser.getUserByUsername(receptor[1]).PrivateKey;
                    var receptorKey = (Math.Pow(g, a) % p);

                    var key       = BigInteger.ModPow((int)receptorKey, UserPrivateKey, p);
                    var cipherKey = Convert.ToString(((int)key), 2);

                    textMessage = cipher.CipherText(textMessage, cipherKey);
                }
                else
                {
                    textMessage = string.Empty;
                }
                var compressFile = new CompresssDecompressActions();
                var message      = new MessageModel()
                {
                    SenderReceptor = senderReceptor,
                    Message        = textMessage,
                    UploadedFile   = file != null?compressFile.generateCharactersList(file) : "",
                                         PublicKey = (int)(Math.Pow(g, UserPrivateKey) % p)
                };

                var postTask = client.PostAsJsonAsync("Messages", message);
                postTask.Wait();

                var result = postTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    return("200");
                }
                else
                {
                    if ((int)result.StatusCode >= 400 && (int)result.StatusCode < 500)
                    {
                        return(result.StatusCode.ToString() + ". Revise los datos ingresados :D");
                    }
                    else
                    {
                        return(result.StatusCode.ToString() + ". Contacte a un desarrollador del sistema D:");
                    }
                }
            }
        }
        public List <MessageModel> getMessages(string SenderReceptor)
        {
            using (var client = new HttpClient())
            {
                var searchedMessages = getAllUserMessages(SenderReceptor);

                if (searchedMessages.GetType().ToString() == "System.String")
                {
                    return(null);
                }

                var decipheredMessages    = new List <MessageModel>();
                var decipherMessage       = new SDES();
                var decompressFileMessage = new CompresssDecompressActions();
                var getUser  = new UsersLogic();
                var receptor = SenderReceptor.Split('|');
                if (receptor[1] == string.Empty)
                {
                    return(searchedMessages);
                }
                if (receptor[0] == LoggedUser)
                {//es un mensaje que yo envié
                    var a = getUser.getUserByUsername(receptor[1]).PrivateKey;
                    foreach (var message in searchedMessages)
                    {
                        var key       = BigInteger.ModPow((int)message.PublicKey, a, p);
                        var commonKey = Convert.ToString((int)key, 2);
                        message.Message = message.Message != string.Empty ? decipherMessage.DecipherText(message.Message, commonKey) : string.Empty;
                        decipheredMessages.Add(message);
                    }
                }
                else
                {//es un mensaje recibido
                    foreach (var message in searchedMessages)
                    {
                        var key       = BigInteger.ModPow((int)message.PublicKey, UserPrivateKey, p);
                        var commonKey = Convert.ToString((int)key, 2);
                        message.Message = message.Message != string.Empty ? decipherMessage.DecipherText(message.Message, commonKey) : string.Empty;
                        decipheredMessages.Add(message);
                    }
                }



                return(searchedMessages);
            }
        }
        public List <MessageModel> MessageThatContainsSearch(string valueToLookFor)
        {
            var loggedUser           = LoggedUser;
            var messagesThatContains = getAllUserMessages(loggedUser);

            if (messagesThatContains.GetType().ToString() == "System.String")
            {
                return(null);
            }

            if (messagesThatContains != null)
            {
                var resultOfTask          = new List <MessageModel>();
                var decipherMessage       = new SDES();
                var decompressFileMessage = new CompresssDecompressActions();
                var getUser = new UsersLogic();
                foreach (var item in messagesThatContains)
                {
                    var receptor = item.SenderReceptor.Split('|');
                    if (receptor[0] == LoggedUser)
                    {//es un mensaje que yo envié
                        var a         = getUser.getUserByUsername(receptor[1]).PrivateKey;
                        var key       = BigInteger.ModPow((int)item.PublicKey, a, p);
                        var commonKey = Convert.ToString((int)key, 2);
                        item.Message = item.Message != string.Empty ? decipherMessage.DecipherText(item.Message, commonKey) : string.Empty;
                        resultOfTask.Add(item);
                    }
                    else
                    {//es un mensaje recibido
                        var key       = BigInteger.ModPow((int)item.PublicKey, UserPrivateKey, p);
                        var commonKey = Convert.ToString((int)key, 2);
                        item.Message = item.Message != string.Empty ? decipherMessage.DecipherText(item.Message, commonKey) : string.Empty;
                        resultOfTask.Add(item);
                    }
                }
                return(resultOfTask.FindAll(messages => messages.Message.Contains(valueToLookFor)));
            }
            else
            {
                return(null);
            }
        }