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); } }