Browse Source

made adding items to the auction and deleting

DarkGolly 4 years ago
parent
commit
df4796d933

+ 9 - 8
CardCollector/Controllers/AuctionController.cs

@@ -39,18 +39,19 @@ namespace CardCollector.Controllers
                 Trader = user.Id
             };
             // TODO реализовать добавление позиции на аукцион
-            // await AuctionDao.AddNew(product);
+            AuctionDao.AddNew(product);
         }
         
-        private static async Task<ResultCode> BuyCard(UserEntity user, string stickerShortHashCode, int price, int count = 1)
+        //покупка стикера
+        private static async Task BuyCard(UserEntity user, int price, int count = 1)
         {
             // TODO @darkgolly попробуй переписать метод аналогично тому, что выше
-            if (user.Cash.Coins < count * price)
-                return ResultCode.NotEnoughCash;
-            //подтверждаем действие
-            user.Stickers[stickerShortHashCode].Count += count;
-            user.Cash.Coins += price * count;
-            return ResultCode.Ok;
+            var hash = user.Session.SelectedSticker.Md5Hash;
+            user.Stickers[hash].Count += user.Session.SelectedSticker.Count;
+            user.Cash.Coins -= user.Session.IncomeCoins;
+            user.Cash.Gems -= user.Session.IncomeGems;
+            
+            AuctionDao.SoldStikers(hash);
         }
         
         public static async Task<int> GetStickerCount(string stickerId)

+ 14 - 0
CardCollector/DataBase/EntityDao/AuctionDao.cs

@@ -35,5 +35,19 @@ namespace CardCollector.DataBase.EntityDao
             var stickersList = await StickerDao.GetAll(filter);
             return stickersList.Where(e => entityList.Contains(e.Id));
         }
+        //добавляем объект в аукцион
+        public static void AddNew(AuctionEntity product)
+        {
+            Table.AddAsync(product);
+        }
+        //удаляем проданный объект
+        public static void SoldStikers(string hash)
+        {
+            var list = Table
+                .Where(c => c.StickerId == hash)
+                .FirstOrDefault();
+            
+            Table.Remove(list);
+        }
     }
 }