Пример #1
0
        public void Add(Channel channel)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Channel> .Filter.Where(x => x.ext_id == channel.ext_id && x.business_id == channel.business_id);

            _mongoClient.excuteMongoLinqUpdate <Channel>(filter, channel, option,
                                                         _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, channels,
                                                         true, "", DateTime.Now.AddMinutes(10)).Wait();
            CacheBase.cacheModifyAllKeyLinq(new List <string>()
            {
                channel.ext_id
            });
        }
Пример #2
0
        public void Upsert(Agent agent)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Agent> .Filter.Where(x => x.id == agent.id && x.business_id == agent.business_id);

            _mongoClient.excuteMongoLinqUpdate <Agent>(filter, agent, option,
                                                       _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, agents,
                                                       true, "", DateTime.Now.AddMinutes(10)).Wait();

            try
            {
                if (agent.status.ToLower() == "offline")
                {
                    var uri = _appSettings.Value.BaseUrls.ApiHotline + "api/PhoneAccounts/changeStatus/" + agent.id + "/offline";
                    Core.Helpers.WebHelper.HttpGetAsync <string>(uri).Wait();
                }
            }
            catch { }
            CacheBase.cacheModifyAllKeyLinq(new List <string>()
            {
                agent.username
            });
        }
Пример #3
0
        public void Upsert(Note note)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Note> .Filter.Where(x => x.id == note.id && x.business_id == note.business_id);

            _mongoClient.excuteMongoLinqUpdate <Note>(filter, note, option,
                                                      _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, notes,
                                                      true, "", DateTime.Now.AddMinutes(10)).Wait();

            CacheBase.cacheModifyAllKeyLinq(new List <string>()
            {
                note.customer_id
            });

            //var customerOld = GetCustomerPhone(note.customer_id).Result;
            //if (customerOld != null)
            //{
            //    var url = "http://api.hibaza.com/notes/send/?access_token=1";
            //    var rs = Core.Helpers.WebHelper.HttpPostAsync<ApiResponse>(url, new Note { customer_id = (string)customerOld.customers[0].id, customer_name = (string)customerOld.customers[0].name, type = "customer", business_id = "000000809935934", thread_id = note.thread_id, text = note.text, featured = note.featured, sender_id = "000000618019832", sender_name = "Hibaza", sender_avatar = ""  }).Result;
            //}
            //else
            //{
            //    var url = "http://api.hibaza.com/notes/send/?access_token=1";
            //    var rs = Core.Helpers.WebHelper.HttpPostAsync<ApiResponse>(url, new Note { type = "customer", business_id = "000000809935934", thread_id = note.thread_id, text = note.text, featured = note.featured, sender_id = "000000618019832", sender_name = "Hibaza", sender_avatar = "" }).Result;
            //}
        }
Пример #4
0
        public long Upsert(string business_id, Thread thread)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Thread> .Filter.Where(x => x.id == thread.id && x.business_id == thread.business_id);

            _mongoClient.excuteMongoLinqUpdate <Thread>(filter, thread, option,
                                                        _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, threads,
                                                        true, "", DateTime.Now.AddMinutes(10)).Wait();

            CacheBase.cacheModifyAllKeyLinq(new List <string>()
            {
                thread.customer_id
            });
            return(1);
        }
Пример #5
0
        public void Upsert(Business business)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Business> .Filter.Where(x => x.id == business.id);

            _mongoClient.excuteMongoLinqUpdate <Business>(filter, business, option,
                                                          _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, businesses,
                                                          true, "", DateTime.Now.AddMinutes(10)).Wait();
        }
Пример #6
0
        public void CreateLink(Link link)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Link> .Filter.Where(x => x.id == link.id && x.business_id == link.business_id);

            _mongoClient.excuteMongoLinqUpdate <Link>(filter, link, option,
                                                      _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, links,
                                                      true, "", DateTime.Now.AddMinutes(10)).Wait();
        }
Пример #7
0
        public void CreateNode(Node node)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Node> .Filter.Where(x => x.id == node.id && x.business_id == node.business_id);

            _mongoClient.excuteMongoLinqUpdate <Node>(filter, node, option,
                                                      _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, nodes,
                                                      true, "", DateTime.Now.AddMinutes(10)).Wait();

            CacheBase.cacheModifyAllKeyLinq(new List <string>()
            {
                node.id
            });
        }
Пример #8
0
        public void Upsert(Shortcut shortcut)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Shortcut> .Filter.Where(x => x.id == shortcut.id && x.business_id == shortcut.business_id);

            _mongoClient.excuteMongoLinqUpdate <Shortcut>(filter, shortcut, option,
                                                          _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, shortcuts,
                                                          true, "", DateTime.Now.AddMinutes(10)).Wait();

            CacheBase.cacheModifyAllKeyLinq(new List <string>()
            {
                shortcut.id
            });
        }
Пример #9
0
        public void Upsert(Message message)
        {
            try
            {
                var option = new UpdateOptions {
                    IsUpsert = true
                };
                var filter = Builders <Message> .Filter.Where(x => x.ext_id == message.ext_id && x.business_id == message.business_id);

                _mongoClient.excuteMongoLinqUpdate <Message>(filter, message, option,
                                                             _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, messages,
                                                             true, "", DateTime.Now.AddMinutes(10)).Wait();

                CacheBase.cacheModifyAllKeyLinq(new List <string>()
                {
                    message.customer_id
                });
                _mongoClient.MessagesHistory.ReplaceOne(filter, message, options: option);
            }
            catch { }

            try
            {
                System.Threading.Tasks.Task.Factory.StartNew(() =>
                {
                    if (!string.IsNullOrWhiteSpace(message.message))
                    {
                        var dicConfig = new Dictionary <string, string>();
                        dicConfig.Add("session_customer", message.customer_id);
                        dicConfig.Add("using_full_search", "0");
                        dicConfig.Add("page_id", message.channel_ext_id);
                        dicConfig.Add("auto_agents", message.channel_ext_id == message.sender_ext_id ? "autoAgents" : "ManualAgents");
                        dicConfig.Add("business_id", message.business_id);

                        var dicPara = new Dictionary <string, string>();
                        dicPara.Add("q", message.message);

                        var json = new Dictionary <string, string>();
                        json.Add("config", JsonConvert.SerializeObject(dicConfig));
                        json.Add("para", JsonConvert.SerializeObject(dicPara));

                        _cm.PostAsync(_appSettings.Value.BaseUrls.ApiAi + "api/AiExcuteAll/Excute", JsonConvert.SerializeObject(json));
                    }
                });
            }
            catch { }
        }
Пример #10
0
        public bool Upsert(Attachment attachment)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Attachment> .Filter.Where(x => x.id == attachment.id && x.business_id == attachment.business_id);

            _mongoClient.excuteMongoLinqUpdate <Attachment>(filter, attachment, option,
                                                            _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, attachments,
                                                            true, "", DateTime.Now.AddMinutes(10)).Wait();

            CacheBase.cacheModifyAllKeyLinq(new List <string>()
            {
                attachment.id
            });

            return(true);
        }
Пример #11
0
        public void Upsert(Referral referral)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Referral> .Filter.Where(x => x.id == referral.id && x.business_id == referral.business_id);

            _mongoClient.excuteMongoLinqUpdate <Referral>(filter, referral, option,
                                                          _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, referrals,
                                                          true, "", DateTime.Now.AddMinutes(10)).Wait();

            CacheBase.cacheModifyAllKeyLinq(new List <string>()
            {
                referral.customer_id
            });

            // save to bot
            try
            {
                if (referral.product_sku != null && referral.product_sku != "")
                {
                    System.Threading.Tasks.Task.Factory.StartNew(() =>
                    {
                        var dicConfig = new Dictionary <string, string>();
                        dicConfig.Add("session_customer", referral.customer_id);
                        dicConfig.Add("using_full_search", "0");
                        dicConfig.Add("page_id", referral.recipient_ext_id);
                        dicConfig.Add("auto_agents", "ManualAgents");
                        dicConfig.Add("business_id", referral.business_id);

                        var dicPara = new Dictionary <string, string>();
                        dicPara.Add("q", referral.product_sku);

                        var json = new Dictionary <string, string>();
                        json.Add("config", JsonConvert.SerializeObject(dicConfig));
                        json.Add("para", JsonConvert.SerializeObject(dicPara));
                        _cm.PostAsync(_appSettings.Value.BaseUrls.ApiAi + "api/AiExcuteAll/Excute", JsonConvert.SerializeObject(json));
                    });
                }
            }
            catch { }
        }
Пример #12
0
        public void Upsert(Ticket ticket)
        {
            var option = new UpdateOptions {
                IsUpsert = true
            };
            var filter = Builders <Ticket> .Filter.Where(x => x.id == ticket.id && x.business_id == ticket.business_id);

            _mongoClient.excuteMongoLinqUpdate <Ticket>(filter, ticket, option,
                                                        _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, tickets,
                                                        true, "", DateTime.Now.AddMinutes(10)).Wait();

            //System.Threading.Tasks.Task.Factory.StartNew(() =>
            //{
            //    try
            //    {
            //        CacheBase.cacheModifyAllKeyLinq(new List<string>() { ticket.customer_id });

            //        var customerOld = GetCustomerPhone(ticket.customer_id).Result;
            //        if (customerOld != null)
            //        {
            //            ticket.sender_id = "000000618019832";
            //            ticket.sender_name = "Hibaza";
            //            ticket.business_id = "000000809935934";
            //            ticket.customer_id = (string)customerOld.customers[0].id;
            //            ticket.customer_name = (string)customerOld.customers[0].name;
            //            ticket.id = Core.Helpers.CommonHelper.GenerateNineDigitUniqueNumber();
            //            var url = "http://api.hibaza.com/" + "tickets/add?access_token=1";
            //            var rs = Core.Helpers.WebHelper.HttpPostAsync<ApiResponse>(url, ticket).Result;
            //        }
            //        else
            //        {
            //            ticket.sender_id = "000000618019832";
            //            ticket.sender_name = "Hibaza";
            //            ticket.business_id = "000000809935934";
            //            var url = "http://api.hibaza.com/" + "tickets/add?access_token=1";
            //            var rs = Core.Helpers.WebHelper.HttpPostAsync<ApiResponse>(url, ticket).Result;
            //        }
            //    }
            //    catch { }
            //});
        }
Пример #13
0
        public void UpsertReportAll()
        {
            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                try
                {
                    var w        = new BsonDocument();
                    var business = _mongoClient.Businesses.FindAsync(w, null).Result;
                    var bs       = business.ToList();

                    //for (var i = 0; i < 60; i++)
                    //{
                    long start = Hibaza.CCP.Core.Helpers.CommonHelper.DateTimeToUnixTimestamp(DateTime.Today);
                    long end   = Hibaza.CCP.Core.Helpers.CommonHelper.DateTimeToUnixTimestamp(DateTime.Now);
                    //long start = Hibaza.CCP.Core.Helpers.CommonHelper.DateTimeToUnixTimestamp(DateTime.Today.AddDays(-(i+1)));
                    //    long end = Hibaza.CCP.Core.Helpers.CommonHelper.DateTimeToUnixTimestamp(DateTime.Today.AddDays(-i));
                    Paging page   = new Paging();
                    page.Previous = start + "";
                    page.Next     = end + "";

                    //#region xoa het du lieu trong ngay
                    //try
                    //{
                    //    var query = "{$and:[{timestamp: { $gte : " + start + "}},{timestamp : { $lt: " + end + "} }]}";

                    //    var client = new MongoClient(_appSettings.Value.MongoDB.ConnectionString);
                    //    var db = client.GetDatabase(_appSettings.Value.MongoDB.Database);
                    //    var collection = db.GetCollection<BsonDocument>(report);
                    //    collection.DeleteMany(query);
                    //}
                    //catch { }

                    //#endregion
                    foreach (var b in bs)
                    {
                        var business_id = b.id;
                        var tickets     = GetTicketChartDataJob(business_id, page).Result;
                        var customers   = GetCustomerChatChartDataJob(business_id, page).Result;
                        var agents      = GetAgentChatChartDataJob(business_id, page).Result;
                        var agents01    = GetAgentChartDataJob(business_id, page).Result;

                        #region them du lieu moi
                        foreach (var t in tickets)
                        {
                            try
                            {
                                t.Add("key", "GetTicketChartDataJob");
                                t.Add("created_time", DateTime.Now);
                                t.Add("timestamp", start);
                                t.Add("business_id", business_id);

                                var option = new UpdateOptions {
                                    IsUpsert = true
                                };
                                var filter = Builders <BsonDocument> .Filter.Where(x => x["timestamp"] == start &&
                                                                                   x["key"] == "GetTicketChartDataJob" &&
                                                                                   x["business_id"] == business_id &&
                                                                                   x["date"] == t["date"]
                                                                                   );
                                _mongoClient.excuteMongoLinqUpdate <BsonDocument>(filter, t, option,
                                                                                  _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, report,
                                                                                  false, "", DateTime.Now.AddMinutes(10));
                            }
                            catch { }
                        }

                        foreach (var t in customers)
                        {
                            try
                            {
                                t.Add("key", "GetCustomerChatChartDataJob");
                                t.Add("created_time", DateTime.Now);
                                t.Add("timestamp", start);
                                t.Add("business_id", business_id);

                                var option = new UpdateOptions {
                                    IsUpsert = true
                                };
                                var filter = Builders <BsonDocument> .Filter.Where(x => x["timestamp"] == start &&
                                                                                   x["key"] == "GetCustomerChatChartDataJob" &&
                                                                                   x["business_id"] == business_id
                                                                                   );
                                _mongoClient.excuteMongoLinqUpdate <BsonDocument>(filter, t, option,
                                                                                  _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, report,
                                                                                  false, "", DateTime.Now.AddMinutes(10));
                            }
                            catch { }
                        }


                        foreach (var t in agents)
                        {
                            try
                            {
                                t.Add("key", "GetAgentChatChartDataJob");
                                t.Add("created_time", DateTime.Now);
                                t.Add("timestamp", start);
                                t.Add("business_id", business_id);

                                var option = new UpdateOptions {
                                    IsUpsert = true
                                };
                                var filter = Builders <BsonDocument> .Filter.Where(x => x["timestamp"] == start &&
                                                                                   x["key"] == "GetAgentChatChartDataJob" &&
                                                                                   x["business_id"] == business_id
                                                                                   );
                                _mongoClient.excuteMongoLinqUpdate <BsonDocument>(filter, t, option,
                                                                                  _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, report,
                                                                                  false, "", DateTime.Now.AddMinutes(10));
                            }
                            catch { }
                        }

                        foreach (var t in agents01)
                        {
                            try
                            {
                                t.Add("key", "GetAgentChartDataJob");
                                t.Add("created_time", DateTime.Now);
                                t.Add("timestamp", start);
                                t.Add("business_id", business_id);

                                var option = new UpdateOptions {
                                    IsUpsert = true
                                };
                                var filter = Builders <BsonDocument> .Filter.Where(x => x["timestamp"] == start &&
                                                                                   x["key"] == "GetAgentChartDataJob" &&
                                                                                   x["business_id"] == business_id &&
                                                                                   x["id"] == t["id"]
                                                                                   );
                                _mongoClient.excuteMongoLinqUpdate <BsonDocument>(filter, t, option,
                                                                                  _appSettings.Value.MongoDB.ConnectionString, _appSettings.Value.MongoDB.Database, report,
                                                                                  false, "", DateTime.Now.AddMinutes(10));
                            }
                            catch { }
                        }
                        #endregion
                        //  }
                    }
                }
                catch (Exception ex)
                {
                }
            });
        }