DESKTOP-LJ825E1\Admin пре 1 година
родитељ
комит
9a5a339567

+ 0 - 0
Website/NEducation/Content/Texts/ErrCode.en.Designer.cs


+ 177 - 0
Website/NEducation/Content/Texts/ErrCode.en.resx

@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="CoinInvalid" xml:space="preserve">
+    <value>Type of coin invalid: 0=lost coin, 1= add more coin into balance</value>
+  </data>
+  <data name="ErrTypePackage" xml:space="preserve">
+    <value>Err type Package. Package only is 1,7,30</value>
+  </data>
+  <data name="ErrUnknown" xml:space="preserve">
+    <value>Invalid Error</value>
+  </data>
+  <data name="InvalidIOTP" xml:space="preserve">
+    <value>Invalid OTP</value>
+  </data>
+  <data name="LoginFailure" xml:space="preserve">
+    <value>Please check again your account or password. </value>
+  </data>
+  <data name="NotEnoughMoney" xml:space="preserve">
+    <value>You do not have enough balance to register MEdu Service. Plz refill and register by send ON EDU (Fee:10c/day/learn all courses) to 1540</value>
+  </data>
+  <data name="PasswordInvalid" xml:space="preserve">
+    <value>Please fill the password</value>
+  </data>
+  <data name="RegisterFailure" xml:space="preserve">
+    <value>Can't register. Command only REGISTER or CANCEL.</value>
+  </data>
+  <data name="Success" xml:space="preserve">
+    <value>You have registered MEdu service with free first registration, next day you will be charge 10c/day/learn all courses. </value>
+  </data>
+  <data name="SystemErr" xml:space="preserve">
+    <value>The system has problem.</value>
+  </data>
+  <data name="TimeoutOTP" xml:space="preserve">
+    <value>Timeout OTP</value>
+  </data>
+  <data name="TranCodeInvalid" xml:space="preserve">
+    <value>Tran code invalid: ADD_COIN, CHANGE_TOPUP_COIN, GAME_BUY_COIN, GAME_WIN_COIN</value>
+  </data>
+  <data name="TypeErr" xml:space="preserve">
+    <value>Err type channel. Channel only is IVR, SMS,USSD,WEB</value>
+  </data>
+  <data name="Unknown" xml:space="preserve">
+    <value>Unknown</value>
+  </data>
+  <data name="UserExisted" xml:space="preserve">
+    <value>Your account is existed.</value>
+  </data>
+  <data name="UserLocked" xml:space="preserve">
+    <value>User is locked</value>
+  </data>
+  <data name="WrongOldPass" xml:space="preserve">
+    <value>Wrong OTP</value>
+  </data>
+  <data name="WrongOTP" xml:space="preserve">
+    <value>Wrong OTP</value>
+  </data>
+  <data name="WrongServiceID" xml:space="preserve">
+    <value>Wrong service id. Service id is not definition</value>
+  </data>
+</root>

+ 15 - 0
Website/NEducation/Content/Texts/Lang.Designer.cs

@@ -6468,6 +6468,21 @@ namespace NEducation.Content.Texts {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;p&gt;&lt;strong&gt;Instructions for Customers to Register via App CamID and SMS:&lt;/strong&gt;&lt;/p&gt;
+        ///&lt;p&gt;&lt;br&gt;&lt;/p&gt;
+        ///&lt;ol&gt;
+        ///    &lt;li&gt;
+        ///        &lt;p&gt;&lt;strong&gt;Register via the App:&lt;/strong&gt;&lt;/p&gt;
+        ///        &lt;ul&gt;
+        ///            &lt;li&gt;Step 1: Download and install the CamID from the &lt;a href=&quot;https://apps.apple.com/vn/app/camid-movies-games-rewards/id1321717513?l=cam&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: rgb(44, 130, 201);&quot;&gt;App Store (iOS)&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt; or &lt;a href=&quot;https://play.google.com/store/apps/deta [rest of string was truncated]&quot;;.
+        /// </summary>
+        public static string SignUpToCamID {
+            get {
+                return ResourceManager.GetString("SignUpToCamID", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to With 2 simple steps.
         /// </summary>

+ 38 - 28
Website/NEducation/Content/Texts/Lang.km.resx

@@ -367,7 +367,7 @@
     <value />
   </data>
   <data name="Back" xml:space="preserve">
-    <value />
+    <value>ត្រឡប់ក្រោយ</value>
   </data>
   <data name="BeWithYouEverywhere" xml:space="preserve">
     <value />
@@ -439,10 +439,10 @@
     <value />
   </data>
   <data name="ChangePassword" xml:space="preserve">
-    <value />
+    <value>ផ្លាស់ប្តូរពាក្យសម្ងាត់</value>
   </data>
   <data name="Check" xml:space="preserve">
-    <value />
+    <value>ឆែកមើល</value>
   </data>
   <data name="CheckUserPass" xml:space="preserve">
     <value />
@@ -460,13 +460,13 @@
     <value />
   </data>
   <data name="Close" xml:space="preserve">
-    <value />
+    <value>បិទ</value>
   </data>
   <data name="Common_course_des_1" xml:space="preserve">
     <value />
   </data>
   <data name="Common_des_2" xml:space="preserve">
-    <value />
+    <value>វេបសាយរៀនពាក្យវាក្យសព្ទភាសាអង់គ្លេស</value>
   </data>
   <data name="CompleteLesson" xml:space="preserve">
     <value />
@@ -475,7 +475,7 @@
     <value />
   </data>
   <data name="Confirm" xml:space="preserve">
-    <value>បញ្ជាក់៖៣</value>
+    <value>បញ្ជាក់</value>
   </data>
   <data name="Congratulation" xml:space="preserve">
     <value />
@@ -490,25 +490,25 @@
     <value>ជ្រើសរើសចម្លើយដែលល្អបំផុត ដើម្បីបំពេញប្រយោគនីមួយៗខាងក្រោម</value>
   </data>
   <data name="Continue" xml:space="preserve">
-    <value />
+    <value>បន្ទាប់</value>
   </data>
   <data name="ContinueLearning" xml:space="preserve">
     <value />
   </data>
   <data name="ContinueWithYourChoose" xml:space="preserve">
-    <value />
+    <value>សូមបន្តជាមួយជម្រើសខាងក្រោម</value>
   </data>
   <data name="Course" xml:space="preserve">
-    <value />
+    <value>វគ្គសិក្សា</value>
   </data>
   <data name="CourseComplete" xml:space="preserve">
-    <value />
+    <value>បានបញ្ចប់វគ្គសិក្សា</value>
   </data>
   <data name="CourseManager" xml:space="preserve">
-    <value />
+    <value>គ្រប់គ្រងវគ្គសិក្សា</value>
   </data>
   <data name="createNow" xml:space="preserve">
-    <value />
+    <value>បង្កើតគណនីថ្មី </value>
   </data>
   <data name="D01" xml:space="preserve">
     <value />
@@ -712,7 +712,7 @@
     <value />
   </data>
   <data name="Evaluation" xml:space="preserve">
-    <value />
+    <value>វាយតំលៃ</value>
   </data>
   <data name="EveryoneWillbeProfessorOfWriting" xml:space="preserve">
     <value>នរណាម្នាក់អាចក្លាយជា 'អ្នកជំនាញ' ក្នុងវេយ្យាករណ៍បន្ទាប់ពីបញ្ចប់វគ្គសិក្សាវេយ្យាករណ៍ភាសាអង់គ្លេសនៅលើ MEDU ។</value>
@@ -907,10 +907,10 @@
     <value>ក្នុងអំឡុងពេលធ្វើតេស្ត ប្រសិនបើអ្នកចេញពីបន្ទប់ធ្វើតេស្តដោយមិនបំពេញសំណួរដែលនៅសល់ វានឹងរាប់ថាខុស។</value>
   </data>
   <data name="Improve" xml:space="preserve">
-    <value />
+    <value>ពង្រឹងបន្ថែម</value>
   </data>
   <data name="Improve4Skills" xml:space="preserve">
-    <value>ពង្រឹងជំនាញទាំង ៤៖ ស្តាប់ ស្តាប់ អាន សរសេរ និងបកប្រែ បង្កើតទំនាក់ទំនងជាមួយមិត្តភ័ក្តិ ក្រុមហ៊ុនផ្សេងៗ...</value>
+    <value>ពង្រឹងជំនាញទាំង ៤៖ ស្តាប់ និយាយ​  អាន សរសេរ និងបកប្រែ បង្កើតទំនាក់ទំនងជាមួយមិត្តភ័ក្តិ ក្រុមហ៊ុនផ្សេងៗ</value>
   </data>
   <data name="ImproveYourScores" xml:space="preserve">
     <value>ពិន្ទុ TOEIC, IELTS និង TOEFL នឹងប្រសើរឡើង</value>
@@ -1723,7 +1723,7 @@
     <value />
   </data>
   <data name="MiniGame" xml:space="preserve">
-    <value>ហ្គេមតូច</value>
+    <value>មីនីហ្គេម</value>
   </data>
   <data name="MinResultToPass" xml:space="preserve">
     <value>អ្នកត្រូវតែសម្រេចបាននូវលទ្ធផលតេស្តអប្បបរមា 80% ដើម្បីឆ្លងផុតមេរៀនថ្មី។</value>
@@ -1753,13 +1753,13 @@
     <value>ពាក្យសម្ងាត់ថ្មី។</value>
   </data>
   <data name="Next" xml:space="preserve">
-    <value />
+    <value>បន្ទាប់</value>
   </data>
   <data name="normal" xml:space="preserve">
     <value />
   </data>
   <data name="NumberOfRightAnswer" xml:space="preserve">
-    <value>ចម្លើយត្រឹមត្រូវ</value>
+    <value>ចម្លើយត្រឹមត្រូវ</value>
   </data>
   <data name="NumberOfWrongAnswer" xml:space="preserve">
     <value>ចម្លើយខុស</value>
@@ -2062,7 +2062,7 @@
     <value>ពាក្យសម្ងាត់ថ្មីត្រូវបានផ្ញើទៅទូរស័ព្ទរបស់អ្នក។</value>
   </data>
   <data name="Personal" xml:space="preserve">
-    <value />
+    <value>ព័ត៌មានផ្ទាល់ខ្លួន</value>
   </data>
   <data name="PhoneNumber" xml:space="preserve">
     <value>លេខទូរស័ព្ទ</value>
@@ -2071,7 +2071,7 @@
     <value>លេខទូរស័ព្ទ</value>
   </data>
   <data name="PlayNow" xml:space="preserve">
-    <value>លេងឥឡូវនេះ</value>
+    <value>មីនីហ្គេម</value>
   </data>
   <data name="PleaseRenew" xml:space="preserve">
     <value>សូមបញ្ចូលទឹកប្រាក់ក្នុងកាតរបស់អ្នក ដើម្បីបន្តសេវាកម្មក្នុងអំឡុងពេលថ្ងៃ។</value>
@@ -2250,6 +2250,16 @@
   <data name="SignUp" xml:space="preserve">
     <value>ចុះឈ្មោះ</value>
   </data>
+  <data name="SignUpToCamID" xml:space="preserve">
+    <value>&lt;p&gt;សេចក្តីណែនាំសម្រាប់អតិថិជនក្នុងការចុះឈ្មោះតាមរយៈ App CamID និង SMS៖:&lt;/p&gt;
+&lt;p&gt;&lt;br /&gt;ការចុះឈ្មោះតាមរយៈកម្មវិធី CamID៖:&lt;/p&gt;
+&lt;p&gt;- ជំហានទី 1៖ ទាញយក និងដំឡើង CamID ពី &lt;span style="color: #3366ff;"&gt;&lt;a style="color: #3366ff;" href="https://apps.apple.com/vn/app/camid-movies-games-rewards/id1321717513?l=cam" target="_blank"&gt;&lt;strong&gt;App Store (iOS)&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt; ឬ &lt;a href="https://play.google.com/store/apps/details?id=com.metfone.selfcare" target="_blank"&gt;&lt;span style="color: #ff0000;"&gt;&lt;strong&gt;Google Play (Android)&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; ។&lt;br /&gt;- ជំហានទី 2៖ បើកកម្មវិធី ជ្រើសរើស "ចុះឈ្មោះ" នៅលើអេក្រង់ទំព័រដើម ហើយធ្វើតាមការណែនាំ&lt;/p&gt;
+&lt;p&gt;&lt;br /&gt;ការចុះឈ្មោះតាមរយៈសារ SMS៖&lt;/p&gt;
+&lt;p&gt;ចូលទៅក្នុងប្រអប់សារ សរសេរ ON EDU ផ្ញើទៅលេខ 1540&lt;/p&gt;
+&lt;p&gt;បន្ទាប់ពីផ្ញើរួច អ្នកនឹងទទួលបានសារបញ្ជាក់សម្រាប់ការចុះឈ្មោះដោយជោគជ័យ។&lt;/p&gt;
+&lt;p&gt;&amp;nbsp;&lt;/p&gt;
+&lt;p&gt;&amp;nbsp;&lt;/p&gt;</value>
+  </data>
   <data name="SimpleSteps" xml:space="preserve">
     <value />
   </data>
@@ -2302,7 +2312,7 @@
     <value />
   </data>
   <data name="TestingResults" xml:space="preserve">
-    <value />
+    <value>លទ្ធផលតេស្ត</value>
   </data>
   <data name="TheMinigameConsists" xml:space="preserve">
     <value>ហ្គេមតូចមាន 20 សំណួរ។</value>
@@ -2335,13 +2345,13 @@
     <value>3 ជំហានដើម្បីរៀនវាក្យសព្ទភាសាអង់គ្លេសឆ្លាតវៃ</value>
   </data>
   <data name="Tille_minigame" xml:space="preserve">
-    <value>ហ្គេមតូច</value>
+    <value>មីនីហ្គេម</value>
   </data>
   <data name="Timer" xml:space="preserve">
     <value />
   </data>
   <data name="toJoinAttractiveCourses" xml:space="preserve">
-    <value />
+    <value>ដើម្បីចូលរួមវគ្គសិក្សាដែលគួរឱ្យចាប់អារម្មណ៍</value>
   </data>
   <data name="toolCal" xml:space="preserve">
     <value>ម៉ាស៊ីនគិតលេខ</value>
@@ -2422,13 +2432,13 @@
     <value>MEDU គឺជាប្រព័ន្ធរៀនវាក្យសព្ទភាសាអង់គ្លេសដ៏ឆ្លាតវៃ ដែលនឹងជួយអ្នកចងចាំវាក្យសព្ទយ៉ាងងាយស្រួល និងស៊ីជម្រៅក្នុងរយៈពេលដ៏ខ្លី។</value>
   </data>
   <data name="Ustudy_grammar" xml:space="preserve">
-    <value>ប្រព័ន្ធរៀនវេយ្យាករណ៍ភាសាអង់គ្លេស</value>
+    <value>វេបសាយរៀនវេយ្យាករណ៍ភាសាអង់គ្លេស</value>
   </data>
   <data name="Ustudy_listening" xml:space="preserve">
-    <value>ប្រព័ន្ធរៀនទំនាក់ទំនងភាសាអង់គ្លេស</value>
+    <value>វេបសាយរៀនស្តាប់ភាសាអង់គ្លេស</value>
   </data>
   <data name="Ustudy_vocabulary" xml:space="preserve">
-    <value>ប្រព័ន្ធរៀនវាក្យសព្ទភាសាអង់គ្លេស</value>
+    <value>វេបសាយរៀនភាសាអង់គ្លេសដ៏សំបូរបែប</value>
   </data>
   <data name="vietnamese" xml:space="preserve">
     <value />
@@ -2488,7 +2498,7 @@
     <value>ការជាវរបស់អ្នកមិនមែនជាការជាវ Telemor ទេ សូមប្រើការជាវ Telemor ដើម្បីចុះឈ្មោះសម្រាប់សេវាកម្ម។</value>
   </data>
   <data name="You'veDoneit!You've20CorrectAnwsers" xml:space="preserve">
-    <value>អ្នកបានធ្វើវាហើយ! អ្នកមាន 20 ច្បាប់ត្រឹមត្រូវ! ជំនាញ និងការតាំងចិត្តរបស់អ្នកបានទទួលជោគជ័យ ហើយយើងមានក្តីរំភើបរីករាយក្នុងការអបអរជ័យជម្នះរបស់អ្នក។ តារាងពិន្ទុនឹងធ្វើបច្ចុប្បន្នភាពនៅព្រឹកថ្ងៃច័ន្ទបន្ទាប់។ ប្រាក់រង្វាន់របស់អ្នកនឹងត្រូវបានប្រកាសក្នុងពេលឆាប់ៗនេះ។ សូមអរគុណ។</value>
+    <value>សូមអភ័យទោស! សំណួររបស់អ្នកមិនត្រឹមត្រូវទេ។ ប៉ុន្តែកុំបារម្ភ អ្នកធ្វើបានល្អណាស់! លើកក្រោយ សូមចូលរួមលេងជាមួយយើងសម្រាប់ហ្គេមពិសេសៗ និងសាកល្បងសមត្ថភាពរបស់អ្នក! វាជាកម្មវិធីកំសាន្តបែបសិក្សា និងឈ្នះរង្វាន់ទៀតផង។</value>
   </data>
   <data name="YouCannotLearnAHugeKnowledgeOfGrammar" xml:space="preserve">
     <value>តើអ្នកមានការលំបាកនៅពេលដែលចំណេះដឹងវេយ្យាករណ៍របស់អ្នកមានច្រើន ប៉ុន្តែសៀវភៅវេយ្យាករណ៍របស់អ្នកមិនគ្របដណ្តប់ចំណេះដឹងទាំងអស់ដែលអ្នកត្រូវរៀនទេ?</value>
@@ -2509,7 +2519,7 @@
     <value>តើអ្នកជារឿយៗប្រើរចនាសម្ព័ន្ធវេយ្យាករណ៍មិនត្រឹមត្រូវ ហើយអ្នកមិនដឹងពីរបៀបប្រើពួកវាក្នុងស្ថានភាព ឬស្ថានភាពត្រឹមត្រូវទេ?</value>
   </data>
   <data name="YouHaven'tRegisteredMEDU" xml:space="preserve">
-    <value>អ្នកមិនទាន់បានចុះឈ្មោះសេវាកម្ម MEDU នៅឡើយទេ។ សូមព្យាយាមចុះឈ្មោះ ហើយត្រលប់មកវិញដើម្បីលេង ហ្គេមតូច។ សូមអរគុណ!</value>
+    <value>អ្នកមិនទាន់បានចុះឈ្មោះសេវាកម្ម MEDU នៅឡើយទេ។ សូមព្យាយាមចុះឈ្មោះ ហើយត្រលប់មកវិញដើម្បីលេង មីនីហ្គេម សូមអរគុណ!</value>
   </data>
   <data name="YouHaveNoCourse" xml:space="preserve">
     <value>អ្នកមិនមានវគ្គសិក្សាណាមួយទេ។</value>

+ 24 - 0
Website/NEducation/Content/Texts/Lang.resx

@@ -2253,6 +2253,30 @@
   <data name="SignUp" xml:space="preserve">
     <value>Register</value>
   </data>
+  <data name="SignUpToCamID" xml:space="preserve">
+    <value>&lt;p&gt;&lt;strong&gt;Instructions for Customers to Register via App CamID and SMS:&lt;/strong&gt;&lt;/p&gt;
+&lt;p&gt;&lt;br&gt;&lt;/p&gt;
+&lt;ol&gt;
+    &lt;li&gt;
+        &lt;p&gt;&lt;strong&gt;Register via the App:&lt;/strong&gt;&lt;/p&gt;
+        &lt;ul&gt;
+            &lt;li&gt;Step 1: Download and install the CamID from the &lt;a href="https://apps.apple.com/vn/app/camid-movies-games-rewards/id1321717513?l=cam" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;span style="color: rgb(44, 130, 201);"&gt;App Store (iOS)&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt; or &lt;a href="https://play.google.com/store/apps/details?id=com.metfone.selfcare" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;span style="color: rgb(226, 80, 65);"&gt;Google Play&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt; (Android).&lt;/li&gt;
+            &lt;li&gt;Step 2: Open the app select the &amp;quot;Register&amp;quot; option on the main screen and do as the guideline&lt;/li&gt;
+   
+        &lt;/ul&gt;
+      &lt;br&gt;
+    &lt;/li&gt;
+    &lt;li&gt;
+        &lt;p&gt;&lt;strong&gt;Register via SMS:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
+        &lt;ul&gt;
+            &lt;li&gt;Compose a message in the format: &amp;nbsp;ON EDU&lt;strong&gt;&amp;nbsp;&amp;nbsp;&lt;/strong&gt;Send&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;to&lt;strong&gt;&amp;nbsp;1540&lt;/strong&gt;&lt;/li&gt;
+            &lt;li&gt;After sending, you will receive a confirmation message for successful registration.&lt;/li&gt;
+        &lt;/ul&gt;
+    &lt;/li&gt;
+&lt;/ol&gt;
+&lt;p&gt;&amp;nbsp;&lt;/p&gt;
+&lt;p class="p1"&gt;&amp;nbsp;&lt;/p&gt;</value>
+  </data>
   <data name="SimpleSteps" xml:space="preserve">
     <value>With 2 simple steps</value>
   </data>

BIN
Website/NEducation/Content/assets/imgs/Flag_of_Cambodia.png


BIN
Website/NEducation/Content/assets/imgs/Flag_of_the_United_Kingdom.png


+ 14 - 8
Website/NEducation/Content/assets/mini_game/js/function.js

@@ -174,7 +174,7 @@ function cancelV2Package(packageName) {
             if (data.code == "0") {
                 location.reload();
             } else {
-                toastr.error(data.message);
+                location.reload();
             }
         },
         failure: function (data) {
@@ -232,12 +232,12 @@ packg.set("GTS_MEDU_Daily",
     {
         name: "GTS MEDU CamID Daily",
         module: "GTS_MEDU_Daily",
-        regId: 5255,
+        regId: 5240,
         cancelId: 5107,
         price: 100000,
         turn: 00,
         content: "Would you like to register MEDU service 10c/day/learn all courses?",
-        name_pack: "GTS_MEDU_Daily",
+        name_pack: "GTS_MEDU_CAMID_DAILY",
         contentCancel: "Are you sure to cancel MEDU daily package?"
 
     });
@@ -386,7 +386,7 @@ function registerOnApp() {
     let msisdn = checkMsisdn(phoneNumber);
 
     if (msisdn == "") {
-        toastr.error("Msisdn is invalid!");
+        /*toastr.error("Msisdn is invalid!");*/
         return;
     }
 
@@ -476,17 +476,23 @@ function onPaymentCallback(code, refId, turn, price, content, msisdn) {
             //name_pack: name_pack == null || name_pack == "null" || name_pack == "" ? content : name_pack
         },
         success: function (data) {
+            console.log("Response from server:", data);
             stopLoading();
             if (data.error == "0") {
-                toastr.success("Success");
+                //toastr.success("Success");
                 $('#message-dialog').modal('show');
                 $('#message-content').html(data.error_content);
                 setTimeout(function () {
-                    location.reload();
+                    console.log("Reloading page..."); // Đảm bảo dòng này được gọi
+                    //location.reload();
+                    window.location.href = "/Home/Index";
                 }, 1000);
 
-            } else
-                toastr.error(data.error_content);
+            } else {
+                $('#message-dialog').modal('show');
+                $('#message-content').html(data.error_content);
+            }
+                
         },
         failure: function (data) {
             stopLoading();

+ 1 - 1
Website/NEducation/Controllers/HomeController.cs

@@ -54,7 +54,7 @@ namespace NEducation.Controllers
                         Session["WHICHDEVICE"] = UtilsController.Constant.REGISTER_ON_APP;
                     }
                 }
-
+                Session["Token"] = token;
                 String msisdnToken = getUserFromToken(token);
                 log.Info("msisdn: " + msisdnToken);
                 if (msisdnToken != "")

+ 15 - 51
Website/NEducation/Controllers/WapController.cs

@@ -600,8 +600,8 @@ namespace NEducation.Controllers
                     CheckTransactionResponse response = new CheckTransactionResponse(responseJson);
 
                     log.Info("responseCheckTransactionRequest: " + responseJson);
-                    if (response.result != null && response.result.errorCode == "0")
-                    {
+                    //if (response.result != null && response.result.errorCode == "0")
+                    //{
                         string res = null;
                         // check phone number
                         msisdn = UtilsController.validateMsisdn(msisdn);
@@ -664,7 +664,7 @@ namespace NEducation.Controllers
                                     }
                                     return Json(new
                                     {
-                                        error_code = ress.responseCode,
+                                        error = ress.responseCode,
                                         error_content = UtilsController.GetErrorCodeCharging(ress.responseCode)
                                     });
                                 }
@@ -672,33 +672,22 @@ namespace NEducation.Controllers
                                 {
                                     return Json(new
                                     {
-                                        error_code = ress.status,
+                                        error = ress.status,
                                         error_content = UtilsController.GetErrorCodeCharging(ress.status)
                                     });
                                 }
 
                                 return Json(new
                                 {
-                                    error_code = ress.responseCode,
+                                    error = ress.responseCode,
                                     error_content = UtilsController.GetErrorCodeCharging(ress.responseCode)
                                 });
-                                //}
-                                //else
-                                //{
-                                //    return Json(new
-                                //    {
-                                //        error_code = UtilsController.Constant.USER_EXISTED,
-                                //        error_content = UtilsController.GetErrorCodeCharging(UtilsController.Constant.USER_EXISTED)
-                                //    });
-                                //}
+                              
                             }
                             else
                             {
                                 log.Info("Check package: " + msisdn + ", packg: " + packg);
-
                                 Session["msisdn-detecting"] = msisdn;
-
-
                                 //var checkSub = UtilsController.checkAccountSub(msisdn, packNameCannel_ToBe);
                                 //if (!checkSub)
                                 //{
@@ -742,26 +731,15 @@ namespace NEducation.Controllers
                                         {
                                             UserInfo userInfo = new UserInfo(rsStatus);
                                             Session["userInfo"] = userInfo;
-
                                             Session["msisdn"] = msisdn;
-
+                                            log.Info("Reload2 ");
                                             // Reload user info
                                             UtilsController.ReloadSubInfo();
                                         }
                                     }
-                                    //}
-                                    //else if (ress.status == "2")
-                                    //{
-                                    //    return Json(new
-                                    //    {
-                                    //        error_code = ress.status,
-                                    //        error_content = UtilsController.GetErrorCodeCharging(ress.status)
-                                    //    });
-                                    //}
-
                                     return Json(new
                                     {
-                                        error_code = ress.responseCode,
+                                        error = ress.responseCode,
                                         error_content = UtilsController.GetErrorCodeCharging(ress.responseCode)
                                     });
                                 }
@@ -769,36 +747,22 @@ namespace NEducation.Controllers
                                 {
                                     return Json(new
                                     {
-                                        error_code = UtilsController.Constant.USER_EXISTED,
+                                        error = UtilsController.Constant.USER_EXISTED,
                                         error_content = UtilsController.GetErrorCodeCharging(UtilsController.Constant.USER_EXISTED)
                                     });
                                 }
 
                             }
-                            //ReloadAccountInfo(msisdn);
-                            return Json(new
-                            {
-                                error = code,
-                                content = res,
-                                msisdn = msisdn.Substring(3)
-                            });
+                           
                         }
                         else
                         {
                             log.Info("REGISTER Can not detecting");
-                        }
-                    }
-                    else
-                    {
-                        // Handle error case
-                        string errorCode = response.errorCode ?? response.result?.errorCode;
-                        string errorMessage = response.errorMessage ?? response.result?.message;
-                        return Json(new
-                        {
-                            error_code = errorCode,
-                            error_content = errorMessage
-                        });
-
+                            return Json(new
+                            {
+                                error = UtilsController.Constant.USER_EXISTED,
+                                error_content = UtilsController.GetErrorCodeCharging(UtilsController.Constant.USER_EXISTED)
+                            });
                     }
                 }
                 else

+ 4 - 4
Website/NEducation/Views/Common/CourseView.cshtml

@@ -110,9 +110,9 @@
                                 @*BIBLIOTHÈQUE DE VOCABULAIRE DE NEDU*@
                             </h1>
                             <h2 class="library-description">
-                                @*Không Ngôn Ngữ*@
-                                @*@Lang.Common_des_2*@
-                                Common_des_2
+
+                                @Lang.Common_des_2
+                                @*Common_des_2*@
                                 @*Hơn 100 khóa Apprendre l'anglais Vocabulaire theo chủ đề dành cho mọi đối tượng.*@
                                 @*Plus de 100 cours de vocabulaire anglais classifié selon des sujets pour vous*@
                             </h2>
@@ -142,7 +142,7 @@
                         }
                         else if (Model.courseType == "10")
                         {
-                            <span>MiniGame</span>
+                    <span>@Lang.MiniGame</span>
                         }
                     </div>
 

+ 2 - 2
Website/NEducation/Views/Common/LessonView.cshtml

@@ -88,7 +88,7 @@
                     @Lang.Ebook
                     <img src="~/Content/assets/imgs/giphy.gif" style=" width: 50px;" />
                 </a>*@
-            <li class="menu-item-has-children header-menu-link ">
+            @*<li class="menu-item-has-children header-menu-link ">
                 <a href="#" class="">
                     E-Library
                     <img src="~/Content/assets/imgs/giphy.gif" style=" width: 50px;" />
@@ -97,7 +97,7 @@
                     <li><a href="/Ebook/">@Lang.Ebook</a></li>
                     <li><a href="/Ebook/Video">Children's Video</a></li>
                 </ul>
-            </li>
+            </li>*@
         }
     }
 }

+ 4 - 4
Website/NEducation/Views/Ebook/Index.cshtml

@@ -19,7 +19,7 @@
             @Lang.Ebook
             <img src="~/Content/assets/imgs/giphy.gif" style=" width: 50px;" />
         </a>*@
-    <li class="menu-item-has-children header-menu-link ">
+    @*<li class="menu-item-has-children header-menu-link ">
         <a href="#" class="">
             E-Library
             <img src="~/Content/assets/imgs/giphy.gif" style=" width: 50px;" />
@@ -28,7 +28,7 @@
             <li><a href="/Ebook/">@Lang.Ebook</a></li>
             <li><a href="/Ebook/Video">Children's Video</a></li>
         </ul>
-    </li>
+    </li>*@
     <a href="/MiniGame" class="header-menu-link ">@Lang.MiniGame</a>
     @*<a href="/Music/" class="nav-link">Music</a>*@
 }
@@ -49,7 +49,7 @@
             @Lang.Ebook
             <img src="~/Content/assets/imgs/giphy.gif" style=" width: 50px;" />
         </a>*@
-    <li class="menu-item-has-children header-menu-link ">
+    @*<li class="menu-item-has-children header-menu-link ">
         <a href="#" class="">
             E-Library
             <img src="~/Content/assets/imgs/giphy.gif" style=" width: 50px;" />
@@ -58,7 +58,7 @@
             <li><a href="/Ebook/">@Lang.Ebook</a></li>
             <li><a href="/Ebook/Video">Children's Video</a></li>
         </ul>
-    </li>
+    </li>*@
     <a href="/MiniGame" class="header-menu-link ">@Lang.MiniGame</a>
 }
 

+ 3 - 3
Website/NEducation/Views/Home/ChangePassView.cshtml

@@ -19,11 +19,11 @@
             <div class="setting-left">
                 <div class="setting-left-content">
                     <div class="left-item">
-                        <a href="javascript:void(0)" class="left-item-menu menu-item-course">Khóa học <i class="fa fa-angle-up"></i></a>
+                        <a href="javascript:void(0)" class="left-item-menu menu-item-course">@Lang.Course <i class="fa fa-angle-up"></i></a>
                         <ul>
                             @*<li class="menu-order">*@
                             <li class="menu-course">
-                                <a href="/Individual">Quản lý khóa học</a>
+                                <a href="/Individual">@Lang.CourseManager</a>
                             </li>
                         </ul>
                     </div>
@@ -248,7 +248,7 @@
                         }
                     </style>
 
-                    <h1>Thông tin của tôi</h1>
+                    <h1>@Lang.MyInformation</h1>
 
                     <div class="right-item">
                         <div class="setting-default setting-security">

+ 21 - 6
Website/NEducation/Views/Home/EnglishIndex.cshtml

@@ -113,9 +113,9 @@
                             </a>
 
                             @*<a href="javascript:void(0)" id="btn-start" class="btn-subscribe-now"
-                               style="display:@displaySub">
-                                @Lang.SubscriberNow
-                            </a>*@
+                                   style="display:@displaySub">
+                                    @Lang.SubscriberNow
+                                </a>*@
 
                             <a href="/Common/Course" id="btn-start" style="display:@displayUser">
                                 @Lang.GetStartedNow
@@ -153,14 +153,14 @@
                             @Lang.SignUp
                         </a>*@
                     @*<a href="javascript:void(0)" class="home-intro-try-free" data-toggle="modal" data-target="#login-dialog"
-                       style="display:block">@Lang.LoginNow</a>*@
+                        style="display:block">@Lang.LoginNow</a>*@
 
                     <a href="/Common/Course" class="home-intro-button" style="display:@displayUser">
                         @Lang.GetStartedNow
                     </a>
                     @*<a href="javascript:void(0)" class="home-intro-button" data-toggle="modal" data-target="#signup-dialog" style="display:@displaySub">
-                        @Lang.SubscriberNow
-                    </a>*@
+                            @Lang.SubscriberNow
+                        </a>*@
                 </div>
             </div>
 
@@ -345,10 +345,25 @@
     </div><!-- /.modal-dialog -->
 </div><!-- /.modal -->
 <!--End learning guide-->
+@*<button id="paymentButton" onclick="handlePaymentClick()">Thanh toán</button>*@
 
 
 
 <script>
+    //function handlePaymentClick() {
+    //    // Giả sử bạn có các giá trị này, chúng có thể đến từ bất cứ đâu, có thể là từ input hoặc các phần tử khác trên trang.
+    //    let code = "0"; // Mã trả về từ thanh toán (ví dụ thành công hay thất bại)
+    //    let refId = "123456789"; // Mã tham chiếu giao dịch
+    //    let turn = "1"; // Số lượt đăng ký hay tương tự
+    //    let price = "100000"; // Giá trị giao dịch
+    //    let content = "Gói cước trả sau"; // Nội dung của gói cước hoặc dịch vụ
+    //    let msisdn = "85512345676"; // Số điện thoại
+    //    let name_pack = "VIP_PACKAGE"; // Tên gói dịch vụ
+
+    //    // Gọi hàm onPaymentCallback và truyền tham số
+    //    onPaymentCallback(code, refId, turn, price, content, msisdn);
+    //}
+
     $(document).ready(function () {
         // Optimalisation: Store the references outside the event handler:
         var $window = $(window);

+ 2 - 1
Website/NEducation/Views/Home/Index.cshtml

@@ -192,11 +192,12 @@
                 window.addEventListener('load', function () {
                     console.log("account-dialog");
                     $('#account-dialog').modal('show');
-                    $('#inform-pass').html("Your password is " + @userInfo.pass);
+                    @*$('#inform-pass').html("Your password is " + @userInfo.pass);*@
                 })
 
             </script>
         }
+
     }
 </div><!--end page-home-top-->
 @*}

+ 4 - 6
Website/NEducation/Views/Home/_ModalRanking.cshtml

@@ -34,11 +34,11 @@
                                         <p class="rank-name"><a href="#">@Model.ranking.listRanking[1].fullName</a></p>
                                         <div class="rank-number-group rank-number-group-second">
                                             <div class="top-rank-word">
-                                                <p>Tổng điểm</p>
+                                                <p>@Lang.Point</p>
                                                 <p class="top-rank-number">@Model.ranking.listRanking[1].totalScore</p>
                                             </div>
                                             <div class="top-rank-time">
-                                                <p>Ngày sinh</p>
+                                                <p></p>
                                                 <p class="top-rank-number">@Model.ranking.listRanking[1].birthday</p>
                                             </div>
                                             @*<div class="top-rank-times">
@@ -71,11 +71,10 @@
                                         <p class="rank-name"><a href="#">@Model.ranking.listRanking[0].fullName</a></p>
                                         <div class="rank-number-group">
                                             <div class="top-rank-word">
-                                                <p>Tổng điểm</p>
+                                                <p>@Lang.Point</p>
                                                 <p class="top-rank-number">@Model.ranking.listRanking[0].totalScore</p>
                                             </div>
                                             <div class="top-rank-time">
-                                                <p>Ngày sinh</p>
                                                 <p class="top-rank-number">@Model.ranking.listRanking[0].birthday</p>
                                             </div>
                                             @*<div class="top-rank-times">
@@ -103,11 +102,10 @@
                                         <p class="rank-name"><a href="#">@Model.ranking.listRanking[2].fullName</a></p>
                                         <div class="rank-number-group rank-number-group-third">
                                             <div class="top-rank-word">
-                                                <p>Tổng điểm</p>
+                                                <p>@Lang.Point</p>
                                                 <p class="top-rank-number">@Model.ranking.listRanking[2].totalScore</p>
                                             </div>
                                             <div class="top-rank-time">
-                                                <p>Ngày sinh</p>
                                                 <p class="top-rank-number">@Model.ranking.listRanking[2].birthday</p>
                                             </div>
                                             @*<div class="top-rank-times">

+ 158 - 0
Website/NEducation/Views/Mini_game1/First_level1.cshtml

@@ -0,0 +1,158 @@
+@model NEducation.Models.WinnerMiniGameModel
+
+<div class="body_first">
+    <div class="container">
+        <h1>MINIGAME</h1>
+        <p>Let me know your answers!</p>
+        <button class="play-now" onclick="redirectToGame()">PLAY NOW</button>
+        <div class="tabs">
+            <button class="tab" onclick="redirectToRank()">RANKING</button>
+            <button class="tab" onclick="showHowToPlay()">HOW TO PLAY</button>
+        </div>
+
+        <!-- Placeholder for ranking content -->
+        <div id="rankingContent"></div>
+        <div id="howToPlayContent" style="display: none;">
+            <div class="container_howtoplay">
+                <ol>
+                    <li>The mini-game starts at 10:00 AM every Sunday.</li>
+                    <li>You have 15 seconds to think and give your answer.</li>
+                    <li>Each person can only participate in the minigame once per day. If there is a system error during the minigame, the participant cannot play again, and it will be counted as one play.</li>
+                    <li>Participants must be subscribers of the service.</li>
+                    <li>The minigame consists of 20 questions.</li>
+                    <li>Each question must be answered within 15 seconds.</li>
+                    <li>If a participant answers incorrectly, the game will immediately end, and they will not be able to play again.</li>
+                    <li>
+                        Prizes:
+                        <ul>
+                            <li>There is only one prize for the participant who correctly answers all 20 questions the fastest. The prize is $20 added to Emoney.</li>
+                            <li>If multiple participants answer correctly with the same time, the prize money will be evenly divided among them.</li>
+                        </ul>
+                    </li>
+                    <li>Results will be sent to the participants via SMS at 09:00 AM on the following Monday.</li>
+                </ol>
+            </div>
+        </div>
+    </div>
+</div>
+
+<style>
+    .body_first {
+        font-family: Arial, sans-serif;
+        background: #D6641F;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        height: 100vh;
+        margin: 0;
+    }
+
+    .container {
+        text-align: center;
+        background: #D6641F;
+        border-radius: 10px;
+    }
+
+    h1 {
+        color: white;
+    }
+
+    button.play-now {
+        background-color: #ff6347;
+        color: white;
+        border: none;
+        padding: 10px 20px;
+        font-size: 16px;
+        cursor: pointer;
+        border-radius: 5px;
+    }
+
+    button.play-now:hover {
+        background-color: #ff4500;
+    }
+
+    .tabs {
+        margin-top: 20px;
+    }
+
+    button.tab {
+        background-color: #f0f0f0;
+        border: none;
+        padding: 10px 20px;
+        margin: 5px;
+        cursor: pointer;
+        border-radius: 5px;
+    }
+
+    button.tab:hover {
+        background-color: #dcdcdc;
+    }
+
+    #rankingContent, #howToPlayContent {
+        margin-top: 20px;
+    }
+
+    .container_howtoplay {
+        font-family: Arial, sans-serif;
+        background-color: #D6641F;
+        padding: 20px;
+        border-radius: 10px;
+        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+        margin-top: 20px;
+        text-align: left;
+    }
+
+        .container_howtoplay ol {
+            padding-left: 20px;
+            margin: 0;
+            list-style-position: outside;
+            line-height: 1.6; /* Tăng line-height để dễ đọc hơn */
+        }
+
+        .container_howtoplay li {
+            margin-bottom: 10px;
+            color: #ffffff;
+            font-size: 14px; /* Đảm bảo kích thước chữ hợp lý */
+        }
+
+        .container_howtoplay ul {
+            padding-left: 40px;
+            list-style-type: disc;
+            margin: 0;
+            list-style-position: outside;
+        }
+
+            .container_howtoplay ul li {
+                margin-bottom: 5px;
+                font-size: 14px; /* Đảm bảo kích thước chữ hợp lý */
+            }
+
+</style>
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
+
+<script>
+function redirectToGame() {
+    window.location.href = '@Url.Action("Play", "MiniGame")';
+}
+
+function redirectToRank() {
+    $.ajax({
+        url: '@Url.Action("GetRanking", "MiniGame")',
+        type: 'GET',
+        success: function (result) {
+            $('#rankingContent').html(result);
+            $('#rankingContent').show();
+            $('#howToPlayContent').hide();
+        },
+        error: function () {
+            $('#rankingContent').html('<p>Error loading ranking.</p>');
+        }
+    });
+}
+
+    function showHowToPlay() {
+        $('#rankingContent').hide();
+        $('#howToPlayContent').css('display', 'block'); // Đảm bảo hiển thị đầy đủ
+    }
+</script>

+ 2 - 2
Website/NEducation/Views/Shared/_LayoutAdmin2.cshtml

@@ -9,7 +9,7 @@
     <link href="https://fonts.googleapis.com/css?family=Montserrat:400,500|Poppins:400,500,600,700|Roboto:400,500" rel="stylesheet" />
     <link href="https://cdn.materialdesignicons.com/3.0.39/css/materialdesignicons.min.css" rel="stylesheet" />
     <!-- PLUGINS CSS STYLE -->
-    <link href="~/Content/assets/plugins/toaster/toastr.min.css" rel="stylesheet" />
+    @*<link href="~/Content/assets/plugins/toaster/toastr.min.css" rel="stylesheet" />*@
     <link href="~/Content/assets/plugins/nprogress/nprogress.css" rel="stylesheet" />
     <link href="~/Content/assets/plugins/flag-icons/css/flag-icon.min.css" rel="stylesheet" />
     <link href="~/Content/assets/plugins/jvectormap/jquery-jvectormap-2.0.3.css" rel="stylesheet" />
@@ -249,7 +249,7 @@
     <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDCn8TFXGg17HAUcNpkwtxxyT9Io9B_NcM" defer></script>
     <script src="~/Content/assets/plugins/jquery/jquery.min.js"></script>
     <script src="~/Content/assets/plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
-    <script src="~/Content/assets/plugins/toaster/toastr.min.js"></script>
+    @*<script src="~/Content/assets/plugins/toaster/toastr.min.js"></script>*@
     <script src="~/Content/assets/plugins/slimscrollbar/jquery.slimscroll.min.js"></script>
     <script src="~/Content/assets/plugins/charts/Chart.min.js"></script>
     <script src="~/Content/assets/plugins/ladda/spin.min.js"></script>

+ 62 - 8
Website/NEducation/Views/Shared/_LayoutHome.cshtml

@@ -113,6 +113,7 @@
     var profile = Session["profile"] as UserProfile;
     var name = "";
     String msisdnDetect = Session["msisdnDetect"] as String;
+    String mToken = Session["Token"] as String;
 
     List<SubInfo> listSub = Session["subInfo"] as List<SubInfo>;
     List<SubInfo> homefitness = new List<SubInfo>();
@@ -167,16 +168,30 @@
                 <div class="header-menu">
                     @RenderSection("menu", false)
                     <div style="display:@displayGuest" id="menu-guest">
-                        <a data-toggle="modal" 
+                        <a data-toggle="modal"
                            @*data-target="#login-dialog" *@
                            class="header-menu-link" onclick="loginByUniId();">@Lang.SignIn</a>
-                        <a data-toggle="modal" data-target="#choose-language-dialog" class="header-menu-link">@Lang.SignUp</a>
+
+                        @*<a data-toggle="modal" data-target="#choose-language-dialog" class="header-menu-link">@Lang.SignUp</a>*@
+                        @if (mToken != null)
+                        {
+                            <a data-toggle="modal" data-target="#choose-language-dialog" class="header-menu-link">@Lang.SignUp</a>
+                        }
+                        else
+                        {
+                            <a data-toggle="modal" data-target="#modal-dialog-new" class="header-menu-link">@Lang.SignUp</a>
+                        }
                     </div>
                     <div style="display:@displayUser" id="menu-user">
                         @{
                             if (english == null || english.Count == 0 || homefitness == null || homefitness.Count == 0)
                             {
-                                <a data-toggle="modal" data-target="#choose-language-dialog" class="main-header-button-login header-menu-link">@Lang.SignUp</a>
+                                if (mToken != null)
+                                {
+                                    <a data-toggle="modal" data-target="#choose-language-dialog" class="main-header-button-login header-menu-link">@Lang.SignUp</a>
+                                }
+                                else { <a data-toggle="modal" data-target="#modal-dialog-new" class="main-header-button-login header-menu-link">@Lang.SignUp</a> }
+
                             }
                         }
                         <a class="header-menu-link" onclick="GetRank()">Rank</a>
@@ -202,18 +217,34 @@
                 </div>
                 <div class="header-right">
                     <div style="display:@displayGuest" id="menu-right-guest">
-                        <a data-toggle="modal" 
-                          @* data-target="#login-dialog"*@
+                        <a data-toggle="modal"
+                           @* data-target="#login-dialog"*@
                            class="main-header-button-login" onclick="loginByUniId();">@Lang.SignIn</a>
-                        <a data-toggle="modal" data-target="#choose-language-dialog" class="main-header-button-login btn-register">@Lang.SignUp</a>
+                        @if (mToken != null)
+                        {
+                            <a data-toggle="modal" data-target="#choose-language-dialog" class="main-header-button-login btn-register">@Lang.SignUp</a>
+                        }
+                        else
+                        {
+                            <a data-toggle="modal" data-target="#modal-dialog-new" class="main-header-button-login header-menu-link">@Lang.SignUp</a>
+                        }
+                        
                     </div>
 
                     <div style="display:@displayUser" id="menu-right-user">
                         @{
                             if (english == null || english.Count == 0 || homefitness == null || homefitness.Count == 0)
                             {
-                                <a data-toggle="modal" data-target="#choose-language-dialog" class="main-header-button-login header-menu-link">@Lang.SignUp</a>
-                            }
+                                    @*<a data-toggle="modal" data-target="#choose-language-dialog" class="main-header-button-login header-menu-link">@Lang.SignUp</a>*@
+                                if (mToken != null)
+                                {
+                                    <a data-toggle="modal" data-target="#choose-language-dialog" class="main-header-button-login header-menu-link">@Lang.SignUp</a>
+                                }
+                                else
+                                { 
+                                    <a data-toggle="modal" data-target="#modal-dialog-new" class="main-header-button-login header-menu-link">@Lang.SignUp</a>
+                                }
+                             }
                         }
                         <a class="main-header-button-login" onclick="GetRank()">@Lang.Rank</a>
                         <a id="btn-subscribe2" class="main-header-button-login btn-register btn-subscribe" style="display:@displaySub">@Lang.Subscriber</a>
@@ -722,6 +753,29 @@
         </div>
     </div>
 
+  <div id="modal-dialog-new" class="modal fade" tabindex="-1" role="dialog">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="modal-content-feedback">
+                <a class="modal-button-close" href="javascript:void(0)" data-dismiss="modal" onclick="Reload()"></a>
+                <div style="padding-left:4em;padding-right:4em;padding-top:4em">@Html.Raw(Lang.SignUpToCamID)</div>
+                @*<p class="fault-title text-center"><span><a href="#">Link</a></span></p>*@
+                <div class="modal-body">
+                    <div class="row">
+                        <div class="col-xs-12">
+                            <p id="popup-message"></p>
+                        </div>
+                        <div class="col-xs-12 text-center">
+                            <a href="javascript:void(0)" class="send-fault" data-dismiss="modal" onclick="Reload();">@Lang.Close</a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+   </div>
+
+
     <input type="hidden" id="phone-number" value="" />
     <input type="hidden" name="captcha" id="captcha" value="" />
 

+ 2 - 2
Website/NEducation/Views/Voca/Index.cshtml

@@ -55,9 +55,9 @@
     <a href="/Common" class="header-menu-link ">
         @Lang.Home
     </a>
-    <a href="/Common/Course" class="header-menu-link ">
+    @*<a href="/Common/Course" class="header-menu-link ">
         @Lang.Library
-    </a>
+    </a>*@
     <a href="/Voca/" class="header-menu-link ">
         @Lang.Vocabulary
         @*VOCABULARY*@

+ 6 - 6
Website/NEducation/Web.config

@@ -47,12 +47,12 @@
 	<add key="wsGetMiniGameCondition" value="http://27.71.225.61:9989/api/edu/getMiniGameCondition/data" />
 	<add key="GetRankMiniGame" value="http://27.71.225.61:9989/api/edu/getMiniGameListWinner/data" />
     <!--CamID-->
-	<!--<add key="pathDetectUser" value="https://openid.camid.app/camid-auth/gts/api/v1/partner/user-profile" />-->
-	<!--<add key="accessToken" value="eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJndHMiLCJwYXJ0bmVyQ29kZSI6Imd0cyIsImFwaUtleSI6ImNkN2FiMmU3ZmE2YTU2NTExNzVmMDMwOWM5ZGQ2ZTI5IiwiZXhwIjoxNzA4Nzc2OTc5LCJpYXQiOjE2NzcyNDA5Nzl9.OHqaF-pto0n5Kdsveh1_tjYLMihpBazwLoDzMD-rucRcZmpWiWT0SHqV7o07BHcM9ptfW5d68FED-M3OsJzxOQ" />-->
-	<add key="pathDetectUser" value="https://openid.altek.com.vn:8125/camid-auth/funtap/api/v1/partner/user-profile" />
-	<add key="accessToken" value="eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJmdW50YXAiLCJwYXJ0bmVyQ29kZSI6ImZ1bnRhcCIsImFwaUtleSI6IjBjOTlkNjAxMzVmMGIzOTViYjExM2IxYWUyNTc4YmFkIiwiZXhwIjoyMDM2ODAxMDQyLCJpYXQiOjE3MjE0NDEwNDJ9.eMT2q-uZQf_EtX4Jt9JuFl91vr91MnA6DycAasHf1QmZJn_5SsYp1MWipEmilCRFskFEwo5FzI868EjILPpflA" />
-	<!--<add key="wsCheckTransaction" value="https://apigw.camid.app/CoreService/UserRouting" />-->
-	  <add key="wsCheckTransaction" value="https://apigwcamid.altek.com.vn:8123/ApiGateway/CoreService/UserRouting" />
+	<add key="pathDetectUser" value="https://openid.camid.app/camid-auth/gts/api/v1/partner/user-profile" />
+	<add key="accessToken" value="eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJndHMiLCJwYXJ0bmVyQ29kZSI6Imd0cyIsImFwaUtleSI6ImNkN2FiMmU3ZmE2YTU2NTExNzVmMDMwOWM5ZGQ2ZTI5IiwiZXhwIjoyMDI0MjkxMzU5LCJpYXQiOjE3MDg5MzEzNTl9.cyRX2Dhb7S6pcx14-SokPtSQ5RvWW2rhPlgmFOnthVN9dEL-f6QHBxE6tVRq2XQgXGw6rwi9PccUib14UPzEUw" />
+	<!--<add key="pathDetectUser" value="https://openid.altek.com.vn:8125/camid-auth/funtap/api/v1/partner/user-profile" />
+	<add key="accessToken" value="eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJmdW50YXAiLCJwYXJ0bmVyQ29kZSI6ImZ1bnRhcCIsImFwaUtleSI6IjBjOTlkNjAxMzVmMGIzOTViYjExM2IxYWUyNTc4YmFkIiwiZXhwIjoyMDM2ODAxMDQyLCJpYXQiOjE3MjE0NDEwNDJ9.eMT2q-uZQf_EtX4Jt9JuFl91vr91MnA6DycAasHf1QmZJn_5SsYp1MWipEmilCRFskFEwo5FzI868EjILPpflA" />-->
+	<add key="wsCheckTransaction" value="https://apigw.camid.app/CoreService/UserRouting" />
+	  <!--<add key="wsCheckTransaction" value="https://apigwcamid.altek.com.vn:8123/ApiGateway/CoreService/UserRouting" />-->
 	  
 	  <add key="wsUsersCheckStatus" value="http://27.71.225.61:9989/api/userApi/usersCheckStatus/data" />
     <add key="usersSetLanguage" value="http://27.71.225.61:9989/api/userApi/usersSetLanguage/data" />