Exemplo n.º 1
0
        public virtual ActionResult GuestCheckout(CheckoutModel model)
        {
            if (!ModelState.IsValid)
            {
                return(JsonValidationError());
            }
            var responseresult = new ResponseModel <Omnicx.WebStore.Models.Commerce.BasketModel>();
            var response       = _customerRepository.GetUserdetailsByUserName(Sanitizer.GetSafeHtmlFragment(model.Email));
            var existingUser   = response.Result;

            if (existingUser.Count > 0)
            {
                var customerId = existingUser[0].UserId;
                var companyId  = existingUser[0].CompanyId;
                if (model.CustomerId == null)
                {
                    responseresult = _checkoutApi.UpdateUserToBasket(model.BasketId, customerId.ToString());
                }
                return(JsonSuccess(new { customerId = customerId, basket = responseresult.Result, BasketStage = BasketStage.LoggedIn.GetHashCode(), companyId = companyId }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                var user = new CustomerModel
                {
                    Email         = Sanitizer.GetSafeHtmlFragment(model.Email),
                    Password      = Sanitizer.GetSafeHtmlFragment(model.Password),
                    SourceProcess = SourceProcessType.SITE_CHECKOUTGUEST.ToString()
                };
                var result = _customerRepository.Register(user);
                if (result.Result.IsValid)
                {
                    if (model.CustomerId == null)
                    {
                        responseresult   = _checkoutApi.UpdateUserToBasket(model.BasketId, result.Result.RecordId);
                        model.CustomerId = result.Result.RecordId;
                    }
                }
                return(JsonSuccess(new { customerId = model.CustomerId, basket = responseresult.Result, BasketStage = BasketStage.LoggedIn.GetHashCode() }, JsonRequestBehavior.AllowGet));
            }
        }