Ejemplo n.º 1
0
        public void SendMsgByButton(string livePageID)
        {
            var live_repo  = new LivePostsRepository();
            int liveid     = live_repo.Select(livePageID);
            var order_repo = new OrderRepositories();
            //List<string> ids = new List<string> { "3032519476788720", "2762673820474754" };
            List <MsgTextViewModel> ordersinfo = order_repo.SelectAllOrdersInfo(liveid);
            //string token = (string)Session["token"];
            string userid = User.Identity.GetUserId();
            string token  = FanPageService.GetToken(userid);
            var    orders = new List <OrderList>();

            foreach (var orderinfo in ordersinfo)
            {
                var order = new OrderList();
                order.CustomerID   = orderinfo.CustomerID;
                order.CustomerName = orderinfo.CustomerName;
                order.OrderID      = orderinfo.OrderID;
                order.Product      = new ProductViewModel {
                    Salepage_id = orderinfo.ProductPageID, SkuId = orderinfo.ProductID, ProductName = orderinfo.ProductName
                };
                order.Quantity = orderinfo.Quantity;
                orders.Add(order);
                FBSendMsgService.SuccessOrderToSendMsg(livePageID, order, token);
            }
        }
Ejemplo n.º 2
0
        public static int Select(string livePageID)
        {
            LivePostsRepository livepost_repo = new LivePostsRepository();
            var liveID = livepost_repo.Select(livePageID);

            return(liveID);
        }
Ejemplo n.º 3
0
        public static List <LivePostViewModel> ListLivePosts()
        {
            var live_repo         = new LivePostsRepository();
            var current_liveposts = live_repo.Select();

            return(current_liveposts);
        }
Ejemplo n.º 4
0
        public static List <OrderList> KeywordFilter(List <ProductViewModel> products, List <Datum> datas, string livePageID, string keywordPattern)
        {
            var resultOrderList = new List <OrderList>();
            var cust_repo       = new CustomerRepository();

            //List<Datum> resultDatum = new List<Datum>();
            if (keywordPattern == null)
            {
                keywordPattern = "+1";
            }
            foreach (var data in datas)
            {
                foreach (var item in products)
                {
                    string completeKeyword = item.Keyword + keywordPattern;
                    if (data.message == completeKeyword)
                    {
                        //resultDatum.Add(data);
                        if (data.from.name == null)
                        {
                            break;
                        }
                        var name = UTF8ConvertToString(data.from.name);

                        if (!cust_repo.SelectCustomer(data.from.id))
                        {
                            var customer = new Customer {
                                CustomerID = data.from.id, CustomerName = name
                            };
                            cust_repo.InsertCustomer(customer);
                        }
                        var live_repo = new LivePostsRepository();
                        var order     = new OrderList();
                        order.CustomerID   = data.from.id;
                        order.CustomerName = name;
                        order.Keyword      = data.message;
                        order.Product      = new ProductViewModel
                        {
                            Salepage_id = item.Salepage_id,
                            SkuId       = item.SkuId,
                            ProductName = item.ProductName,
                            UnitPrice   = item.UnitPrice
                        };
                        order.LiveID        = live_repo.Select(livePageID);
                        order.OrderDateTime = data.created_time.ToUniversalTime().AddHours(8);
                        order.Quantity      = 1; //因為目前只有+1,所以暫時寫死
                        resultOrderList.Add(order);
                        break;
                    }
                }
            }
            return(resultOrderList);
        }
Ejemplo n.º 5
0
        public static List <OrderList> KeywordCheck(List <ProductViewModel> products, List <Datum> datas, string livePageID, string keywordPattern)
        {
            var resultOrderList = new List <OrderList>();
            var cust_repo       = new CustomerRepository();

            foreach (var data in datas)
            {
                if (data.from == null)
                {
                    continue;
                }
                var name = UTF8ConvertToString(data.from.name);
                if (!cust_repo.SelectCustomer(data.from.id))
                {
                    var customer = new Customer {
                        CustomerID = data.from.id, CustomerName = name
                    };
                    cust_repo.InsertCustomer(customer);
                }

                foreach (var item in products)
                {
                    if (KeywordFilter(data.message, item.Keyword, keywordPattern) != 0)
                    {
                        var live_repo = new LivePostsRepository();
                        var order     = new OrderList();
                        order.CustomerID   = data.from.id;
                        order.CustomerName = name;
                        order.Keyword      = data.message;
                        order.Product      = new ProductViewModel
                        {
                            Salepage_id = item.Salepage_id,
                            SkuId       = item.SkuId,
                            ProductName = item.ProductName,
                            UnitPrice   = item.UnitPrice
                        };
                        order.LiveID        = live_repo.Select(livePageID);
                        order.OrderDateTime = data.created_time.ToUniversalTime().AddHours(8);
                        order.Quantity      = 1;
                        if (keywordPattern == "+1")
                        {
                            order.Quantity =
                                int.Parse(data.message.Substring(data.message.IndexOf("+", StringComparison.Ordinal)));
                        }
                        resultOrderList.Add(order);
                        break;
                    }
                }
            }
            return(resultOrderList);
        }
Ejemplo n.º 6
0
        public static void FailedOrderToSendMsg(string livePageId, OrderList order, string token)
        {
            LivePostsRepository livePost_repo = new LivePostsRepository();
            var           liveId   = livePost_repo.Select(livePageId);
            var           userid   = HttpContext.Current.User.Identity.GetUserId();
            Context       db       = new Context();
            string        storeUrl = db.AspNetUsers.FirstOrDefault(x => x.Id == userid)?.ShopID;
            var           link     = "http://" + storeUrl + "/";
            string        msgText  = $"{order.CustomerName}非常抱歉,您下標本商品-{order.Product.ProductName}的數量不足\r\n,您可以透過以下連結來本商店觀看其他商品資訊!{link}";
            List <string> id       = new List <string> {
                order.CustomerID
            };

            FBSendMsgService.SendMsg(msgText, id, token);
        }
Ejemplo n.º 7
0
        public static void OrderListToSendMsg(string livePageId, List <OrderList> orderList, string token)
        {
            LivePostsRepository livePost_repo = new LivePostsRepository();
            var liveId = livePost_repo.Select(livePageId);

            foreach (var order in orderList)
            {
                var           link    = getAddToCartLink(liveId, order.Product.Salepage_id, order.Product.SkuId, order.Quantity);
                string        msgText = $"{order.CustomerName}你好,感謝您訂購我們的產品!!\r\n{order.Product.ProductName}-數量{order.Quantity},請點擊下列連結完成接下來的購物流程!{link}";
                List <string> id      = new List <string> {
                    order.CustomerID
                };
                FBSendMsgService.SendMsg(msgText, id, token);
            }
        }
Ejemplo n.º 8
0
        public static TotalAndSalesOrders GetTotalAndSalesOrders(string livepageId)
        {
            var salesorder_repo = new SalesOrderRepositories();
            var live_repo       = new LivePostsRepository();
            int liveid          = live_repo.Select(livepageId);
            var salesOrders     = salesorder_repo.Select(liveid);

            var totalAndSalesOrders = new TotalAndSalesOrders()
            {
                salesOrderNum = salesOrders.Count,
                total         = salesOrders.Sum(x => x.Total)
            };

            return(totalAndSalesOrders);
        }
Ejemplo n.º 9
0
        public static void SuccessOrderToSendMsg(string livePageId, OrderList order, string token)
        {
            LivePostsRepository livePost_repo = new LivePostsRepository();
            var           liveId = livePost_repo.Select(livePageId);
            CartViewModel cart   = new CartViewModel()
            {
                salepage_id = order.Product.Salepage_id,
                sku_id      = order.Product.SkuId,
                qty         = order.Quantity
            };
            var           link    = getAddToCartLink(cart, livePageId, "FB");
            string        msgText = $"{order.CustomerName}你好,感謝您訂購我們的產品!!\r\n{order.Product.ProductName}-數量{order.Quantity},請點擊下列連結完成接下來的購物流程!{link}";
            List <string> id      = new List <string> {
                order.CustomerID
            };

            FBSendMsgService.SendMsg(msgText, id, token);
        }
Ejemplo n.º 10
0
        public static List <Datum> PostTimeFilter(List <Datum> comments, string livePageID)
        {
            LivePostsRepository livePost_repo = new LivePostsRepository();
            var livePostTime = livePost_repo.GetMaxPostTime(livePageID);
            //去Orders Table 看有沒有留言,有的話就抓最後一個留言的時間沒有的話就過濾livePostTime 的時間
            var      order_repo   = new OrderRepositories();
            var      live_repo    = new LivePostsRepository();
            int      liveid       = live_repo.Select(livePageID);
            DateTime selectResult = order_repo.SelectLastOrderComment(liveid); //SQL 要改

            if (selectResult != DateTime.MaxValue)
            {
                comments = comments.Where(x => DateTime.Compare(x.created_time.ToUniversalTime().AddHours(8), selectResult) > 0).ToList();
            }
            else
            {
                comments = comments.Where(x => DateTime.Compare(x.created_time.ToUniversalTime().AddHours(8), livePostTime) > 0).ToList();
            }

            return(comments);
        }