DESKTOP-LJ825E1\Admin 1 năm trước cách đây
mục cha
commit
1dc936ad55

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


BIN
Website/NEducation/Content/assets/imgs/img-home-02.png


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1686 - 0
Website/NEducation/Content/assets/js/cocos2d-js-v3.13-lite.js


+ 143 - 44
Website/NEducation/Content/assets/mini_game/js/minigame_function.js

@@ -37,50 +37,149 @@ function loadPlay() {
     });
 }
 
-//let selectedAnswer = null;
-//let answerList = [];
-//let currentQuestionIndex = 0;
-
-//let selectedAnswer = null;
-//let answerList = []; // Danh sách lưu các đáp án đã chọn
-
-
-//function updateQuestion() {
-//    // Cập nhật nội dung câu hỏi và các đáp án trên giao diện
-//    const newQuestion = @Html.Raw(JsonConvert.SerializeObject(Model.questions))[questionIndex - 1];
-//    document.querySelector('.question-container').setAttribute('data-question-id', newQuestion.id);
-//    document.querySelector('.text-c-2').innerText = newQuestion.content;
-
-//    // Cập nhật các đáp án
-//    const buttons = document.querySelectorAll('.answer-box button');
-//    buttons.forEach((btn, index) => {
-//        btn.innerText = newQuestion[`answer${index + 1}`];
-//        btn.onclick = () => selectAnswer(btn, newQuestion[`answer${index + 1}`]);
-//    });
-//}
-
-//function sendAnswersToServer() {
-//    const data = {
-//        serviceId: "3",
-//        LESSON_ID: "-1",
-//        ANSWER_LIST: answerList
-//    };
-
-//    $.ajax({
-//        url: '/MiniGame/ConfirmPlayQuestion',
-//        type: 'POST',
-//        contentType: 'application/json',
-//        data: JSON.stringify(data),
-//        success: function (result) {
-//            console.log(result);
-//            $('#open_play').html(result);
-//        },
-//        error: function () {
-//            console.log("error");
-//            $('#open_play').html('<p>Error loading Play.</p>');
-//        }
-//    });
-//}
+
+
+var packg = new Map();
+//var module = new Map();
+var name_pack = "";
+var action = "";
+packg.set("GTS_MEDU_Daily",
+    {
+        name: "GTS MEDU Daily",
+        module: "GTS_MEDU_Daily",
+        regId: 5100,
+        cancelId: 5107,
+        price: 100000,
+        turn: 00,
+        content: "You have registered MEdu service with free first registration, next day you will be charge 10c/day/learn all courses. To cancel, send OFF EDU to 1540. Help: 1204",
+        name_pack: "GTS_MEDU_Daily",
+        contentCancel: "Are you sure to cancel MEDU daily package?"
+
+    });
+
+
+function registerOnAppV2(msisdn, name) {
+    action = "REG";
+    let packInfo = packg.get(name);
+    name_pack = packInfo.name_pack;
+    let dataObject = {
+        "price": packInfo.price,
+        "turn": packInfo.turn,
+        "name": packInfo.name,
+        "content": packInfo.content,
+        "msisdn": msisdn,
+        "module": packInfo.module,
+        "name_pack": name_pack,
+        "id_pack": packInfo.regId
+    };
+
+    let data = JSON.stringify(dataObject);
+    console.log("data " + data);
+
+    console.log("cc.sys.os: " + cc.sys.os);
+    console.log("cc.sys.OS_ANDROID: " + cc.sys.OS_ANDROID);
+    console.log("cc.sys.OS_IOS: " + cc.sys.OS_IOS);
+
+    if (cc.sys.os == cc.sys.OS_ANDROID || cc.sys.os == cc.sys.OS_LINUX) {
+        console.log("luồng adnroid " + data);
+        //toastr.success("On ANDROID");
+        Android.sendDataBuyTurn(data);
+    } else if (cc.sys.os == cc.sys.OS_IOS) {
+        console.log("luồng ios " + data);
+        let d = "sendDataBuyTurn(" + data + ")";
+        console.log("new s: " + d);
+        //toastr.success("On IOS");
+        window.webkit.messageHandlers.log.postMessage("sendDataBuyTurn(" + data + ")");
+    }
+}
+function cancelPackage(msisdn, name) {
+    action = "CANCEL";
+    let packInfo = packg.get(name);
+    name_pack = packInfo.name_pack;
+    let dataObject = {
+        "price": 00,
+        "turn": 00,
+        "name": packInfo.name,
+        "packageType": "CANCEL_PACKAGES",
+        "content": "Are you sure want to cancel daily package?",
+        "msisdn": msisdn,
+        "module": packInfo.module,
+        "name_pack": name_pack,
+        "id_pack": packInfo.cancelId
+    };
+
+    let data = JSON.stringify(dataObject);
+    console.log("data " + data);
+
+    console.log("cc.sys.os: " + cc.sys.os);
+    console.log("cc.sys.OS_ANDROID: " + cc.sys.OS_ANDROID);
+    console.log("cc.sys.OS_IOS: " + cc.sys.OS_IOS);
+
+    if (cc.sys.os == cc.sys.OS_ANDROID || cc.sys.os == cc.sys.OS_LINUX) {
+        console.log("luồng adnroid " + data);
+        //toastr.success("On ANDROID");
+        Android.sendDataBuyTurn(data);
+    } else if (cc.sys.os == cc.sys.OS_IOS) {
+        console.log("luồng ios " + data);
+        let d = "sendDataBuyTurn(" + data + ")";
+        console.log("new s: " + d);
+        //toastr.success("On IOS");
+        window.webkit.messageHandlers.log.postMessage("sendDataBuyTurn(" + data + ")");
+    }
+
+}
+
+
+
+function onPaymentCallback(code, refId, turn, price, content, msisdn) {
+
+    console.log("name_pack: " + name_pack);
+    console.log("content: " + content);
+
+    //name_pack = $("#trongductest").attr("ppacktest");
+    //console.log("name_pack: " + name_pack);
+    //let subDomain = $("#subDomain").val();
+    let url = '/Wap/RegisterFromWap';
+    startLoading();
+    $.ajax({
+        type: "POST",
+        url: url,
+        headers: { 'RequestVerificationToken': $('input[name=__RequestVerificationToken]').val() },
+        data: {
+            "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val(),
+            action: action,
+            code: code,
+            refId: refId,
+            turn: turn,
+            price: price,
+            content: content,
+            msisdn: msisdn,
+            packg: convertPackageToName(name_pack)
+            //name_pack: name_pack == null || name_pack == "null" || name_pack == "" ? content : name_pack
+        },
+        success: function (data) {
+            stopLoading();
+            if (data.error == "0") {
+                toastr.success("Success");
+
+                setTimeout(function () {
+                    location.reload();
+                }, 1000);
+
+            } else
+                toastr.error(data.content);
+        },
+        failure: function (data) {
+            stopLoading();
+        },
+        error: function (data) {
+            stopLoading();
+        }
+    });
+};
+
+
+
 
 
 

+ 199 - 127
Website/NEducation/Controllers/HomeController.cs

@@ -17,9 +17,10 @@ using Newtonsoft.Json;
 using System.Net.Sockets;
 using System.Net;
 using System.Security.Policy;
-using NEducation.GenKeyWs;
 using Microsoft.Extensions.Configuration;
 using System.Threading.Tasks;
+using System.Net.Http;
+using Microsoft.EntityFrameworkCore.Metadata.Internal;
 
 namespace NEducation.Controllers
 {
@@ -28,159 +29,217 @@ namespace NEducation.Controllers
         private static log4net.ILog log { get; set; } = log4net.LogManager.GetLogger(typeof(HomeController));
         GenKeyWs.WsGenKeyClient wsClient = new GenKeyWs.WsGenKeyClient();
 
-      
-        public ActionResult Index(String uuid)
+
+        public ActionResult Index(String token)
         {
-            Session["navitab"] = "Home";
             HomeModel model = new HomeModel();
-            // nhan dien thue bao
-            String msisdnAuto = null;
-            // check auto login ?uuid=681471d23b83f0a463e2dd5671ea0fc5
-            // ?uuid=681471d23b83f0a463e2dd5671ea0fc5&mcuid=6c6948a89908d83aec8c05be256970a1&mcapp=mocha
-            //uuid = "681471d23b83f0a463e2dd5671ea0fc5";
-            model.uuid = uuid;
-            log.Info("uuid: " + uuid);
-
-            //string url = Request.Url.AbsoluteUri;
-            //log.Info("url: " + url);
-
-            //string path = Request.Url.AbsolutePath;
-            //log.Info("path: " + path);
+            if (token != null)
+            {
 
-            //string host = Request.Url.Host;
-            //log.Info("host: " + host);
+                Session["navitab"] = "Home";
+                //HomeModel model = new HomeModel();
+                // nhan dien thue bao
+                String msisdnAuto = null;
+                model.uuid = token;
+                log.Info("uuid: " + token);
+                HttpCookie reqCookies = Request.Cookies["onapp"];
+                if (reqCookies != null)
+                {
+                    string isOnApp = reqCookies["isonapp"].ToString();
+                    if (isOnApp == "1")
+                    {
+                        Session["WHICHDEVICE"] = UtilsController.Constant.REGISTER_ON_APP;
+                    }
+                }
 
-            HttpCookie reqCookies = Request.Cookies["onapp"];
-            if (reqCookies != null)
-            {
-                string isOnApp = reqCookies["isonapp"].ToString();
-                if (isOnApp == "1")
+                String msisdnToken = getUserFromToken(token);
+                log.Info("msisdn: " + msisdnToken);
+                if (msisdnToken != "")
                 {
+                    //String resDetect = CheckAutoLogin(log, msisdnToken);
+                    //log.Info("token: " + token + " res: " + resDetect);
+
+                    //if (resDetect != null)
+                    //{
+                    //    dynamic json = JsonConvert.DeserializeObject(resDetect);
+                    //    log.Info("res json: " + json);
+
+                    //    String code = json["code"];
+
+                    //    if (code == "200")
+                    //    {
+                    //        String errorCode = json["errorCode"];
+
+                    //        if (errorCode == "200")
+                    //        {
+                    //            msisdnAuto = json["data"]["msisdn"];
+                    //            log.Info("msisdnAuto: " + msisdnAuto);
+                    //        }
+                    
+                    // auto login
+                    // reload user info
+                    HttpContext.Session.Remove("regInfos");
+                    Session["msisdnDetect"] = msisdnToken;
+                    // dang ky tren app
                     Session["WHICHDEVICE"] = UtilsController.Constant.REGISTER_ON_APP;
-                }
-            }
 
+                    HttpCookie onApp = new HttpCookie("onapp");
+                    onApp["isonapp"] = "1";
+                    onApp.Expires = DateTime.Now.AddDays(30);
+                    Response.Cookies.Add(onApp);
 
-            if (uuid != null)
-            {
-                String resDetect = CheckAutoLogin(log, uuid);
-                log.Info("uuid: " + uuid + " res: " + resDetect);
+                    // check user has account
+                    GetUserProfileReq req = new GetUserProfileReq();
+                    req.users = msisdnToken;
 
-                if (resDetect != null)
-                {
-                    dynamic json = JsonConvert.DeserializeObject(resDetect);
-                    log.Info("res json: " + json);
+                    String rs = UtilsController.SendPost(req, System.Web.HttpContext.Current.Session.SessionID, UtilsController.WsType.UsersGetProfile);
+                    UserProfile profile = new UserProfile(rs);
+                    if (profile.id != null)
+                    {
+                        System.Web.HttpContext.Current.Session["profile"] = profile;
 
-                    String code = json["code"];
+                        // create new auth
+                        CreateAuthToken();
+                        String sessionId = Session.SessionID;
+                        // login success --> store session
+                        Session["msisdn"] = msisdnToken;
+                        Session["Token"] = token;
+                        // get sub
+                        UtilsController.ReloadSubInfo();
 
-                    if (code == "200")
+                        // all info of user was loaded from server
+                        //UserProfile profile = Session["profile"] as UserProfile;
+                        String typeLanguage = Session["typeLanguage"] as String;
+                    }
+                    else
                     {
-                        String errorCode = json["errorCode"];
-
-                        if (errorCode == "200")
+                        // Create a free account for the user
+                        UserRequest userRequest = new UserRequest
                         {
-                            msisdnAuto = json["data"]["msisdn"];
-                            log.Info("msisdnAuto: " + msisdnAuto);
+                            users = msisdnToken,
+                            msisdn = msisdnToken,
+                            command = "REGIST",
+                            channel = "WEB"
+                        };
 
-                            String msisdn = UtilsController.validateMsisdn(msisdnAuto.Substring(1));
-                            //String msisdn = UtilsController.validateMsisdn("+8562096841080".Substring(1));
+                        string rsRegister = UtilsController.SendPost(userRequest, Session.SessionID, UtilsController.WsType.UsersRegister);
+                        UserActionResult resRegister = new UserActionResult(rsRegister);
+                        Session["isSub"] = "false";
 
-                            log.Info("msisdn: " + msisdn);
+                        if (resRegister.status == UtilsController.Constant.SUCCESS)
+                        {
+                            // Load profile
+                            GetUserProfileReq reqProfile = new GetUserProfileReq { users = msisdnToken };
+                            string rsProfile = UtilsController.SendPost(reqProfile, Session.SessionID, UtilsController.WsType.UsersGetProfile);
+                            UserProfile profileGet = new UserProfile(rsProfile);
 
-                            if (msisdn != "")
+                            if (profileGet.id != null)
                             {
-                                // auto login
-                                // reload user info
-                                HttpContext.Session.Remove("regInfos");
-                                Session["msisdnDetect"] = msisdn;
-                                // dang ky tren app
-                                Session["WHICHDEVICE"] = UtilsController.Constant.REGISTER_ON_APP;
-
-                                HttpCookie onApp = new HttpCookie("onapp");
-                                onApp["isonapp"] = "1";
-                                onApp.Expires = DateTime.Now.AddDays(30);
-                                Response.Cookies.Add(onApp);
-
-                                // check user has account
-                                GetUserProfileReq req = new GetUserProfileReq();
-                                req.users = msisdn;
-                                String rs = UtilsController.SendPost(req, System.Web.HttpContext.Current.Session.SessionID, UtilsController.WsType.UsersGetProfile);
-                                UserProfile profile = new UserProfile(rs);
-                                if (profile.id != null)
-                                {
-                                    System.Web.HttpContext.Current.Session["profile"] = profile;
+                                Session["profile"] = profileGet;
 
-                                    // create new auth
+                                UserInfoRequest reqStatus = new UserInfoRequest { users = msisdnToken };
+                                string rsStatus = UtilsController.SendPost(reqStatus, Session.SessionID, UtilsController.WsType.UsersCheckStatus);
+                                UserActionResult resStatus = new UserActionResult(rsStatus);
+
+                                if (resStatus.status == UtilsController.Constant.SUCCESS)
+                                {
+                                    UserInfo userInfo = new UserInfo(rsStatus);
+                                    Session["userInfo"] = userInfo;
+                                    Session["Token"] = token;
+                                    // Create new auth
                                     CreateAuthToken();
-                                    String sessionId = Session.SessionID;
-                                    // login success --> store session
-                                    Session["msisdn"] = msisdn;
+                                    Session["msisdn"] = msisdnToken;
 
-                                    // get sub
+                                    // Reload user info
                                     UtilsController.ReloadSubInfo();
-
-                                    // all info of user was loaded from server
-                                    //UserProfile profile = Session["profile"] as UserProfile;
-                                    String typeLanguage = Session["typeLanguage"] as String;
-                                }
-                                else
-                                {
-                                    // create free account for user
-
-                                    // check user has account
-                                    UserRequest userRequest = new UserRequest();
-                                    userRequest.users = msisdn;
-                                    userRequest.msisdn = msisdn;
-                                    userRequest.command = "REGIST";
-                                    userRequest.channel = "WEB";
-                                    String rsRegister = UtilsController.SendPost(userRequest, Session.SessionID, UtilsController.WsType.UsersRegister);
-
-                                    UserActionResult resRegister = new UserActionResult(rsRegister);
-                                    Session["isSub"] = "false";
-                                    if (resRegister.status == UtilsController.Constant.SUCCESS)
-                                    {
-                                        // load profile
-                                        GetUserProfileReq reqProfile = new GetUserProfileReq();
-                                        reqProfile.users = msisdn;
-                                        String rsProfile = UtilsController.SendPost(reqProfile, Session.SessionID, UtilsController.WsType.UsersGetProfile);
-                                        UserProfile profileGet = new UserProfile(rsProfile);
-                                        if (profileGet.id != null)
-                                        {
-                                            System.Web.HttpContext.Current.Session["profile"] = profile;
-
-                                            UserInfoRequest reqStatus = new UserInfoRequest();
-                                            reqStatus.users = msisdn;
-                                            String rsStatus = UtilsController.SendPost(reqStatus, Session.SessionID, UtilsController.WsType.UsersCheckStatus);
-                                            UserActionResult resStatus = new UserActionResult(rsStatus);
-                                            if (resStatus.status == UtilsController.Constant.SUCCESS)
-                                            {
-                                                UserInfo userInfo = new UserInfo(rsStatus);
-                                                System.Web.HttpContext.Current.Session["userInfo"] = userInfo;
-
-                                                // create new auth
-                                                CreateAuthToken();
-                                                String sessionId = Session.SessionID;
-                                                // login success --> store session
-                                                Session["msisdn"] = msisdn;
-
-                                                // get sub
-                                                UtilsController.ReloadSubInfo();
-
-                                                // all info of user was loaded from server
-                                                //UserProfile profile = Session["profile"] as UserProfile;
-                                                String typeLanguage = Session["typeLanguage"] as String;
-                                            }
-                                        }
-                                    }
                                 }
                             }
                         }
                     }
+                    //    }
+                    //}
+
                 }
+                return View(model);
             }
-            return View(model);
+            else
+            {
+                Session["WHICHDEVICE"] = UtilsController.Constant.REGISTER_ON_WEB;
+                return View(model);
+            }
+            return null;
+
+        }
+
+
+        private string getUserFromToken(string token)
+        {
+
+            String resGet = GetUserInfoFromApp(token);
+            log.Info(" get user from app result: " + resGet);
+            if (resGet != null && resGet != "")
+            {
+                dynamic json = JsonConvert.DeserializeObject(resGet);
+                log.Info("res json: " + json);
+                String code = json["code"];
+                if (code == "00")
+                {
+                    String msisdnAuto = json["data"]["user"]["phone_number"];
+                    String userName = json["data"]["user"]["username"];
+                    log.Info("msisdnAuto: " + msisdnAuto);
+                    log.Info("userName: " + userName);
+
+                    // check phone number
+                    String msisdn = UtilsController.validateMsisdn(msisdnAuto);
+                    if (msisdn != null && msisdn != "")
+                    {
+                        Session["msisdn"] = msisdn;
+                        //Session["channel"] = "2";
+                        //Response.Cookies["channel"].Value = "2";
+                        //Response.Cookies["token"].Value = token;
+                        //ServiceLogin.WsGamePortalClient wsClient = new ServiceLogin.WsGamePortalClient();
+                        //SetWsClient(ref wsClient, Session.SessionID);
+                        //ServiceLogin.response wsResponse = ReloadAccountInfo(msisdn);
+                        //if (wsResponse.msisdn != null && wsResponse.msisdn.Length > 0)
+                        //{
+                        //    CreateAuthToken();
+                        //}
+
+                        return msisdn;
+                    }
+                }
+            }
+
+            return null;
+        }
+
+        public string GetUserInfoFromApp(String token)
+        {
+            string res = null;
+            try
+            {
+                ServicePointManager.Expect100Continue = true;
+                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
+
+                HttpClient httpClient = new HttpClient();
+                httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
+                httpClient.DefaultRequestHeaders.Add("accessToken", ConfigurationManager.AppSettings["accessToken"]);
+
+                log.Info("Req " + ConfigurationManager.AppSettings["pathDetectUser"]);
+                HttpResponseMessage response = httpClient.GetAsync(ConfigurationManager.AppSettings["pathDetectUser"]).Result;
+
+                response.EnsureSuccessStatusCode();
+                httpClient.Dispose();
+                res = response.Content.ReadAsStringAsync().Result;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex);
+            }
+            return res;
         }
 
+
         public ActionResult VietnameseIndex()
         {
             // check login
@@ -238,6 +297,17 @@ namespace NEducation.Controllers
             });
         }
 
+        public JsonResult CheckButton(String msisdn)
+        {
+            String mToken = Session["Token"] as String;
+
+            return Json(new
+            {
+                token = mToken,
+                msisdn = msisdn,
+            });
+        }
+
         public JsonResult CourseSet(String courseId)
         {
             Session["COURSE_NOW"] = courseId;
@@ -400,7 +470,7 @@ namespace NEducation.Controllers
             {
                 // get package
                 String packageId = Session["COURSE_NOW"] as String;
-                String package = UtilsController.GetPackagename(packageId, whichDevice);
+                String package = UtilsController.GetPackagename(packageId, whichDevice, "REGISTER");
 
                 // check account existed
                 var checkSub = UtilsController.checkAccountSub(msisdn, package);
@@ -467,7 +537,7 @@ namespace NEducation.Controllers
                     // get package
                     String whichDevice = Session["WHICHDEVICE"] as String;
                     String packageId = Session["COURSE_NOW"] as String;
-                    String package = UtilsController.GetPackagename(packageId, whichDevice);
+                    String package = UtilsController.GetPackagename(packageId, whichDevice, "REGISTER");
 
                     String rs = UtilsController.SendPost(chargerequest, Session.SessionID, UtilsController.WsType.MpsRequest);
                     UserActionResult res = new UserActionResult(rs);
@@ -783,6 +853,7 @@ namespace NEducation.Controllers
         {
             try
             {
+
                 String msisdn = UtilsController.validateMsisdn(phoneNumber);
                 if (msisdn != "" && msisdn != null)
                 {
@@ -893,6 +964,7 @@ namespace NEducation.Controllers
             }
             catch (Exception ex)
             {
+                log.Error("Exception: ", ex);
                 return Json(new
                 {
                     error_code = UtilsController.Constant.EXCEPTION,

+ 23 - 15
Website/NEducation/Controllers/UtilsController.cs

@@ -92,15 +92,10 @@ namespace NEducation.Controllers
                     input = "855" + input.Substring(1);
                     return input;
                 }
-                else if (input.StartsWith("855") && input.Length == 13)
+                else if (input.StartsWith("855") && input.Length <= 13)
                 {
                     return input;
                 }
-                //else if ((input.StartsWith("02") || input.StartsWith("03")) && input.Length == 11)
-                //{
-                //    input = "856" + input.Substring(1);
-                //    return input;
-                //}
                 else if (input.StartsWith("855") && input.Length == 11)
                 {
                     input = "855" + input.Substring(3);
@@ -206,7 +201,7 @@ namespace NEducation.Controllers
             public const String UsersInterestsUpdate = "wsUsersInterestsUpdate";
 
 
-            // UStudy
+            // MEDU
             public const String UsersRegister = "usersRegister";
             public const String MpsRequest = "mpsRequest";
             public const String UsersGetRanking = "wsUsersGetRanking";
@@ -489,21 +484,34 @@ namespace NEducation.Controllers
             }
         }
 
-        public static string GetPackagename(string code, String whichDevice)
+        public static string GetPackagename(string code, String whichDevice, String isRegister)
         {
             switch (code)
             {
                 case Constant.VIETNAMESE: return "EDU_REGISTER_VIET";
                 case Constant.LAOS: return "EDU_REGISTER_LAO";
                 case Constant.ENGLISH:
-                    if (whichDevice == UtilsController.Constant.REGISTER_ON_APP)
+                    if (whichDevice == UtilsController.Constant.REGISTER_ON_APP && isRegister == "REGISTER")
                     {
-                        return UtilsController.Constant.EDU_REGISTER_DAILY_APP;
+                        return UtilsController.Constant.MEDU_CAMID_DAILY_REGISTER;
+                    }
+                    if (whichDevice == UtilsController.Constant.REGISTER_ON_APP && isRegister == "CANCEL")
+                    {
+                        return UtilsController.Constant.MEDU_CAMID_DAILY_REGISTER;
+                    }
+                    if (whichDevice == UtilsController.Constant.REGISTER_ON_WEB && isRegister == "REGISTER")
+                    {
+                        return UtilsController.Constant.MEDU_DAILY_REGISTER;
+                    }
+                    if (whichDevice == UtilsController.Constant.REGISTER_ON_WEB && isRegister == "CANCEL")
+                    {
+                        return UtilsController.Constant.MEDU_DAILY_CANCEL;
                     }
                     else
                     {
-                        return UtilsController.Constant.EDU_REGISTER_DAILY_NEW;
+                        return code + " UNKNOWN CODE";
                     }
+                    
                 case Constant.HOMEFITNESS: return UtilsController.Constant.EDU_HOME_FITNESS_REG;
                 default: return code + " UNKNOWN CODE";
             }
@@ -555,10 +563,10 @@ namespace NEducation.Controllers
             public const String REGISTER_ON_APP = "ONAPP";
             public const String REGISTER_ON_WEB = "ONWEB";
 
-            public const String EDU_REGISTER_DAILY_NEW = "EDU_REGISTER_DAILY_NEW";
-            public const String EDU_NEW_CANCEL = "EDU_NEW_CANCEL";
-            public const String EDU_REGISTER_DAILY_APP = "EDU_REGISTER_DAILY_APP";
-            public const String EDU_APP_CANCEL = "EDU_APP_CANCEL";
+            public const String MEDU_DAILY_REGISTER = "MEDU_DAILY_REGISTER";
+            public const String MEDU_DAILY_CANCEL = "MEDU_DAILY_CANCEL";
+            public const String MEDU_CAMID_DAILY_REGISTER = "MEDU_CAMID_DAILY_REGISTER";
+            public const String MEDU_CAMID_DAILY_CANCEL = "MEDU_CAMID_DAILY_CANCEL";
             public const String EDU_HOME_FITNESS_REG = "EDU_HOME_FITNESS_REG";
 
             public const String PARENT_ID = "-1";

+ 176 - 2
Website/NEducation/Controllers/WapController.cs

@@ -52,8 +52,8 @@ namespace NEducation.Controllers
         {
             try
             {
-                DATA = "al12Rg2wdrLixNin9i19FdMMqBF6Xe+dQzXarlvBMqGQeh/PRD5F9zBrZc0lGlN/fGoJ/NuuMh96ymeuOtyv6rlu9+KOBMGXiAH43J81zBLMJ9+aF3mQR7OT7mQnQkFe4i2gpMnYi2NRUSyJAZm1NnTeoDswqsYWVcke+jMtubSQdmBkSmm2pUTW+rLgHi4sMrPLyRlw0T5HsEuT6YUpqRKaweF97pLZDNUaJePRRPyJASHvT3yOy7VTfAIcVSC1DGrYOv3Kyj18pKhxjskCWdYUd3r4jngN/iMALnQvgAWtsBsfH50KS77rs0r6MIMpN6rv96BrtpHn0gmqqYTDGtykNa5FsRyclqyI3CLgn9hQi2TWUVMWHETqdR0E8VrdIXMNGhgaNclDgKFFyTl/V02vSH+RbeuPU05XLfUaBD/e8SKA0rTlQfGVAyJZtRvMreg76dQBZFBbda96M95Mdphhp/ZR5XrVRKt+dM1+8FxLpQefsBp21L3HFJrzgcPxkz5qQN1rdx2Umhzf0W4rQErsGk7xZoYlxVGo2/7Ouwi0BJU1ocK3/z5bSskAQTc3UWdzzm0q+KDs/gEd1ouqoA3R2n5PuMqMTZhztcpxIJODKfmSPS/pTZNPQrXSpbAMqN11FRTxzt7yjRdFrOd4zDVRPYXcQ7ExYvdY0JrXAZE=";
-                SIG = "Bwdr1erav2UsFY7OpAGFNN%2BZPQ90cLDhqniE6Ta2kaD3kEtrKIprsfIz6BAL%2BIY8KhC1Xx0N7cSZyU1uAfEHRG%2BCJ5hbM5s%2B7kzMv4ZE7CFHqF9LuZrQQqz8IHzkPRHBgyWDy7RtESE1y%2BMRC1X9sAAdNFKxEL0NSCQigepfFD6YTnNFJix1OPAYwy1KfRTVAU10%2F%2BlkNuGegk651SH%2FgZ8yptwpnoIYdlUPQh3D404vm58EpFz7%2BtetzcolF6ajvJFGov%2BOvAOataD7%2BQDrJpqQ%2B7pf8A3fdAPAqRTmpUjCYtL0gRL8TILkPrF%2BmpaWCyWFzYug7CGvr%2F2qQForFhPH0xQj2SFI1tfBfYQOg4V7oCnOI9Jq0haiQ2mCCA5o1cQ0dEAK43NdRP2dfmwh%2BgVK%2BVeZpWxqOLhegeU%2B9bFA0iUmjXCxLNcSbsHqA7j7IvmPb4Ms2zhv4B9ALQ94YZft9Ut5ZRzvO8LYrmhmWqvK8mFQwIGwQNTKMd9UCCoSiTV8an7MFG2uzweS9Q65wwNbbaEstD8mOvD9Jkwv2x71WGI%2FFwkGPrbxzrfATD5DgQ7IFIpDD0Rr%2BPG4S5WlJlSYTPks%2FRgLNyHgQ%2BX3UGPINNKzj3xaC25RCN2iKoN7TY%2F4FEB8Day0gfd3aMfvFCpOXF5h6uGOpAp7ETsOgP0%3D";
+                //DATA = "al12Rg2wdrLixNin9i19FdMMqBF6Xe+dQzXarlvBMqGQeh/PRD5F9zBrZc0lGlN/fGoJ/NuuMh96ymeuOtyv6rlu9+KOBMGXiAH43J81zBLMJ9+aF3mQR7OT7mQnQkFe4i2gpMnYi2NRUSyJAZm1NnTeoDswqsYWVcke+jMtubSQdmBkSmm2pUTW+rLgHi4sMrPLyRlw0T5HsEuT6YUpqRKaweF97pLZDNUaJePRRPyJASHvT3yOy7VTfAIcVSC1DGrYOv3Kyj18pKhxjskCWdYUd3r4jngN/iMALnQvgAWtsBsfH50KS77rs0r6MIMpN6rv96BrtpHn0gmqqYTDGtykNa5FsRyclqyI3CLgn9hQi2TWUVMWHETqdR0E8VrdIXMNGhgaNclDgKFFyTl/V02vSH+RbeuPU05XLfUaBD/e8SKA0rTlQfGVAyJZtRvMreg76dQBZFBbda96M95Mdphhp/ZR5XrVRKt+dM1+8FxLpQefsBp21L3HFJrzgcPxkz5qQN1rdx2Umhzf0W4rQErsGk7xZoYlxVGo2/7Ouwi0BJU1ocK3/z5bSskAQTc3UWdzzm0q+KDs/gEd1ouqoA3R2n5PuMqMTZhztcpxIJODKfmSPS/pTZNPQrXSpbAMqN11FRTxzt7yjRdFrOd4zDVRPYXcQ7ExYvdY0JrXAZE=";
+                //SIG = "Bwdr1erav2UsFY7OpAGFNN%2BZPQ90cLDhqniE6Ta2kaD3kEtrKIprsfIz6BAL%2BIY8KhC1Xx0N7cSZyU1uAfEHRG%2BCJ5hbM5s%2B7kzMv4ZE7CFHqF9LuZrQQqz8IHzkPRHBgyWDy7RtESE1y%2BMRC1X9sAAdNFKxEL0NSCQigepfFD6YTnNFJix1OPAYwy1KfRTVAU10%2F%2BlkNuGegk651SH%2FgZ8yptwpnoIYdlUPQh3D404vm58EpFz7%2BtetzcolF6ajvJFGov%2BOvAOataD7%2BQDrJpqQ%2B7pf8A3fdAPAqRTmpUjCYtL0gRL8TILkPrF%2BmpaWCyWFzYug7CGvr%2F2qQForFhPH0xQj2SFI1tfBfYQOg4V7oCnOI9Jq0haiQ2mCCA5o1cQ0dEAK43NdRP2dfmwh%2BgVK%2BVeZpWxqOLhegeU%2B9bFA0iUmjXCxLNcSbsHqA7j7IvmPb4Ms2zhv4B9ALQ94YZft9Ut5ZRzvO8LYrmhmWqvK8mFQwIGwQNTKMd9UCCoSiTV8an7MFG2uzweS9Q65wwNbbaEstD8mOvD9Jkwv2x71WGI%2FFwkGPrbxzrfATD5DgQ7IFIpDD0Rr%2BPG4S5WlJlSYTPks%2FRgLNyHgQ%2BX3UGPINNKzj3xaC25RCN2iKoN7TY%2F4FEB8Day0gfd3aMfvFCpOXF5h6uGOpAp7ETsOgP0%3D";
 
                 // Pre-process input data
                 string dataGet = DATA.Replace(" ", "+");
@@ -444,5 +444,179 @@ namespace NEducation.Controllers
                 return false;
             }
         }
+
+        [HttpPost]
+        [ValidateAntiForgeryToken]
+        public ActionResult RegisterFromWap(String code, String refId, String turn, String price, String content, String msisdn, String packg, String action)
+        {
+            // khi đăng ký thành công từ camID thì gọi hàm này để gọi Be
+            log.Info("CALLBACK: " + msisdn + ", packg: " + packg + ", code: " + code + ", content: "
+                + content + ", turn: " + turn + ", action: " + action + ", price: " + price);
+            if (price.Length > 9)
+            {
+                price = price.Substring(0, price.Length - 6);
+            }
+            try
+            {
+                if (code == "0")
+                {
+
+                    // success
+                    string res = null;
+
+                    // check phone number
+                    msisdn = UtilsController.validateMsisdn(msisdn);
+                    if (msisdn != "" && msisdn == (String)Session["msisdn"])
+                    {
+                        String packNameREGISTER_ToBe = ConfigurationManager.AppSettings["packNameREGISTER_ToBe"];
+                        String packNameCannel_ToBe = ConfigurationManager.AppSettings["packNameCannel_ToBe"];
+                        String packageName = ConfigurationManager.AppSettings["packname"];
+                        if (action == "CANCEL")
+                        {
+                            log.Info("Cancel package: " + msisdn + ", packg: " + packg);
+
+                            Session["msisdn-detecting"] = msisdn;
+
+                            var checkSub = UtilsController.checkAccountSub(msisdn, packNameCannel_ToBe);
+                            if (!checkSub)
+                            {
+                                UserRequest userRequest = new UserRequest
+                                {
+                                    users = msisdn,
+                                    msisdn = msisdn,
+                                    subServiceCode = packNameCannel_ToBe + "|" + price,
+                                    requestId = "-1",
+                                    otp = code,
+                                    serviceId = "3"
+                                };
+
+                                String rs = UtilsController.SendPost(userRequest, Session.SessionID, UtilsController.WsType.MpsRequest);
+                                UserActionResult ress = new UserActionResult(rs);
+
+                                if (ress.responseCode == UtilsController.Constant.SUCCESS)
+                                {
+                                    Charging charging = new Charging(rs);
+                                    Session["charging"] = charging;
+                                    Session["msisdn"] = msisdn;
+                                    Session["package"] = packageName;
+                                    Session["CHARGE_ACTION"] = UtilsController.Constant.REGISTER;
+                                    Session["CHARGE_DATA"] = userRequest;
+                                }
+                                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_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)
+                            {
+                                UserRequest userRequest = new UserRequest
+                                {
+                                    users = msisdn,
+                                    msisdn = msisdn,
+                                    subServiceCode = packNameCannel_ToBe + "|" + price,
+                                    requestId = "-1",
+                                    otp = code,
+                                    serviceId = "3"
+                                };
+
+                                String rs = UtilsController.SendPost(userRequest, Session.SessionID, UtilsController.WsType.MpsRequest);
+                                UserActionResult ress = new UserActionResult(rs);
+
+                                if (ress.responseCode == UtilsController.Constant.SUCCESS)
+                                {
+                                    Charging charging = new Charging(rs);
+                                    Session["charging"] = charging;
+                                    Session["msisdn"] = msisdn;
+                                    Session["package"] = packageName;
+                                    Session["CHARGE_ACTION"] = UtilsController.Constant.REGISTER;
+                                    Session["CHARGE_DATA"] = userRequest;
+                                }
+                                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_content = UtilsController.GetErrorCodeCharging(ress.responseCode)
+                                });
+                            }
+                            else
+                            {
+                                return Json(new
+                                {
+                                    error_code = 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
+                {
+                    log.Warn("Callback got error code: " + code + ", msisdn: " + msisdn);
+                }
+                // failed
+                return Json(new
+                {
+                    error = code,
+                    content = "failed_RegisterFromWap"
+                });
+            }
+            catch (Exception ex)
+            {
+                log.Error("Error callback: " + code + ", msisdn: " + msisdn + ": " + ex.Message, ex);
+                return Json(new
+                {
+                    error = "-1",
+                    content = "failed_RegisterFromWap"
+                });
+            }
+
+        }
     }
 }

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

@@ -106,7 +106,7 @@
                         @if (Model.courseType == "1")
                         {
                             <h1 class="library-title">
-                                USTUDY VOCABULARY
+                                MEDU VOCABULARY
                                 @*BIBLIOTHÈQUE DE VOCABULAIRE DE NEDU*@
                             </h1>
                             <h2 class="library-description">
@@ -119,10 +119,10 @@
                         }
                         else if (Model.courseType == "2")
                         {
-                            <h1 class="library-title">
-                                USTUDY GRAMMAR
-                                @*NEDU COURS DE GRAMMAIR*@
-                            </h1>
+                    <h1 class="library-title">
+                        MEDU GRAMMAR
+                        @*NEDU COURS DE GRAMMAIR*@
+                    </h1>
                             <h2 class="library-description">
                                 @*Thư viện khóa học ngữ pháp dành cho mọi đối tượng.*@
                                 @Lang.GrammarSystem
@@ -131,10 +131,10 @@
                         }
                         else if (Model.courseType == "3")
                         {
-                            <h1 class="library-title">
-                                USTUDY LISTENING
-                                @*Listening Courses*@
-                            </h1>
+                    <h1 class="library-title">
+                        MEDU LISTENING
+                        @*Listening Courses*@
+                    </h1>
                             <h2 class="library-description">
                                 @Lang.SpeakingSystem
                                 @*Bao gồm các khóa học nghe tốt nhất cho bạn.*@

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

@@ -206,7 +206,7 @@
                     <a data-wow-duration="1s" class="system-cover wow zoomIn" href="/Voca">
                         <div class="system-image"></div>
                         <h3 class="system-name">
-                            USTUDY Vocabulary
+                            MEDU Vocabulary
                         </h3>
                         <h4 class="system-des">
                             @Lang.VocabularySystem
@@ -219,7 +219,7 @@
                     <a data-wow-duration="2s" class="system-cover wow zoomIn" href="/Grammar">
                         <div class="system-image"></div>
                         <h3 class="system-name">
-                            USTUDY Grammar
+                            MEDU Grammar
                         </h3>
                         <h4 class="system-des">
                             @Lang.GrammarSystem
@@ -320,7 +320,7 @@
             <div class="voca-dream-left">
                 <h2>
                     @*Không Ngôn Ngữ*@
-                    USTUDYMakesYourDreamComeTrue
+                    MEDU MakesYourDreamComeTrue
                 </h2>
             </div>
             <div class="voca-dream-right">

+ 12 - 12
Website/NEducation/Views/Home/Index.cshtml

@@ -15,7 +15,7 @@
     <a href="/Home/EnglishIndex/" class="navigation-all nav-link" typeLanguage="@UtilsController.Constant.ENGLISH">@Lang.english</a>
     @*<a href="/Home/VietnameseIndex/" class="navigation-all nav-link" typeLanguage="@UtilsController.Constant.VIETNAMESE">@Lang.vietnamese</a>
     <a href="/Home/LaosIndex/" class="navigation-all nav-link" typeLanguage="@UtilsController.Constant.LAOS">@Lang.laos</a>*@
-    <div class="dropdown nav-link">
+    @*<div class="dropdown nav-link">
         <button onclick="myFunction()" class="dropbtn">
             E-Library
             <img src="~/Content/assets/imgs/giphy.gif" style=" width: 50px;" />
@@ -25,7 +25,7 @@
             <a href="/Ebook/Video">Children's Video</a>
         </div>
     </div>
-    <a href="/HomeFitness" class="navigation-all nav-link">Home fitness</a>
+    <a href="/HomeFitness" class="navigation-all nav-link">Home fitness</a>*@
 }
 
 <script>
@@ -41,7 +41,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;" />
@@ -52,7 +52,7 @@
         </ul>
     </li>
 
-    <a href="/HomeFitness" class="navigation-all header-menu-link">Home fitness</a>
+    <a href="/HomeFitness" class="navigation-all header-menu-link">Home fitness</a>*@
 }
 
 
@@ -116,7 +116,7 @@
     </div>
 
     <div class="row all-course-language-container">
-        <div class="col-sm-12 col-md-6 col-lg-3 col-xl-3" style=" margin: 20px 0; text-align: -webkit-center;">
+        @*<div class="col-sm-12 col-md-6 col-lg-3 col-xl-3" style=" margin: 20px 0; text-align: -webkit-center;">
             <div class="course-container" style="background-color: #002868" onclick="checkToRedirect('/Home/LaosIndex', @UtilsController.Constant.LAOS); return 0;">
                 <div class="course-box">
                     <img src="~/Content/assets/imgs/Flag_of_Laos.png" />
@@ -128,9 +128,9 @@
                     <img src="~/Content/assets/imgs/giphy.gif" />
                 </div>
             </div>
-        </div>
+        </div>*@
 
-        <div class="col-sm-12 col-md-6 col-lg-3 col-xl-3" style=" margin: 20px 0; text-align: -webkit-center;">
+        @*<div class="col-sm-12 col-md-6 col-lg-3 col-xl-3" style=" margin: 20px 0; text-align: -webkit-center;">
             <div class="course-container" style="background-color: #FFCD00" onclick="checkToRedirect('/Home/VietnameseIndex', @UtilsController.Constant.VIETNAMESE); return 0;">
                 <div class="course-box">
                     <img src="~/Content/assets/imgs/Flag_of_vietnam.png" />
@@ -142,9 +142,9 @@
                     <img src="~/Content/assets/imgs/giphy.gif" />
                 </div>
             </div>
-        </div>
+        </div>*@
 
-        <div class="col-sm-12 col-md-6 col-lg-3 col-xl-3" style=" margin: 20px 0; text-align: -webkit-center;">
+        @*<div class="col-sm-12 col-md-6 col-lg-3 col-xl-3" style=" margin: 20px 0; text-align: -webkit-center;">
             <div class="course-container" style="background-color: #CF142B" onclick="checkToRedirect('/Home/EnglishIndex', @UtilsController.Constant.ENGLISH); return 0;">
                 <div class="course-box">
                     <img src="~/Content/assets/imgs/Flag_of_England.png" />
@@ -153,9 +153,9 @@
                     </div>
                 </div>
             </div>
-        </div>
+        </div>*@
 
-        <div class="col-sm-12 col-md-6 col-lg-3 col-xl-3" style=" margin: 20px 0; text-align: -webkit-center;">
+        @*<div class="col-sm-12 col-md-6 col-lg-3 col-xl-3" style=" margin: 20px 0; text-align: -webkit-center;">
             <div class="course-container" style="background-color: #CF142B" onclick="checkToRedirect('/HomeFitness', @UtilsController.Constant.HOMEFITNESS); return 0;">
                 <div class="course-box">
                     <img src="~/Content/assets/imgs/Flag_of_Laos.png" />
@@ -164,7 +164,7 @@
                     </div>
                 </div>
             </div>
-        </div>
+        </div>*@
     </div>
 
 

+ 1 - 1
Website/NEducation/Views/Listening/Index.cshtml

@@ -98,7 +98,7 @@
                 <h2 class="top-right-des">
                     @*Không Ngôn Ngữ*@
                     @*@Lang.UstudyIsAProductOfUstudyToHelpOvercomingAnObstacle*@
-                    UstudyIsAProductOfUstudyToHelpOvercomingAnObstacle
+                    MEDU IsAProductOfUstudyToHelpOvercomingAnObstacle
                     @*L'écoute en anglais est une méthode d'apprentissage de la communication en anglais selon l'approche naturelle, fruit de l'écosystème du projet de langue N-Edu, conçu pour aider les étudiants vietnamiens et les étudiants à supprimer les barrières en anglais.*@
                 </h2>
                 <a href="/Common/course?courseType=3" class="top-right-button">

+ 163 - 38
Website/NEducation/Views/Shared/_LayoutHome.cshtml

@@ -13,11 +13,11 @@
     <link rel="canonical" href="#" />
     <meta name="author" content="nedu" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>USTUDY | SMART ENGLISH LEARNING SYSTEM</title>
+    <title>MEDU | SMART ENGLISH LEARNING SYSTEM</title>
     <meta name="description" content="" />
     <meta name="keywords" content="edu, nedu, natcom" />
     <meta name="author" content="NEDU" />
-    <meta property="og:title" content="USTUDY | SMART ENGLISH LEARNING SYSTEM" />
+    <meta property="og:title" content="MEDU | SMART ENGLISH LEARNING SYSTEM" />
     <meta property="og:type" content="video.movie" />
     <meta property="og:description" content="#" />
     <meta property="og:image" content="~/Content/assets/imgs/voca-register.png" />
@@ -66,6 +66,8 @@
     <script type="text/javascript" src="~/Content/assets/js/home.js"></script>
     <script type="text/javascript" src="~/Content/assets/js/m.home.js"></script>
     <script type="text/javascript" src="~/Content/assets/js/jssor.slider.min.js"></script>
+    <script type="text/javascript" src="~/Content/assets/js/cocos2d-js-v3.13-lite.js"></script>
+
 
     <link href="~/Content/assets/icons/fontawesome-free-5.15.3-web/fontawesome-free-5.15.3-web/css/fontawesome.css" rel="stylesheet" />
     <link href="~/Content/assets/icons/fontawesome-free-5.15.3-web/fontawesome-free-5.15.3-web/css/brands.css" rel="stylesheet" />
@@ -116,9 +118,8 @@
     List<SubInfo> english = new List<SubInfo>();
     if (listSub != null)
     {
-        homefitness = listSub.FindAll(x => x.subServiceName == UtilsController.Constant.EDU_HOME_FITNESS_REG);
-        english = listSub.FindAll(x => x.subServiceName == UtilsController.Constant.EDU_REGISTER_DAILY_NEW ||
-           x.subServiceName == UtilsController.Constant.EDU_REGISTER_DAILY_APP);
+        homefitness = listSub;
+        english = listSub;
     }
     if (profile != null)
     {
@@ -152,7 +153,7 @@
             <div class="main-header-cover">
                 <a class="header-logo" href="/Home">
                     <!--logo-->
-                    <img src="~/Content/assets/imgs/student.png" /><span> USTUDY</span>
+                    <img src="~/Content/assets/imgs/student.png" />
                 </a>
                 <div class="header-middle">
                     <span class="header-menu-icon"></span>
@@ -188,7 +189,7 @@
                 <div class="header-right">
                     <div class="new-footer-img-ad" style="display:inline-block">
                         <a href="" class="btn setLang" data-lang="km" lang="km">
-                            <img src="/Content/assets/imgs/flag_lc.png" title="Laos" />
+                            <img src="/Content/assets/imgs/co_cam.png" title="Laos" />
                         </a>
                         <a href="" class="btn setLang" data-lang="vi" lang="vi">
                             <img src="/Content/assets/imgs/flag_vn.png" title="Vietnam" />
@@ -347,7 +348,7 @@
                     </script>
                 </div>
 
-                <p class="footer-bottom">© 2020 UNITEL  |  All Rights Reserved</p>
+                <p class="footer-bottom">© 2024 METFONE  |  All Rights Reserved</p>
             </div>
         </footer>
         <!--End footer-->
@@ -485,7 +486,7 @@
                                     <br />
                                 </form>
 
-                                <a href="/Home/LoginByUniId" class="get-otp btn-reset-password">Login by UniId</a>
+                                @*<a href="/Home/LoginByUniId" class="get-otp btn-reset-password">Login by UniId</a>*@
 
                                 <div id="login-result" class="text-red"></div>
 
@@ -616,7 +617,7 @@
                                                 <a href="#" id="btn-login" class="button btn-login box">@(Lang.english.ToUpper())</a>
 
                                                 <div>
-                                                    <a href="#" class="cost-des-box">@("300 KIP/day".ToUpper())</a>
+                                                    <a href="#" class="cost-des-box">@("10 cent/day".ToUpper())</a>
                                                 </div>
                                                 <div class="flag-float-box">
                                                     <img src="~/Content/assets/imgs/Flag_of_England.png" />
@@ -642,9 +643,9 @@
                                             <a class="des-a"><i class="fas fa-check-square"></i> @Lang.haveAccount1 </a><a class="link-button" onclick="login(); return 0;">@Lang.LoginNow</a>
                                         </div>
 
-                                        <div style=" margin: 10px 0;">
+                                        @*<div style=" margin: 10px 0;">
                                             <a class="des-a"><i class="fas fa-check-square"></i> @Lang.haveNoAccount </a><a class="link-button" onclick="createFree(); return 0;">@Lang.createNow </a> <a class="des-a">@Lang.toJoinAttractiveCourses</a>
-                                        </div>
+                                        </div>*@
                                     }
                                 </div>
 
@@ -735,7 +736,7 @@
                                     <div id="html_element_free" style="margin-top: 10px;"></div>
                                     <br />
                                 </form>
-                                <a href="#" id="btn-free-account" class="button btn-create-free check-sub-dim">@Lang.createNow</a>
+                                @*<a href="#" id="btn-free-account" class="button btn-create-free check-sub-dim">@Lang.createNow</a>*@
                                 <div>
                                     <a class="des-a"><i class="fas fa-check-square"></i> @Lang.haveAccount1 </a>
                                     <a class="link-button" onclick="login(); return 0;">@Lang.loginNow1 </a>
@@ -889,8 +890,9 @@
             var phoneNumber = $('#msisdn').val();
             if (phoneNumber != "") {
                 console.log("btn-register-sub click");
+
                 $.ajax({
-                    url: urlConfig("/Home/RegisterSubWithoutCaptcha"),
+                    url: urlConfig("/Home/CheckButton"),
                     type: "POST",
                     data: {
                         __RequestVerificationToken: $('input[name=__RequestVerificationToken]').val(),
@@ -898,21 +900,40 @@
                     }
                 }).success(function (data) {
                     console.log(data);
+                    if (data.token == null) {
+                        $.ajax({
+                            url: urlConfig("/Home/RegisterSubWithoutCaptcha"),
+                            type: "POST",
+                            data: {
+                                __RequestVerificationToken: $('input[name=__RequestVerificationToken]').val(),
+                                phone: phoneNumber,
+                            }
+                        }).success(function (data) {
+                            console.log(data);
 
-                    if (data.error_code == "100") {
-                        // success
-                        $('#free-account-dialog').modal('hide');
-                        $('#choose-language-dialog').modal('hide');
-                        $('#login-dialog').modal('hide');
-                        $('#signup-dialog').modal('hide');
-                        $('#sub-register-dialog').modal('show');
+                            if (data.error_code == "100") {
+                                // success
+                                $('#free-account-dialog').modal('hide');
+                                $('#choose-language-dialog').modal('hide');
+                                $('#login-dialog').modal('hide');
+                                $('#signup-dialog').modal('hide');
+                                $('#sub-register-dialog').modal('show');
 
-                    } else {
-                        $('#message-dialog').modal('show');
-                        $('#message-content').html(data.error_content);
-                        grecaptcha.reset(capt1);
+                            } else {
+                                $('#message-dialog').modal('show');
+                                $('#message-content').html(data.error_content);
+                                grecaptcha.reset(capt1);
+                            }
+                        });
+
+                    }
+                    if (data.token != null) {
+                        // dangky camid
+                        console.log("dkCamID")
+                        registerOnAppV2(phoneNumber,"GTS_MEDU_Daily");
                     }
                 });
+
             } else {
                 $('#message-dialog').modal('show');
                 $('#message-content').html('@Lang.InvalidMsisdn');
@@ -920,6 +941,60 @@
         })
 
         $('.btn-subscribe-now').click(function () {
+
+            var phoneNumber = $('#msisdn').val();
+            if (phoneNumber != "") {
+                console.log("btn-register-sub click");
+
+                $.ajax({
+                    url: urlConfig("/Home/CheckButton"),
+                    type: "POST",
+                    data: {
+                        __RequestVerificationToken: $('input[name=__RequestVerificationToken]').val(),
+                        phone: phoneNumber,
+                    }
+                }).success(function (data) {
+                    console.log(data);
+                    if (data.token == null) {
+                        $.ajax({
+                            url: urlConfig("/Home/RegisterSubWithoutCaptcha"),
+                            type: "POST",
+                            data: {
+                                __RequestVerificationToken: $('input[name=__RequestVerificationToken]').val(),
+                                phone: phoneNumber,
+                            }
+                        }).success(function (data) {
+                            console.log(data);
+
+                            if (data.error_code == "100") {
+                                // success
+                                $('#free-account-dialog').modal('hide');
+                                $('#choose-language-dialog').modal('hide');
+                                $('#login-dialog').modal('hide');
+                                $('#signup-dialog').modal('hide');
+                                $('#sub-register-dialog').modal('show');
+
+                            } else {
+                                $('#message-dialog').modal('show');
+                                $('#message-content').html(data.error_content);
+                                grecaptcha.reset(capt1);
+                            }
+                        });
+
+                    }
+                    if (data.token != null) {
+                        // dangky camid
+                        console.log("dkCamID")
+                        registerOnAppV2(phoneNumber,"GTS_MEDU_Daily");
+                    }
+                });
+
+            } else {
+                $('#message-dialog').modal('show');
+                $('#message-content').html('@Lang.InvalidMsisdn');
+            }
+        })
+        @*$('.btn-subscribe-now').click(function () {
             var phoneNumber = $('#msisdn').val();
             if (phoneNumber != "") {
                 console.log("btn-register-sub click");
@@ -950,7 +1025,7 @@
                 $('#message-dialog').modal('show');
                 $('#message-content').html('@Lang.InvalidMsisdn');
             }
-        })
+        })*@
 
         function SubConfirmOtpClick() {
             var otpConfirm = document.getElementById("otpSubData").value;
@@ -1068,14 +1143,71 @@
                 document.getElementById('html_element_reset').style = "margin-top: 10px;display: block;"
             }
         });
-
         $('#btn-register-sub').click(function () {
+    var phone = document.getElementById('phone-register').value;
+    console.log("phone: " + phone);
+    var captcha = $('#captcha').val();
+
+    if (phone != "") {
+        console.log("#btn-register-sub click");
+
+        $.ajax({
+            url: urlConfig("/Home/CheckButton"),
+            type: "POST",
+            data: {
+                __RequestVerificationToken: $('input[name=__RequestVerificationToken]').val(),
+                phone: phone
+            }
+        }).done(function (data) {
+            console.log(data);
+
+            if (data.token == null) {
+                console.log("#btn-register-sub click");
+
+                $.ajax({
+                    url: urlConfig("/Home/RegisterSub"),
+                    type: "POST",
+                    data: {
+                        __RequestVerificationToken: $('input[name=__RequestVerificationToken]').val(),
+                        phone: phone,
+                        captcha: captcha
+                    }
+                }).done(function (data) {
+                    console.log(data);
+                    location.href = data.redirectUrl;
+
+                    if (data.error_code == "100") {
+                        // fail
+                        $('#free-account-dialog').modal('hide');
+                        $('#choose-language-dialog').modal('hide');
+                        $('#login-dialog').modal('hide');
+                        $('#signup-dialog').modal('hide');
+                        $('#sub-register-dialog').modal('show');
+                    } else {
+                        console.log(data.error_content);
+                        $('#signup-result').html(data.error_content);
+                        grecaptcha.reset(capt1);
+                    }
+                });
+            } else {
+                // dangky camid
+                console.log("dkCamID");
+                registerOnAppV2(phone, "GTS_MEDU_Daily");
+            }
+        });
+
+    } else {
+        $('#signup-result').html('@Lang.CheckUserPass');
+    }
+});
+
+        @*$('#btn-register-sub').click(function () {
             // check phone number
             var phone = document.getElementById('phone-register').value;
             console.log("phone: " + phone)
             var captcha = $('#captcha').val();
             if (phone != '') {
-                console.log("btn-register-sub click");
+                console.log("#btn-register-sub click");
                 $.ajax({
                     url: urlConfig("/Home/RegisterSub"),
                     type: "POST",
@@ -1089,8 +1221,6 @@
                     location.href = data.redirectUrl;
                     if (data.error_code == "100") {
                         // fail
-                        //$('.confirm-register-phone').css("display", "none");
-                        //$('.confirm-register-otp').css("display", "inherit");
                         $('#free-account-dialog').modal('hide');
                         $('#choose-language-dialog').modal('hide');
                         $('#login-dialog').modal('hide');
@@ -1098,26 +1228,21 @@
                         $('#sub-register-dialog').modal('show');
                     } else {
                         console.log(data.error_content);
-                        //$('#signup-dialog').modal('hide');
-                        //$('#message-dialog').modal('show');
-                        //$('#message-content').html(data.error_content);
                         $('#signup-result').html(data.error_content);
                         grecaptcha.reset(capt1);
                     }
                 });
             } else {
-                @*$('#signup-dialog').modal('hide');
-                $('#message-dialog').modal('show');
-                $('#message-content').html('@Lang.CheckUserPass');*@
+
                 $('#signup-result').html('@Lang.CheckUserPass');
             }
-        })
+        })*@
 
         $('#btn-register-sub-confirm').click(function () {
             // check phone number
             var otp = document.getElementById('otp-register').value;
             if (otp != '') {
-                console.log("btn-register-sub click");
+                console.log("btn-register-sub-confirm click");
                 $.ajax({
                     url: urlConfig("/Home/RegisterSub"),
                     type: "POST",

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

@@ -211,7 +211,7 @@
                 <div class="col-md-6 col-xs-12 col-sm-6 right wow  bounceInLeft" data-wow-duration="3s">
                     <p class="content-child-come-with-voca">
                         @*VOCA sẽ "<span> chọc quê bạn </span>",<br>"<span> động viên bạn</span>"<br>và "<span>thưởng nóng cho bạn</span>"*@
-                        USTUDY  @Lang.will "<span>@Lang.annoy</span>", <br />"<span>@Lang.encourage</span>"<br /> @Lang.and @Lang.reward
+                        MEDU  @Lang.will "<span>@Lang.annoy</span>", <br />"<span>@Lang.encourage</span>"<br /> @Lang.and @Lang.reward
 
                         @*N-EDU va "<span>vous pousser</span>", <br />"<span>vous encourager</span>"<br /> et "vous récompenser"*@
                     </p>

+ 6 - 2
Website/NEducation/Web.config

@@ -46,7 +46,11 @@
 	<add key="directoryPath" value="E:\Code\MEDU\GTS_MEDU_Daily\" />
 	<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.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="wsUsersCheckStatus" value="http://27.71.225.61:9989/api/userApi/usersCheckStatus/data" />
     <!--<add key="wsUsersCheckStatus" value="http://192.168.168.61:9201/unitel/api/userApi/usersCheckStatus/data" />-->
@@ -121,7 +125,7 @@
   -->
   <log4net debug="true">
     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
-      <file value="D:\02-Deploying\Unitel\HomeFitness\log\log.txt" />
+      <file value="E:\\log\\full.txt" />
       <appendToFile value="true" />
       <rollingStyle value="Size" />
       <maxSizeRollBackups value="10" />

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác