Example #1
0
        public IActionResult webhook(ZaloMessage obj)
        {
            var tt = Request.QueryString.Value;

            try
            {
                // add remove like image
                //var p = JsonConvert.SerializeObject(obj);
                // p = p.Replace(_appSettings.Value.BaseUrls.Api, "");
                // obj = JsonConvert.DeserializeObject<FacebookWebhookData>(p);
                _logService.Create(new Log {
                    name = "zalo ", message = "zalo " + tt, details = JsonConvert.SerializeObject(obj)
                });
                // _facebookService.SaveWebhookData("", "", obj, true);
                _zaloService.SaveWebhookData(obj, true);
                return(Ok());
            }
            catch (Exception ex)
            {
                _logService.Create(new Log {
                    name = "Webhook zalo error calledback", message = ex.Message + tt, details = JsonConvert.SerializeObject(ex.StackTrace)
                });
                throw ex;
            }
        }
Example #2
0
        public ApiResponse GetCustomerTickets(string business_id, string customer_id, string access_token)
        {
            ApiResponse          response   = new ApiResponse();
            IEnumerable <Ticket> resultData = null;

            try
            {
                resultData = _ticketService.GetCustomerTickets(business_id, customer_id, new Paging {
                    Limit = 100
                });
                response.ok   = resultData != null;
                response.data = resultData;
            }
            catch (Exception ex)
            {
                _logService.Create(new Log
                {
                    message  = ex.Message,
                    category = "Ticket",
                    link     = $"{Request.HttpContext.Request.Scheme}://{Request.HttpContext.Request.Host}{Request.HttpContext.Request.Path}{Request.HttpContext.Request.QueryString}",
                    details  = JsonConvert.SerializeObject(ex.StackTrace),
                    name     = string.Format("Get tickets by business_id: {0}", business_id)
                });
            }
            return(response);
        }
Example #3
0
        public async Task <ApiResponse> GetReferrals(string business_id, string thread_id, string access_token)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                var resultData = _referralService.GetReferrals(business_id, thread_id, new Paging {
                    Limit = 50
                }).Result.Select(r => new ReferralModel(r));
                response.ok   = true;
                response.data = resultData;
            }
            catch (Exception ex)
            {
                _logService.Create(new Log
                {
                    message  = ex.Message,
                    category = "Referral",
                    link     = $"{Request.HttpContext.Request.Scheme}://{Request.HttpContext.Request.Host}{Request.HttpContext.Request.Path}{Request.HttpContext.Request.QueryString}",
                    details  = JsonConvert.SerializeObject(ex.StackTrace),
                    name     = string.Format("Get referrals by business_id: {0}", business_id)
                });
            }
            return(response);
        }
Example #4
0
 public IActionResult WebhookPost([FromBody] FacebookWebhookData obj)
 {
     try
     {
         //add remove like image
         //var p = JsonConvert.SerializeObject(obj);
         //p = p.Replace(_appSettings.BaseUrls.Api, "");
         //obj = JsonConvert.DeserializeObject<FacebookWebhookData>(p);
         _logService.Create(new Log {
             name = "Webhook2", message = "Webhook3", details = JsonConvert.SerializeObject(obj)
         });
         _facebookService.SaveWebhookData("", "", obj, true);
         return(Ok());
     }
     catch (Exception ex)
     {
         if (obj.@object == "page")
         {
             DateTime now  = DateTime.UtcNow;
             Node     node = new Node
             {
                 type         = "facebook.webhook",
                 created_time = now,
                 timestamp    = Core.Helpers.CommonHelper.DateTimeToUnixTimestamp(now),
                 data         = JsonConvert.SerializeObject(obj)
             };
             _nodeService.CreateNode(node);
         }
         _logService.CreateAsync(new Log {
             name = "Webhook calledback", message = ex.Message, details = JsonConvert.SerializeObject(ex.StackTrace)
         });
         throw ex;
     }
 }
Example #5
0
 public bool AssignToAgent(string business_id, string agent_id, string customer_id)
 {
     try
     {
         string userId = User.Claims.FirstOrDefault(c => c.Type == "user_id").Value;
         return(_customerService.AssignToAgent(business_id, customer_id, agent_id, userId));
     }
     catch (Exception ex)
     {
         _logService.Create(new Log
         {
             category = "Customers",
             link     = $"{Request.HttpContext.Request.Scheme}://{Request.HttpContext.Request.Host}{Request.HttpContext.Request.Path}{Request.HttpContext.Request.QueryString}",
             message  = ex.Message,
             name     = string.Format("Assign customer-{0} to agent-{1}", customer_id, agent_id)
         });
         throw ex;
     }
 }
Example #6
0
 public void SaveWebhookData(ZaloMessage data, bool real_time_update)
 {
     // Make sure this is a page subscription
     //if (data.@event == "sendmsg" || data.@event == "sendimagemsg" || data.@event == "sendlinkmsg" || data.@event== "2691206174905801178")
     //{
     try
     {
         BackgroundJob.Enqueue <ZaloConversationService>(x => x.SaveWebhookMessaging(data, null, real_time_update, null));
         //ZaloConversationService conversationService = new ZaloConversationService(_channelService, _threadService, _agentService, _customerService, _messageService, _appSettings, _logService);
         //conversationService.SaveWebhookMessaging(data, null, real_time_update, null).Wait();
     }
     catch (Exception ex)
     {
         // BackgroundJob.Enqueue<ZaloConversationService>(x => x.SaveWebhookMessaging(data, null, real_time_update, null));
         _logService.Create(new Log {
             name = "Webhook zalo calledback 2", message = ex.Message + JsonConvert.SerializeObject(ex.StackTrace).ToString(), details = JsonConvert.SerializeObject(data).ToString()
         });
         throw ex;
     }
     // }
 }
Example #7
0
        public IActionResult PostPositions([FromBody] List <Position> positionList)
        {
            string token = Helper.Utility.GetToken(Request);
            User   user  = _authenticationService.ValidateToken(token);

            if (user == null)
            {
                return(Unauthorized("Invalid token"));
            }

            return(Ok(_loggingService.Create(user.Id, positionList)));
        }
Example #8
0
        public async Task <dynamic> getCustomerFormPhone([FromBody] Phone obj)
        {
            try
            {
                _logService.Create(new Log {
                    name = "Hotline", message = "Hotline", details = JsonConvert.SerializeObject(obj)
                });

                return(await _hotlineService.SavePhoneHookData(obj));
            }
            catch (Exception ex) {
                return(new { status = false });
            }
        }
Example #9
0
        public async Task <AgentFeed> GetAgents(string business_id, [FromQuery] string access_token)
        {
            try
            {
                var resultData = await _agentService.GetAgents(business_id, 0, 50);

                return(new AgentFeed {
                    Data = resultData.Select(a => new AgentModel(a))
                });
            }
            catch (Exception ex)
            {
                _logService.Create(new Log
                {
                    message  = ex.Message,
                    category = "Agent",
                    link     = $"{Request.HttpContext.Request.Scheme}://{Request.HttpContext.Request.Host}{Request.HttpContext.Request.Path}{Request.HttpContext.Request.QueryString}",
                    details  = JsonConvert.SerializeObject(ex.StackTrace),
                    name     = string.Format("Get agents by business_id: {0}", business_id)
                });
            }
            return(null);
        }
Example #10
0
        public async System.Threading.Tasks.Task <ChannelFeed> GetChannels(string business_id, string access_token)
        {
            try
            {
                var resultData = await _channelService.GetChannels(business_id, 0, 50);

                return(new ChannelFeed {
                    Data = resultData
                });
            }
            catch (Exception ex)
            {
                _logService.Create(new Log
                {
                    message  = ex.Message,
                    category = "Agent",
                    link     = $"{Request.HttpContext.Request.Scheme}://{Request.HttpContext.Request.Host}{Request.HttpContext.Request.Path}{Request.HttpContext.Request.QueryString}",
                    details  = JsonConvert.SerializeObject(ex.StackTrace),
                    name     = string.Format("Get channels by business_id: {0}", business_id)
                });
            }
            return(null);
        }
Example #11
0
        public async Task <ApiResponse> GetShortcuts(string business_id, string access_token)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                var resultData = await _shortcutService.GetShortcuts(business_id, 0, 10);

                response.ok   = true;
                response.data = resultData;
            }
            catch (Exception ex)
            {
                _logService.Create(new Log
                {
                    message  = ex.Message,
                    category = "Shortcut",
                    link     = $"{Request.HttpContext.Request.Scheme}://{Request.HttpContext.Request.Host}{Request.HttpContext.Request.Path}{Request.HttpContext.Request.QueryString}",
                    details  = JsonConvert.SerializeObject(ex.StackTrace),
                    name     = string.Format("Get shortcuts by business_id: {0}", business_id)
                });
            }
            return(response);
        }
Example #12
0
        public async Task <FacebookComment> GetComment(string commentId, string pageAccessToken)
        {
            string url = string.Format(_facebookGraphApiUrl + "/{0}/?fields=object,message,attachment,created_time,permalink_url&access_token={1}", commentId, pageAccessToken);

            try
            {
                try
                {
                    var c = await Core.Helpers.WebHelper.HttpGetAsync <FacebookComment>(url);

                    return(c);
                }
                catch
                {
                    try
                    {
                        url = string.Format(_facebookGraphApiUrl + "/{0}/?fields=message,created_time,permalink_url&access_token={1}", commentId, pageAccessToken);
                        var c = await Core.Helpers.WebHelper.HttpGetAsync <FacebookComment>(url);

                        return(c);
                    }
                    catch {
                        url = string.Format(_facebookGraphApiUrl + "/{0}/?fields=message,created_time&access_token={1}", commentId, pageAccessToken);
                        var c = await Core.Helpers.WebHelper.HttpGetAsync <FacebookComment>(url);

                        return(c);
                    }
                }
            }
            catch (Exception ex)
            {
                _logService.Create(new Log
                {
                    message  = ex.Message,
                    category = "Facebook",
                    link     = url,
                    details  = JsonConvert.SerializeObject(ex.StackTrace),
                    name     = string.Format("Get comments: {0}", commentId)
                });
                return(null);
            }
        }
Example #13
0
        public bool SaveLastVisit([FromBody] LastVisit data)
        {
            try
            {
                Task <bool> .Factory.StartNew(() =>
                {
                    _threadService.AddLastVisit(data.business_id, data.thread_id, data.url, data.agent_id);
                    return(true);
                });

                return(true);
            }
            catch (Exception ex)
            {
                _logService.Create(new Log
                {
                    category = "Threads",
                    link     = $"{Request.HttpContext.Request.Scheme}://{Request.HttpContext.Request.Host}{Request.HttpContext.Request.Path}{Request.HttpContext.Request.QueryString}",
                    message  = ex.Message,
                    name     = string.Format("Add last_visit thread-{0} to agent-{1}", data.thread_id, data.agent_id)
                });
                throw ex;
            }
        }
Example #14
0
 public void WriteLog(LogLevel logLevel, string message)
 {
     _loggingService.Create(CreateLogging(logLevel, message));
 }