public async Task SendAppCardMessage(string conversationId, AppCard appCard) { WebSocketMessage msg = new WebSocketMessage { id = Guid.NewGuid().ToString(), action = "CREATE_MESSAGE", @params = new Params { conversation_id = conversationId, category = "APP_CARD", status = "SENT", message_id = Guid.NewGuid().ToString(), data = Convert.ToBase64String(Encoding.UTF8.GetBytes(appCard.ToString())) } }; await SendMessage(msg); }
// not mapped public async Task <AppCard> GetOneCardOfOneUser(string id, string cardId) { var dbInv = await _context.UserCardInventories.Include(x => x.Card).FirstOrDefaultAsync(x => x.UserId == id && x.CardId == cardId); if (dbInv == null) { return(null); } var appCard = new AppCard(dbInv.Card.Rating, dbInv.Card.NumOfRatings, dbInv.Card.Rarity) { CardId = dbInv.CardId, Name = dbInv.Card.Name, Type = dbInv.Card.Type, Image = dbInv.Card.Image }; return(appCard); }
public async Task <ActionResult <CardReadDTO> > Post(CardCreateDTO newCard) { //check if card exists var card = await _cardRepo.GetOneCard(newCard.CardId); if (card != null) { return(Conflict()); //card already exists and cant be created } var createdCard = new AppCard(newCard.Rating, newCard.NumOfRatings, newCard.Rarity) { CardId = newCard.CardId, Name = newCard.Name, Type = newCard.Type, Image = newCard.Image }; await _cardRepo.AddOneCard(createdCard); return(CreatedAtAction(nameof(GetCardById), new { id = createdCard.CardId }, createdCard)); //201 new card created }
public async Task <ActionResult <CardReadDTO> > AddCardToUserInventory(string id, CardCreateDTO cardCreateDTO) { var user = await _userRepo.GetOneUser(id); AppCard newCard; if (user != null) { newCard = new AppCard(cardCreateDTO.Rating, cardCreateDTO.NumOfRatings, cardCreateDTO.Rarity) { CardId = cardCreateDTO.CardId, Name = cardCreateDTO.Name, Type = cardCreateDTO.Type, Image = cardCreateDTO.Image, }; newCard.UpdateValue(); await _userRepo.AddOneCardToOneUser(id, newCard.CardId); } else { return(NotFound()); } var cardReadDTO = new CardReadDTO { CardId = cardCreateDTO.CardId, Name = cardCreateDTO.Name, Type = cardCreateDTO.Type, Rarity = cardCreateDTO.Rarity, Rating = cardCreateDTO.Rating, NumOfRatings = cardCreateDTO.NumOfRatings, Value = cardCreateDTO.Value }; // what method to return return(CreatedAtAction(nameof(GetUsersCardById), new { id = user.UserId, cardid = newCard.CardId }, cardReadDTO)); }
static void HandleOnRecivedMessage(object sender, EventArgs args, string message) { var incomingMessage = JsonConvert.DeserializeObject <RecvWebSocketMessage>(message); Console.WriteLine(incomingMessage); if ((incomingMessage.action == "CREATE_MESSAGE") && (incomingMessage.data != null)) { // Console.WriteLine(incomingMessage.data.conversation_id); MixinApi callback = (MixinApi)sender; //send ack for every Create Message! callback.SendMessageResponse(incomingMessage.data.message_id).Wait(); if (incomingMessage.data.category == "PLAIN_TEXT") { byte[] strOriginal = Convert.FromBase64String(incomingMessage.data.data); string clearText = System.Text.Encoding.UTF8.GetString(strOriginal); Console.WriteLine(clearText); string thisMessageId = Guid.NewGuid().ToString(); System.Console.WriteLine("Send echo with message id:" + thisMessageId); if (clearText == "a") { AppCard appCard = new AppCard(); appCard.title = "Pay BTC 0.0001"; appCard.icon_url = "https://images.mixin.one/HvYGJsV5TGeZ-X9Ek3FEQohQZ3fE9LBEBGcOcn4c4BNHovP4fW4YB97Dg5LcXoQ1hUjMEgjbl1DPlKg1TW7kK6XP=s128"; appCard.description = "hi"; appCard.action = "https://mixin.one/pay?recipient=" + USRCONFIG.ClientId + "&asset=" + "c6d0c728-2624-429b-8e0d-d9d19b6592fa" + "&amount=" + "0.001" + "&trace=" + System.Guid.NewGuid().ToString() + "&memo="; callback.SendAppCardMessage(incomingMessage.data.conversation_id, appCard); } else if (clearText == "g") { List <AppButton> appBtnList = new List <AppButton>(); string payLinkEOS = "https://mixin.one/pay?recipient=" + USRCONFIG.ClientId + "&asset=" + "6cfe566e-4aad-470b-8c9a-2fd35b49c68d" + "&amount=" + "0.1" + "&trace=" + System.Guid.NewGuid().ToString() + "&memo="; string payLinkBTC = "https://mixin.one/pay?recipient=" + USRCONFIG.ClientId + "&asset=" + "c6d0c728-2624-429b-8e0d-d9d19b6592fa" + "&amount=" + "0.001" + "&trace=" + System.Guid.NewGuid().ToString() + "&memo="; AppButton btnBTC = new AppButton(); btnBTC.label = "Pay BTC 0.001"; btnBTC.color = "#0080FF"; btnBTC.action = payLinkBTC; AppButton btnEOS = new AppButton(); btnEOS.label = "Pay EOS 0.1"; btnEOS.color = "#8000FF"; btnEOS.action = payLinkEOS; appBtnList.Add(btnBTC); appBtnList.Add(btnEOS); callback.SendAppButtonGroupMessage(incomingMessage.data.conversation_id, appBtnList); } else { callback.SendTextMessage(incomingMessage.data.conversation_id, clearText, thisMessageId); } } if (incomingMessage.data.category == "SYSTEM_ACCOUNT_SNAPSHOT") { byte[] strOriginal = Convert.FromBase64String(incomingMessage.data.data); string clearText = System.Text.Encoding.UTF8.GetString(strOriginal); Console.WriteLine(clearText); Transfer trsInfo = JsonConvert.DeserializeObject <Transfer>(clearText); Console.WriteLine(trsInfo.asset_id); Console.WriteLine(trsInfo.opponent_id); Console.WriteLine(trsInfo.amount); if (Int32.Parse(trsInfo.amount) > 0) { Transfer reqInfo = callback.Transfer(trsInfo.asset_id, trsInfo.opponent_id, trsInfo.amount, USRCONFIG.PinCode, System.Guid.NewGuid().ToString(), ""); Console.WriteLine(reqInfo); } } } // Console.WriteLine(incomingMessage); if (incomingMessage.action == "ACKNOWLEDGE_MESSAGE_RECEIPT") { if (incomingMessage.data != null) { System.Console.WriteLine("The message delivery status: " + incomingMessage.data.message_id + " " + incomingMessage.data.status); } } if (incomingMessage.action == "LIST_PENDING_MESSAGES") { System.Console.WriteLine("The bot is listening!"); } }