public async Task <ApiResult <bool> > AddToCartAsync(AddCartRequestViewModel customerAddToCart, int userId)
        {
            bool iSFromDiffrentService = false;

            try
            {
                SqlParameter CartId = new SqlParameter("@CartId", System.Data.SqlDbType.Int)
                {
                    Value = customerAddToCart.CartId.HasValue ? customerAddToCart.CartId.Value : 0
                };
                SqlParameter StoreId = new SqlParameter("@StoreId", System.Data.SqlDbType.Int)
                {
                    Value = customerAddToCart.StoreId
                };
                SqlParameter ServiceId = new SqlParameter("@ServiceId", System.Data.SqlDbType.Int)
                {
                    Value = customerAddToCart.ServiceId
                };
                SqlParameter StoreItemId = new SqlParameter("@StoreItemId", System.Data.SqlDbType.Int)
                {
                    Value = customerAddToCart.StoreItemId
                };
                SqlParameter IsCartRemoved = new SqlParameter("@IsCartRemoved", System.Data.SqlDbType.Bit)
                {
                    Value = customerAddToCart.IsCartRemoved
                };
                SqlParameter AddressId = new SqlParameter("@AddressId", System.Data.SqlDbType.Int)
                {
                    Value = customerAddToCart.AddressId
                };
                SqlParameter UserId = new SqlParameter("@UserId", System.Data.SqlDbType.Int)
                {
                    Value = userId
                };
                SqlParameter Quantity = new SqlParameter("@Quantity", System.Data.SqlDbType.Int)
                {
                    Value = customerAddToCart.Quantity ?? (object)DBNull.Value
                };
                var result = _context.ExecuteStoreProcedure("dbo.usp_AddCart", CartId, StoreId, ServiceId, StoreItemId, Quantity, IsCartRemoved, AddressId, UserId);
                if (result.Tables.Count > 0 && result.Tables[0].Rows.Count > 0)
                {
                    foreach (System.Data.DataRow row in result.Tables[0].Rows)
                    {
                        if (((row["ErrorMessage"] != DBNull.Value) ? Convert.ToString(row["ErrorMessage"]) : string.Empty) == "1")
                        {
                            iSFromDiffrentService = true;
                        }
                    }
                }
                return(new ApiResult <bool>(new ApiResultCode(ApiResultType.Success), iSFromDiffrentService));
            }
            catch (Exception ex)
            {
                ErrorTrace.Logger(LogArea.ApplicationTier, ex);
            }
            return(new ApiResult <bool>(new ApiResultCode(ApiResultType.Success), false));
        }
        public async Task <IActionResult> DeleteServiceCart([FromForm] AddCartRequestViewModel model)
        {
            int?userId    = 0;
            var userStrId = this.User.FindFirstValue(ClaimTypes.Name);

            if (!string.IsNullOrWhiteSpace(userStrId))
            {
                userId = Convert.ToInt32(userStrId);
            }


            var response = new SingleResponse <CartCountResponseViewModel>();

            try
            {
                var isDataRemoved = await _unit.ICart.CartServiceRemove(model.CartId.Value);

                if (isDataRemoved.UserObject)
                {
                    var dataResult = (await _unit.ICart.CartCountAndPrice(userId: userId.Value));
                    response.Data    = dataResult.HasSuccess ? dataResult.UserObject : null;
                    response.Message = "Cart added";
                    response.Status  = true;
                    return(response.ToHttpResponse());
                }
                else
                {
                    response.Data    = null;
                    response.Message = "no cart added";
                    response.Status  = true;
                    return(response.ToHttpResponse());
                }
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = "There was an internal error, please contact to technical support.";
                ErrorTrace.Logger(LogArea.ApplicationTier, ex);
            }
            return(response.ToHttpResponse());
        }