Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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));
            });
        }
Esempio n. 3
0
        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));
            }
        }