| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568 |
- using Microsoft.Ajax.Utilities;
- using NEducation.Code;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.Linq;
- using System.Net.Http;
- using System.ServiceModel;
- using System.Text;
- using System.Web;
- using System.Web.Mvc;
- using NEducation.Content.Texts;
- // FOR FUNCTION HANDLER -> CALLED FROM OTHERS CONTROLLER
- namespace NEducation.Controllers
- {
- public class UtilsController : Controller
- {
- private static log4net.ILog Log { get; set; } = log4net.LogManager.GetLogger(typeof(BaseController));
- public static String CountryCode = ConfigurationManager.AppSettings["country_code"];
- public static String ServiceId = ConfigurationManager.AppSettings["service_id"];
- public static int questionTimeout = int.Parse(ConfigurationManager.AppSettings["questionTimeout"]);
- // GET: Common
- public static String DateFormat = "dd/MM/yyyy HH:mm:ss";
- // GET: Utils
- public ActionResult Index()
- {
- return View();
- }
- // load profile of user
- public static void ReloadProfileInfo()
- {
- String msisdn = System.Web.HttpContext.Current.Session["msisdn"] as String;
- if (msisdn != null)
- {
- GetUserProfileReq req = new GetUserProfileReq();
- req.users = msisdn;
- String rs = SendPost(req, System.Web.HttpContext.Current.Session.SessionID, WsType.UsersGetProfile);
- UserProfile profile = new UserProfile(rs);
- System.Diagnostics.Debug.WriteLine("profile: " + profile);
- System.Web.HttpContext.Current.Session["profile"] = profile;
- }
- }
- // load sub info
- public static void ReloadSubInfo()
- {
- String msisdn = System.Web.HttpContext.Current.Session["msisdn"] as String;
- if (msisdn != null)
- {
- GetSubReq reqSub = new GetSubReq();
- reqSub.msisdn = msisdn;
- System.Diagnostics.Debug.WriteLine("reqSub: " + reqSub);
- String rs = SendPost(reqSub, System.Web.HttpContext.Current.Session.SessionID, WsType.SubGetListsubServiceCode);
- GetSubRes resSub = new GetSubRes(rs);
- if (resSub.listSubServiceCode != null)
- {
- if (resSub.listSubServiceCode.Count > 0)
- {
- System.Web.HttpContext.Current.Session["isSub"] = "true";
- }
- }
- else
- {
- System.Web.HttpContext.Current.Session["isSub"] = "false";
- }
- System.Web.HttpContext.Current.Session["subInfo"] = resSub.listSubServiceCode;
- }
- }
- public static String validateMsisdn(String input)
- {
- if (input == null || input.Length == 0 || !long.TryParse(input, out long temp))
- {
- return "";
- }
- else
- {
- if (!input.StartsWith("855") && input.Length == 10)
- {
- input = "855" + input;
- }
- else if (!input.StartsWith("855") && input.Length == 11)
- {
- //input = "855" + input;
- input = "855" + input.Substring(1);
- return input;
- }
- 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);
- return input;
- }
- else if (!input.StartsWith("855") && input.Length == 9)
- {
- input = "855" + input;
- return input;
- }
- else
- return "";
- }
- return input;
- }
- public static Boolean checkLocalMsisdn(String input)
- {
- if (input == null || input.Length == 0 || !long.TryParse(input, out long temp))
- {
- return false;
- }
- else
- {
- if (!input.StartsWith("856") && input.Length == 11 && (input.StartsWith("02") || input.StartsWith("03")))
- {
- return true;
- }
- else if (!input.StartsWith("856") && input.Length == 10 && (input.StartsWith("2") || input.StartsWith("3")))
- {
- return true;
- }
- else if (input.StartsWith("856") && (input.Length == 13 || input.Length == 14))
- {
- String real = input.Substring(3);
- if (real.StartsWith("2") || real.StartsWith("3") || real.StartsWith("02") || real.StartsWith("03"))
- {
- return true;
- }
- }
- }
- return false;
- }
- public static Boolean checkAccountSub(String msisdn, String package)
- {
- GetSubReq reqSub = new GetSubReq();
- reqSub.msisdn = msisdn;
- System.Diagnostics.Debug.WriteLine("reqSub: " + reqSub);
- String rs = SendPost(reqSub, System.Web.HttpContext.Current.Session.SessionID, WsType.SubGetListsubServiceCode);
- GetSubRes resSub = new GetSubRes(rs);
- if (resSub.listSubServiceCode != null)
- {
- if (resSub.listSubServiceCode.Count > 0)
- {
- SubInfo subInfo = resSub.listSubServiceCode.Find(x => x.subServiceName == package);
- if (subInfo == null)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- else
- return false;
- }
- else
- {
- return false;
- }
- }
- public class WsType
- {
- public const String UsersCheckStatus = "wsUsersCheckStatus";
- //public const String UsersUpdateProfile = "wsUsersUpdateProfile";
- public const String UsersGetProfile = "wsUsersGetProfile";
- public const String UserViewUpdate = "wsUsersViewUpdate";
- public const String UsersSearchProfile = "wsUsersSearchProfile";
- public const String UserGetListLike = "wsUserGetListLike";
- public const String UsersChatSend = "wsUsersChatSend";
- public const String UsersChatGet = "wsUsersChatGet";
- public const String UsersChatDetailGet = "wsUsersChatDetailGet";
- public const String UsersChatDetailUpCheck = "wsUsersChatDetailUpCheck";
- public const String UsersChatDelete = "wsUsersChatDelete";
- public const String UsersChatDetailDelete = "wsUsersChatDetailDelete";
- public const String UsersMesageSend = "wsUsersMesageSend";
- public const String UsersMesageGet = "wsUsersMesageGet";
- public const String UsersMesageCheck = "wsUsersMesageCheck";
- public const String UsersPicUpload = "wsUsersPicUpload";
- public const String UsersPicGet = "wsUsersPicGet";
- public const String UsersLikeUpdate = "wsUsersLikeUpdate";
- public const String UsersGiftGetList = "wsUsersGiftGetList";
- public const String UsersGiftSend = "wsUsersGiftSend";
- public const String UsersGiftGetByUsers = "wsUsersGiftGetByUsers";
- public const String UsersGetProvince = "wsUsersGetProvice";
- public const String UsersGetInterests = "wsUsersGetInterests";
- public const String UsersGetInterestsByUser = "wsUsersGetInterestsByUser";
- public const String UsersInterestsUpdate = "wsUsersInterestsUpdate";
- // UStudy
- public const String UsersRegister = "usersRegister";
- public const String MpsRequest = "mpsRequest";
- public const String UsersGetRanking = "wsUsersGetRanking";
- public const String GetVocabularyCourses = "GetVocabularyCourses";
- public const String GetLessonOfCategory = "getLessonOfCategory";
- public const String GetContentOfVocabulary = "getContentOfVocabulary";
- public const String GetContentOfGrammar = "getContentOfGrammar";
- public const String GetContentOfListen = "getContentOfListen";
- public const String buyCourse = "buyCourse";
- public const String GetContentOfQuestion = "getContentOfQuestion";
- public const String GetAnsweerOfQuestion = "getAnsweerOfQuestion";
- public const String GetCourseHis = "getCourseHis";
- public const String GetRanking = "getRanking";
- public const String UsersUpdateProfile = "usersUpdateProfile";
- public const String GetMiniGameCondition = "wsGetMiniGameCondition";
- public const String GetRankMiniGame = "GetRankMiniGame";
-
- public const String SubGetListsubServiceCode = "subGetListsubServiceCode";
- public const String GetHfDatabyParentId = "getHfDatabyParentId";
- public const String GetHfDatabyId = "getHfDatabyId";
- public const String UsersUpdateCoin = "wsUsersUpdateCoin";
- public const String ChangeCoinToMoney = "wsChangeCoinToMoney";
- //public const String MpsRequest = "wsMpsRequest";
- public const String SubCheckStatus = "wsSubCheckStatus";
- public const String SubSendMt = "wsSubSendMt";
- public const String SubTopup = "wsSubTopup";
- public const String SystemCharge = "wsSystemCharge";
- //public const String SubGetListsubServiceCode = "wsSubGetListsubServiceCode";
- public const String NewsWebGetList = "wsNewsWebGetList";
- public const String NewsWebInsert = "wsNewsWebInsert";
- public const String NewsWebUpdate = "wsNewsWebUpdate";
- public const String NewsSmsGetList = "wsNewsSmsGetList";
- public const String NewsSmsInsert = "wsNewsSmsInsert";
- public const String NewsSmsUpdate = "wsNewsSmsUpdate";
- public const String GoogleCaptcha = "GoogleCaptcha";
- public const String SUB_DOMAIN = "subDomain";
- public const String URL_GET_MSISDN = "http://10.120.52.5:8699/privateApi/decrypt/v1/users";
- }
- public class WapConstant
- {
- public const String SUCCESS = "0";
- public const String FAILURE = "1";
- public const String CANCEL_USER_IN_CHARGING_LIST = "414";
- public const String BUY_TURN = "REGISTER";
- public const String REGISTER = "REGISTER";
- public const String FLOWER = "FLOWER";
- public const String ROSE = "ROSE";
- public const String CAR = "CAR";
- public const String HOUSE = "HOUSE";
- public const String CANCEL = "CANCEL";
- public const String MSISDN = "MSISDN";
- public const String NOT_REGISTER = "-101";
- public const String DOMAIN = "domain";
- public const String REGISTER_FOR_WS = "1";
- public const String CANCEL_FOR_WS = "2";
- }
- public class HttpCode
- {
- // http code
- public const String FALSE = "-10";
- public const String WAITING_OTP = "100";
- public const String USER_EXISTED = "2";
- public const String NO_DATA = "1";
- public const String SUCCESS = "0";
- public const String INVALID_MSISDN = "-1";
- public const String EXCEPTION = "-2";
- public const String USER_NOT_REGISTER = "-16";
- public const String AUTHEN_FAIL = "-10";
- public const String USER_LOGIN_FAIL = "-17";
- public const String IMAGE_NOT_VALID = "3";
- public const String NOT_EXISTED = "1000";
- public const String USER_GET_PROFILE_FAIL = "-18";
- public const String USER_GET_LIST_SERVICE_FAIL = "-19";
- public const String USER_GET_RANKING_FAIL = "-20";
- public const String USER_UPDATE_PLAYING_FAIL = "-21";
- }
- public static String ErrorContent(String errorCode)
- {
- //ResourceManager myManager = new ResourceManager(typeof(ErrCode));
- //return myManager.GetString(errorCode);
- return errorCode;
- }
- public static String SendPost(PostObj obj, String sessionId, String type)
- {
- obj.serviceId = UtilsController.ServiceId;
- var json = JsonConvert.SerializeObject(obj);
- var data = new StringContent(json, Encoding.UTF8, "application/json");
- var url = GetWsClient(type);
- Log.Debug("URL: " + url);
- Log.Debug("Request: " + json);
- using (var client = new HttpClient())
- {
- var response = client.PostAsync(url, data).Result;
- if (response.IsSuccessStatusCode)
- {
- var responseContent = response.Content;
- // by calling .Result you are synchronously reading the result
- string responseString = responseContent.ReadAsStringAsync().Result;
- Log.Debug("Response: " + responseString);
- return responseString;
- }
- else
- {
- Log.Error("Response: " + response.StatusCode.ToString());
- return response.StatusCode.ToString();
- }
- }
- }
- public static string SendPostWithAuthen(PostObj obj, string url, string token)
- {
- obj.serviceId = UtilsController.ServiceId;
- var json = JsonConvert.SerializeObject(obj);
- var data = new StringContent(json, Encoding.UTF8, "application/json");
- Log.Debug("url: " + url);
- Log.Debug("Request: " + json);
- using (var client = new HttpClient())
- {
- var response = client.PostAsync(url, data).Result;
- client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
- if (response.IsSuccessStatusCode)
- {
- var responseContent = response.Content;
- // by calling .Result you are synchronously reading the result
- string responseString = responseContent.ReadAsStringAsync().Result;
- Log.Debug("Response: " + responseString);
- return responseString;
- }
- Log.Debug("Error res: " + response);
- return response.StatusCode.ToString();
- }
- }
- public static string SendGetWithAuthen(string url, string token)
- {
- Log.Debug("url: " + url);
- using (var client = new HttpClient())
- {
- client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
- var response = client.GetAsync(url).Result;
- if (response.IsSuccessStatusCode)
- {
- var responseContent = response.Content;
- // by calling .Result you are synchronously reading the result
- string responseString = responseContent.ReadAsStringAsync().Result;
- Log.Debug("Response: " + responseString);
- return responseString;
- }
- Log.Debug("Error res: " + response);
- return response.StatusCode.ToString();
- }
- }
- public static String GetWsClient(String type)
- {
- return ConfigurationManager.AppSettings[type];
- }
- public static void SetWsClient(ref NEduService.WsNEduClient wsClient, String sessionId)
- {
- int lastNum = sessionId[sessionId.Length - 1];
- if (lastNum % 2 == 0)
- {
- wsClient.Endpoint.Address = new EndpointAddress(ConfigurationManager.AppSettings["wsUrl1"]);
- }
- else
- {
- wsClient.Endpoint.Address = new EndpointAddress(ConfigurationManager.AppSettings["wsUrl2"]);
- }
- }
- public static String GetCategoryCode(String courseType)
- {
- String categoryCode;
- if (courseType != null)
- {
- System.Web.HttpContext.Current.Session["courseType"] = courseType;
- categoryCode = courseType == "1" ? "VOCABULARY" :
- courseType == "2" ? "GRAMMAR" :
- courseType == "3" ? "LISTEN" :
- courseType == Constant.VN_LISTEN ? Constant.VN_LISTEN_CATE :
- Constant.LAO_LISTEN_CATE;
- }
- else
- {
- courseType = System.Web.HttpContext.Current.Session["courseType"] as String;
- if (courseType == null)
- {
- System.Web.HttpContext.Current.Session["courseType"] = "1";
- courseType = "1";
- }
- categoryCode = "VOCABULARY";
- }
- return categoryCode;
- }
- public class GetContentPath
- {
- public const String PeronalContentPath = "../Content/assets/imgs/picture/lesson/";
- public const String LessonContentPath = "../Content/assets/imgs/picture/lesson/";
- public const String CourseContentPath = "../Content/assets/imgs/picture/course/";
- public const String VocabularyContentPath = "../Content/assets/imgs/picture/vocabulary/";
- public const String GrammarContentPath = "../Content/assets/imgs/picture/grammar/";
- public const String ListenContentPath = "../Content/assets/imgs/picture/listen/";
- public const String QuestionContentPath = "../Content/assets/imgs/picture/question/";
- public const String CategoryContentPath = "../Content/assets/imgs/picture/category/";
- public const String IndividualContentPath = "../Content/assets/imgs/post/";
- }
- public class GetContentType
- {
- //1=text,2=link aidio,3=link video,4=file audio,5=file viedeo,6=file picture
- public const String TEXT_TYPE = "1";
- public const String AUDIO_LINK = "2";
- public const String VIDEO_LINK = "3";
- public const String AUDIO_FILE = "4";
- public const String VIDEO_FILE = "5";
- public const String PICTURE_FILE = "6";
- }
- public static string GetErrorCodeCharging(string code)
- {
- switch (code)
- {
- case "0": return ErrCode.Success;
- case "-1": return ErrCode.Unknown;
- case "-10": return ErrCode.SystemErr;
- case "-11": return ErrCode.ErrUnknown;
- case "-12": return ErrCode.NotEnoughMoney;
- case "-13": return ErrCode.WrongOTP;
- case "-14": return ErrCode.InvalidIOTP;
- case "-15": return ErrCode.TimeoutOTP;
- case "1": return ErrCode.LoginFailure;
- case "2": return ErrCode.UserExisted;
- case "-2": return ErrCode.RegisterFailure;
- case "3": return ErrCode.PasswordInvalid;
- case "-3": return ErrCode.TypeErr;
- case "4": return ErrCode.WrongOldPass;
- case "-4": return ErrCode.ErrTypePackage;
- case "5": return ErrCode.CoinInvalid;
- case "-5": return ErrCode.WrongServiceID;
- case "6": return ErrCode.TranCodeInvalid;
- case "7": return Lang.UserLocked;
- default: return code + " UNKNOWN CODE";
- }
- }
- public static string GetPackagename(string code, String whichDevice)
- {
- 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)
- {
- return UtilsController.Constant.EDU_REGISTER_DAILY_APP;
- }
- else
- {
- return UtilsController.Constant.EDU_REGISTER_DAILY_NEW;
- }
- case Constant.HOMEFITNESS: return UtilsController.Constant.EDU_HOME_FITNESS_REG;
- default: return code + " UNKNOWN CODE";
- }
- }
- public class Constant
- {
- public const String USER_SUBSCRIBER = "1";
- public const String USER_NORMAL = "0";
- public const String WAITING_OTP = "100";
- public const String SUCCESS = "0";
- public const String INVALID_MSISDN = "-1";
- public const String EXCEPTION = "-2";
- public const String USER_EXISTED = "2";
- public const String VOCABULARY = "VOCABULARY";
- public const String GRAMMAR = "GRAMMAR";
- public const String LISTEN = "LISTEN";
- public const String VIETNAMESE = "1";
- public const String LAOS = "2";
- public const String ENGLISH = "3";
- public const String HOMEFITNESS = "4";
- public const String EN_VOCABULARY = "1";
- public const String EN_GRAMMAR = "2";
- public const String EN_LISTEN = "3";
- public const String VN_VOCABULARY = "4";
- public const String VN_GRAMMAR = "5";
- public const String VN_LISTEN = "6";
- public const String LAO_VOCABULARY = "7";
- public const String LAO_GRAMMAR = "8";
- public const String LAO_LISTEN = "9";
- public const String EN_MINIGAME = "10";
- public const String VN_VOCABULARY_CATE = "VN_VOCABULARY";
- public const String VN_GRAMMAR_CATE = "VN_GRAMMAR";
- public const String VN_LISTEN_CATE = "VN_LISTEN";
- public const String LAO_VOCABULARY_CATE = "LAO_VOCABULARY";
- public const String LAO_GRAMMAR_CATE = "LAO_GRAMMAR";
- public const String LAO_LISTEN_CATE = "LAO_LISTEN";
- public const String BUY_COURSE = "2";
- public const String REGISTER = "1";
- 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 EDU_HOME_FITNESS_REG = "EDU_HOME_FITNESS_REG";
- public const String PARENT_ID = "-1";
- }
- }
- }
|