public ResponseAccountLogin LoginClient(string email, string password, bool isFromExtend = false) { ResponseAccountLogin user = null; try { if (!isFromExtend) { password = CommonHelper.GetSHA512(password); } AccountLoginRequest paraBody = new AccountLoginRequest(); paraBody.Email = email; paraBody.Password = password; NSLog.Logger.Info("Promotion Login Request", paraBody); var result = (NSApiResponse)ApiResponse.Post <NSApiResponse>(Commons.LoginClient, null, paraBody); NSLog.Logger.Info("Promotion Login Response", result); if (result.Success) { user = new ResponseAccountLogin(); dynamic data = result.Data; dynamic dataInfo = data["Info"]; var lstDataInfo = JsonConvert.SerializeObject(dataInfo); user = JsonConvert.DeserializeObject <ResponseAccountLogin>(lstDataInfo); var dataProduct = data["ListProduct"]; if (dataProduct != null) { var lstDataProduct = JsonConvert.SerializeObject(dataProduct); user.ListProduct = JsonConvert.DeserializeObject <List <ProductDetailModels> >(lstDataProduct); } if (!string.IsNullOrEmpty(data["OrderID"])) { user.OrderID = data["OrderID"]; } if (!string.IsNullOrEmpty(data["CurrencySymbol"])) { user.CurrencySymbol = data["CurrencySymbol"]; } user.NumOfItems = data["NumOfItems"]; } else { dynamic data = result.Data; if (data.Count > 3) { user = new ResponseAccountLogin(); dynamic dataInfo = data["Info"]; user.IsVerify = dataInfo["IsVerify"]; } } return(user); } catch (Exception e) { NSLog.Logger.Error("Index : ", e); return(user); } }
private void ProcessResponseAccountLogin(IChannel session, ResponseAccountLogin response, byte[] body) { var destSession = this.sessionManager.GetConnection(response.SessionID); if (destSession == null) { this.logger.LogInformation("ProcessResponseQueryAccount Session Not Found,SessionID:{0}", response.SessionID); return; } var sessionInfo = destSession.GetSessionInfo(); var playerInfo = sessionInfo.GetPlayerInfo(); playerInfo.ActorType = response.ActorType; playerInfo.ActorID = response.ActorID; this.logger.LogInformation("ProcessResponseQueryAccount, SessionID:{0}, OpenID:{1}, Actor:{2}/{3}", sessionInfo.SessionID, playerInfo.OpenID, playerInfo.ActorType, playerInfo.ActorID); Task.Run(async() => { var position = await this.FindActorPositionAsync(playerInfo.ActorType, playerInfo.ActorID).ConfigureAwait(false); if (playerInfo.DestServerID != position.ServerID) { playerInfo.DestServerID = position.ServerID; this.logger.LogInformation("ProcessResponseQueryAccount, SessionID:{0}, Actor:{1}/{2}, Dest ServerID:{3}", sessionInfo.SessionID, playerInfo.ActorType, playerInfo.ActorID, playerInfo.DestServerID); } this.messageCenter.SendMessageToServer(playerInfo.DestServerID, new RpcMessage(new NotifyNewActorSession() { SessionID = sessionInfo.SessionID, OpenID = playerInfo.OpenID, ServerID = playerInfo.DestServerID, ActorType = playerInfo.ActorType, ActorID = playerInfo.ActorID, }, playerInfo.Token)); }); }
public ActionResult Index(AccountLoginRequest model, string returnUrl = null) { try { if (Session["UserClientSite"] != null) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { UserFactory factoy = new UserFactory(); ResponseAccountLogin User = factoy.LoginClient(model.Email, model.Password); bool isValid = (User != null && !string.IsNullOrEmpty(User.ID)); if (isValid) { UserSession userSession = new UserSession(); userSession.Email = User.Email; userSession.UserName = User.Name; userSession.UserId = User.ID; userSession.IsAuthenticated = true; userSession.ImageUrl = User.ImageURL; userSession.IsReseller = User.IsReseller; userSession.CurrencySymbol = User.CurrencySymbol; // Update 04/09/2018 userSession.ListProduct = User.ListProduct; //currency //userSession.CurrencySymbol = GetCurrency(); //Commons.CurrencySymbol = userSession.CurrencySymbol; if (!string.IsNullOrEmpty(User.OrderID)) { var Cookie = Request.Cookies["csc-order-v2"]; if (Cookie != null) { var Order = Cookie.Value; var strOrder = Server.UrlDecode(Order); var ListOrder = JsonConvert.DeserializeObject <List <CookieOrder> >(strOrder); if (ListOrder != null && ListOrder.Any()) { /* Check merge order anynomus */ var itemMerge = ListOrder.FirstOrDefault(x => !string.IsNullOrEmpty(x.OrderId) && string.IsNullOrEmpty(x.CusId)); if (itemMerge != null && !string.IsNullOrEmpty(User.OrderID)) { YourCartFactory _factoryYC = null; _factoryYC = new YourCartFactory(); var msg = string.Empty; var result = _factoryYC.OrderMerge(itemMerge.OrderId, User.OrderID, ref msg); ListOrder.Remove(itemMerge); Cookie.Value = null; Response.Cookies.Add(Cookie); var strListOrderMerge = JsonConvert.SerializeObject(ListOrder); Cookie.Value = strListOrderMerge; Response.Cookies.Add(Cookie); } var temp = ListOrder.FirstOrDefault(x => x.OrderId.Equals(User.OrderID)); if (temp != null) { var _OrderId = temp.OrderId; if (Session["ORDERID"] != null && string.IsNullOrEmpty(Session["ORDERID"].ToString())) { Session["ORDERID"] = _OrderId; } YourCartFactory _factory = new YourCartFactory(); var modelYourCart = _factory.GetOrderDetail(_OrderId); if (modelYourCart.ListItems != null && modelYourCart.ListItems.Count > 0) { modelYourCart.TotalQuantity = (int)modelYourCart.ListItems.Sum(x => x.Quantity); Session["IsFree"] = modelYourCart.IsFree; } temp.Qty = modelYourCart.TotalQuantity; } else { //check cusid var orderTmp = ListOrder.Where(ww => ww.CusId == User.ID).FirstOrDefault(); if (orderTmp != null) { orderTmp.OrderId = User.OrderID; orderTmp.Qty = User.NumOfItems; } else { var _OrderId = User.OrderID; if (Session["ORDERID"] != null && string.IsNullOrEmpty(Session["ORDERID"].ToString())) { Session["ORDERID"] = _OrderId; } YourCartFactory _factory = new YourCartFactory(); var modelYourCart = _factory.GetOrderDetail(_OrderId); if (modelYourCart.ListItems != null && modelYourCart.ListItems.Count > 0) { modelYourCart.TotalQuantity = (int)modelYourCart.ListItems.Sum(x => x.Quantity); Session["IsFree"] = modelYourCart.IsFree; } var newtemp = new CookieOrder { CusId = User.ID, OrderId = User.OrderID, Qty = modelYourCart.TotalQuantity }; ListOrder.Add(newtemp); } } //ListOrder.ForEach(x => { // x.Qty = x.OrderId == User.OrderID ? temp.Qty : x.Qty; //}); } else { YourCartFactory _factory = new YourCartFactory(); var modelYourCart = _factory.GetOrderDetail(User.OrderID); if (modelYourCart.ListItems != null && modelYourCart.ListItems.Count > 0) { modelYourCart.TotalQuantity = (int)modelYourCart.ListItems.Sum(x => x.Quantity); Session["IsFree"] = modelYourCart.IsFree; } ListOrder = new List <CookieOrder>() { new CookieOrder { CusId = User.ID, OrderId = User.OrderID, Qty = modelYourCart.TotalQuantity } }; } //Cookie.Expires = DateTime.Now.AddDays(-1d); // Reset value cookie Cookie.Value = null; Response.Cookies.Add(Cookie); var strListOrder = JsonConvert.SerializeObject(ListOrder); Cookie.Value = strListOrder; Response.Cookies.Add(Cookie); } else { YourCartFactory _factory = new YourCartFactory(); var modelYourCart = _factory.GetOrderDetail(User.OrderID); if (modelYourCart.ListItems != null && modelYourCart.ListItems.Count > 0) { modelYourCart.TotalQuantity = (int)modelYourCart.ListItems.Sum(x => x.Quantity); Session["IsFree"] = modelYourCart.IsFree; } var ListOrder = new List <CookieOrder>() { new CookieOrder { CusId = User.ID, OrderId = User.OrderID, Qty = modelYourCart.TotalQuantity } }; var strListOrder = JsonConvert.SerializeObject(ListOrder); Cookie = new HttpCookie("csc-order-v2"); Cookie.Value = strListOrder; Response.Cookies.Add(Cookie); } } else { var Cookie = Request.Cookies["csc-order-v2"]; if (Cookie != null) { var Order = Cookie.Value; var strOrder = Server.UrlDecode(Order); var ListOrder = JsonConvert.DeserializeObject <List <CookieOrder> >(strOrder); if (ListOrder != null && ListOrder.Any()) { var temp = ListOrder.FirstOrDefault(x => x.CusId.Equals(User.ID)); if (temp != null) { ListOrder.Remove(temp); Cookie.Value = null; Response.Cookies.Add(Cookie); var strListOrder = JsonConvert.SerializeObject(ListOrder); Cookie.Value = strListOrder; Response.Cookies.Add(Cookie); } } //Cookie.Expires = DateTime.Now.AddDays(-1d); // Reset value cookie } } Session.Add("UserClientSite", userSession); Session.Remove("ListItemCategory"); //Update 04/09/2018 if (User.ListProduct != null && User.ListProduct.Any() && User.IsReseller) { return(RedirectToAction("Cart", "YourCart")); } //else //{ return(RedirectToAction("Index", "MyStoreAndBusiness")); //} //if (!string.IsNullOrEmpty(mController)) // return RedirectToAction("Index", mController); //if (returnUrl == null) // return RedirectToAction("Index", "Home"); //else // return Redirect(returnUrl); } else { if (User != null && User.IsVerify == false) { return(RedirectToAction("Verification", "SignUp", new { email = model.Email })); } else { ModelState.AddModelError("", "Email/Password is incorrect!"); return(View(model)); } } } else { return(View(model));// Return Error page } } catch (Exception ex) { NSLog.Logger.Error("Index : ", ex); return(new HttpStatusCodeResult(400, ex.Message)); } }