Tigran Shaginyan 3 years ago
parent
commit
82d8e42c93

+ 1 - 1
CardCollector.sln.DotSettings.user

@@ -22,6 +22,6 @@
 	<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=CardCollector_002FResources_002FMessages/@EntryIndexedValue">True</s:Boolean>
 	<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=CardCollector_002FResources_002FSortingTypes/@EntryIndexedValue">False</s:Boolean>
 	<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=CardCollector_002FResources_002FText/@EntryIndexedValue">False</s:Boolean>
-	<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=CardCollector_002FStickerEffects_002FEffectTranslations/@EntryIndexedValue">False</s:Boolean>
+	<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=CardCollector_002FStickerEffects_002FEffectTranslations/@EntryIndexedValue">True</s:Boolean>
 	
 	<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>

+ 7 - 5
CardCollector/Commands/Message/CreateToken.cs

@@ -14,13 +14,13 @@ namespace CardCollector.Commands.Message
         protected override string CommandText => "create_token";
 
         private const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-_";
-        private const string site = "http://127.0.0.1:8080/";
         
         public override async Task Execute()
         {
-            var token = GenerateNewToken();
-            await SessionTokenDao.AddNew(User.Id, token);
-            var loginLink = $"{site}login?token={token}";
+            var token = await SessionTokenDao.AddNew(User.Id, GenerateNewToken());
+            var data = Update.Message!.Text!.Split(' ')[1].Split('=');
+            var host = data[1].Replace('-', '.').Replace('_', ':');
+            var loginLink = $"http://{host}/login?token={token}";
             await MessageController.EditMessage(User, $"<a href=\"{loginLink}\">{Messages.your_login_link}</a>",
                 Keyboard.LoginKeyboard(loginLink), ParseMode.Html);
         }
@@ -34,7 +34,9 @@ namespace CardCollector.Commands.Message
         {
             if (update.Message!.Type != MessageType.Text) return false;
             var data = update.Message.Text!.Split(' ');
-            return data.Length > 1 && data[1] == CommandText;
+            if (data.Length < 2) return false;
+            var command = data[1].Split('=')[0];
+            return command == CommandText;
         }
 
         public CreateToken() { }

+ 8 - 4
CardCollector/DataBase/EntityDao/SessionTokenDao.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Linq;
 using System.Threading.Tasks;
 using CardCollector.DataBase.Entity;
 using Microsoft.EntityFrameworkCore;
@@ -16,18 +17,21 @@ namespace CardCollector.DataBase.EntityDao
             Table = Instance.SessionTokens;
         }
 
-        public static async Task AddNew(long userId, string token)
+        public static async Task<string> AddNew(long userId, string token)
         {
             try
             {
-                var result = await Table.AddAsync(new SessionToken {UserId = userId, Token = token});
-                await BotDatabase.SaveData();
-                Table.Attach(result.Entity);
+                var result = await Table.FirstOrDefaultAsync(item => item.UserId == userId) ??
+                    (await Table.AddAsync(new SessionToken {UserId = userId, Token = token})).Entity;
+                await Instance.SaveChangesAsync();
+                Table.Attach(result);
                 Instance.ChangeTracker.Clear();
+                return result.Token;
             }
             catch (InvalidOperationException)
             {
                 Logs.LogOut("Cant creat token");
+                return "";
             }
         }
     }

+ 1 - 1
CardCollector/Resources/Constants.cs

@@ -5,7 +5,7 @@ namespace CardCollector.Resources
     public static class Constants
     {
         /* Переключить данный флаг при сборке на сервер */
-        public const bool DEBUG = true;
+        public const bool DEBUG = false;
 
         /* Интервал сохранения изменений */
         public const double SAVING_CHANGES_INTERVAL = DEBUG ? 10 * 1000 : 5 * 60 * 1000;