Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        // 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);
        }
Exemplo n.º 3
0
        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
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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!");
            }
        }