public ReportCustomerListModel GetCustomers(string business_id, [FromQuery] ReportDataFilter filter) { ReportCustomerListModel model = new ReportCustomerListModel(); model.data = _reportService.GetCustomers(business_id, filter).Result.ToList(); return(model); //{"last_page": 20.285714285714285, "data": [{"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Phan Nhung", "avatar": "avatars/yexir.png", "phone": "", "id": 39751, "messages": 1, "date_registred": 1485429405.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "\u0110o\u00e0n Nhi", "avatar": "avatars/yexir.png", "phone": "", "id": 39754, "messages": 1, "date_registred": 1485429978.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "B\u00ecnh Tr\u1ecbnh", "avatar": "avatars/yexir.png", "phone": "", "id": 39755, "messages": 2, "date_registred": 1485430236.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Ti\u1ebfn Ph\u1ea1m", "avatar": "avatars/yexir.png", "phone": "", "id": 39759, "messages": 2, "date_registred": 1485431838.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "H\u01b0ng C\u00f2ii", "avatar": "avatars/yexir.png", "phone": "", "id": 39764, "messages": 2, "date_registred": 1485433939.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Ha Nguyen", "avatar": "avatars/yexir.png", "phone": "", "id": 39791, "messages": 1, "date_registred": 1485438226.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "S\u1eefu Ca", "avatar": "avatars/yexir.png", "phone": "", "id": 39803, "messages": 1, "date_registred": 1485439879.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "\u0110inh Nghi\u1ec7p", "avatar": "avatars/yexir.png", "phone": "", "id": 39821, "messages": 2, "date_registred": 1485442806.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Ngocdue Pham", "avatar": "avatars/yexir.png", "phone": "", "id": 39835, "messages": 2, "date_registred": 1485444786.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Li\u1ec1u V\u00e2n", "avatar": "avatars/yexir.png", "phone": "", "id": 39881, "messages": 2, "date_registred": 1485450317.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "H\u00f9ng D\u01b0\u01a1ng", "avatar": "avatars/yexir.png", "phone": "", "id": 39886, "messages": 2, "date_registred": 1485450554.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Dung Do", "avatar": "avatars/yexir.png", "phone": "", "id": 39906, "messages": 2, "date_registred": 1485451665.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Nhi Phn", "avatar": "avatars/yexir.png", "phone": "", "id": 39966, "messages": 4, "date_registred": 1485456865.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Khuong Nguyen", "avatar": "avatars/yexir.png", "phone": "", "id": 39997, "messages": 2, "date_registred": 1485460859.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Th\u1ee7y Nguy\u1ec5n", "avatar": "avatars/yexir.png", "phone": "", "id": 40034, "messages": 1, "date_registred": 1485465236.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Lac LeGia", "avatar": "avatars/yexir.png", "phone": "", "id": 40039, "messages": 3, "date_registred": 1485465971.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Tra Hen", "avatar": "avatars/yexir.png", "phone": "", "id": 40059, "messages": 1, "date_registred": 1485468356.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Nguyen Dem", "avatar": "avatars/yexir.png", "phone": "", "id": 40085, "messages": 1, "date_registred": 1485472661.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Nguy\u1ec5n Hu\u1ec7", "avatar": "avatars/yexir.png", "phone": "", "id": 40086, "messages": 2, "date_registred": 1485472677.0, "city": null}, {"completed_tickets": 0, "address": null, "channel_id": 2161, "email": null, "pending_tickets": 0, "name": "Do Hieu Dovan Hieu", "avatar": "avatars/yexir.png", "phone": "", "id": 40096, "messages": 1, "date_registred": 1485473823.0, "city": null}]} //reports/customers?date=range&init=1483203600000&finish=1485968399999&customer=43264%2C44410%2C39751%2C39754%2C39755%2C39759%2C39764%2C39791%2C39803%2C39821&page=1 }
public ReportAgentListModel GetAgents(string business_id, [FromQuery] ReportDataFilter filter) { ReportAgentListModel model = new ReportAgentListModel { data = new List <ReportAgentDataLine>() }; IEnumerable <ReportAgentDataLine> list = _reportService.GetAgents(business_id, filter).Result; foreach (var item in list) { model.data.Add(item); } return(model); //{"last_page": 1.0952380952380953, "data": [{"last_login": 1488074399.0, "avg_first_response_time": 497, "id": 1664, "chats": 59, "first_name": "Human MM", "completed_orders": 0, "avg_response_time": 0, "avatar": "avatars/default/1.png"}, {"last_login": null, "avg_first_response_time": 0, "id": 1815, "chats": 0, "first_name": "Agent1 Bz", "completed_orders": 0, "avg_response_time": 0, "avatar": "avatars/default/9.png"}]} //reports/agents?date=range&init=1483203600000&finish=1485968399999&agent=1664%2C1815&page=1 }
public ReportTicketListModel GetTickets(string business_id, [FromQuery] ReportDataFilter filter) { ReportTicketListModel model = new ReportTicketListModel { data = new List <ReportTicketModel>() }; IEnumerable <ReportTicketModel> list = _reportService.GetTickets(business_id, filter).Result; foreach (var item in list) { model.data.Add(item); } return(model); //{"last_page": 9.666666666666666, "data": [{"status_display": "Attention", "customer_name": "Phan Nhung", "status": 1, "subcathegories": [], "customer_id": 39751, "samurais": [1664], "id": 29287, "channel_id": 2161, "created_at": 1485429407.0, "short_description": "#29287", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "\u0110o\u00e0n Nhi", "status": 0, "subcathegories": [], "customer_id": 39754, "samurais": [1664], "id": 29288, "channel_id": 2161, "created_at": 1485429979.0, "short_description": "#29288", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "B\u00ecnh Tr\u1ecbnh", "status": 0, "subcathegories": [], "customer_id": 39755, "samurais": [1664], "id": 29291, "channel_id": 2161, "created_at": 1485430237.0, "short_description": "#29291", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Ti\u1ebfn Ph\u1ea1m", "status": 0, "subcathegories": [], "customer_id": 39759, "samurais": [], "id": 29298, "channel_id": 2161, "created_at": 1485431840.0, "short_description": "#29298", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "H\u01b0ng C\u00f2ii", "status": 0, "subcathegories": [], "customer_id": 39764, "samurais": [1664], "id": 29303, "channel_id": 2161, "created_at": 1485433941.0, "short_description": "#29303", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Ha Nguyen", "status": 0, "subcathegories": [], "customer_id": 39791, "samurais": [1664], "id": 29334, "channel_id": 2161, "created_at": 1485438227.0, "short_description": "#29334", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "S\u1eefu Ca", "status": 0, "subcathegories": [], "customer_id": 39803, "samurais": [1664], "id": 29347, "channel_id": 2161, "created_at": 1485439880.0, "short_description": "#29347", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "\u0110inh Nghi\u1ec7p", "status": 0, "subcathegories": [], "customer_id": 39821, "samurais": [1664], "id": 29370, "channel_id": 2161, "created_at": 1485442807.0, "short_description": "#29370", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Ngocdue Pham", "status": 0, "subcathegories": [], "customer_id": 39835, "samurais": [1664], "id": 29390, "channel_id": 2161, "created_at": 1485444788.0, "short_description": "#29390", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Li\u1ec1u V\u00e2n", "status": 0, "subcathegories": [], "customer_id": 39881, "samurais": [1664], "id": 29451, "channel_id": 2161, "created_at": 1485450324.0, "short_description": "#29451", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "H\u00f9ng D\u01b0\u01a1ng", "status": 0, "subcathegories": [], "customer_id": 39886, "samurais": [1664], "id": 29456, "channel_id": 2161, "created_at": 1485450556.0, "short_description": "#29456", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Dung Do", "status": 0, "subcathegories": [], "customer_id": 39906, "samurais": [1664], "id": 29479, "channel_id": 2161, "created_at": 1485451667.0, "short_description": "#29479", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Nhi Phn", "status": 0, "subcathegories": [], "customer_id": 39966, "samurais": [1664], "id": 29549, "channel_id": 2161, "created_at": 1485456866.0, "short_description": "#29549", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Khuong Nguyen", "status": 0, "subcathegories": [], "customer_id": 39997, "samurais": [1664], "id": 29596, "channel_id": 2161, "created_at": 1485460861.0, "short_description": "#29596", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Th\u1ee7y Nguy\u1ec5n", "status": 0, "subcathegories": [], "customer_id": 40034, "samurais": [1664], "id": 29643, "channel_id": 2161, "created_at": 1485465237.0, "short_description": "#29643", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Lac LeGia", "status": 0, "subcathegories": [], "customer_id": 40039, "samurais": [1664], "id": 29652, "channel_id": 2161, "created_at": 1485465973.0, "short_description": "#29652", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Tra Hen", "status": 0, "subcathegories": [], "customer_id": 40059, "samurais": [1664], "id": 29680, "channel_id": 2161, "created_at": 1485468358.0, "short_description": "#29680", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Nguyen Dem", "status": 0, "subcathegories": [], "customer_id": 40085, "samurais": [1664], "id": 29708, "channel_id": 2161, "created_at": 1485472662.0, "short_description": "#29708", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Nguy\u1ec5n Hu\u1ec7", "status": 0, "subcathegories": [], "customer_id": 40086, "samurais": [1664], "id": 29709, "channel_id": 2161, "created_at": 1485472678.0, "short_description": "#29709", "customer_avatar": "avatars/yexir.png"}, {"status_display": "Pending", "customer_name": "Do Hieu Dovan Hieu", "status": 0, "subcathegories": [], "customer_id": 40096, "samurais": [1664], "id": 29719, "channel_id": 2161, "created_at": 1485473824.0, "short_description": "#29719", "customer_avatar": "avatars/yexir.png"}]} //reports/orders?date=range&init=1483203600000&finish=1485968399999&period=week&page=1 }
public ReportChartDataModel GetCustomersBars(string business_id, [FromQuery] ReportDataFilter filter) { ReportChartDataModel model = new ReportChartDataModel { lines = new List <ChartDataLine>() }; IEnumerable <ReportChatDataLine> list = _reportService.GetCustomerChatChartData(business_id, filter).Result; var total = 0; var data = new int[] { list.Select(t => t.customers).Sum(), list.Select(t => t.inboxes).Sum(), list.Select(t => t.comments).Sum(), list.Select(t => t.inbox_replies).Sum(), list.Select(t => t.comment_replies).Sum() }; model.lines.Add(new ChartDataLine { data = data }); model.total = total; return(model); //{"lines": [{"name": "Phan Nhung", "data": [1, 1, 0]}, {"name": "\u0110o\u00e0n Nhi", "data": [1, 1, 0]}, {"name": "B\u00ecnh Tr\u1ecbnh", "data": [2, 1, 0]}, {"name": "Ti\u1ebfn Ph\u1ea1m", "data": [2, 1, 0]}, {"name": "H\u01b0ng C\u00f2ii", "data": [2, 1, 0]}, {"name": "Ha Nguyen", "data": [1, 1, 0]}, {"name": "S\u1eefu Ca", "data": [1, 1, 0]}, {"name": "\u0110inh Nghi\u1ec7p", "data": [2, 1, 0]}, {"name": "Baza Vietnam", "data": [0, 0, 0]}, {"name": "Qu\u1ef3nh Nh\u01b0", "data": [0, 0, 0]}]} //reports/customers_bar?date=range&init=1483203600000&finish=1485968399999&customer=43264%2C44410%2C39751%2C39754%2C39755%2C39759%2C39764%2C39791%2C39803%2C39821&page=1 }
public ReportChartDataModel GetTicketsBar(string business_id, [FromQuery] ReportDataFilter filter) { ReportChartDataModel model = new ReportChartDataModel { lines = new List <ChartDataLine>() }; IEnumerable <ReportTicketDataLine> list = _reportService.GetTicketChartData(business_id, filter).Result; var total = 0; var data = new int[] { list.Select(t => t.tickets).Sum(), list.Select(t => t.tickets - (t.completed_tickets + t.pending_tickets + t.attention_tickets)).Sum(), list.Select(t => t.pending_tickets).Sum(), list.Select(t => t.attention_tickets).Sum() }; model.lines.Add(new ChartDataLine { data = data }); model.total = total; return(model); //{"lines": [{"name": "2016-12-26", "data": [0, 0, 0]}, {"name": "2017-01-02", "data": [0, 0, 0]}, {"name": "2017-01-09", "data": [0, 0, 0]}, {"name": "2017-01-16", "data": [0, 0, 0]}, {"name": "2017-01-23", "data": [148, 0, 0]}, {"name": "2017-01-30", "data": [17, 0, 0]}]} //reports/orders_line?date=range&init=1483203600000&finish=1485968399999&period=week&page=1 }
public ReportChartDataModel GetAgentChartData(string business_id, [FromQuery] ReportDataFilter filter) { ReportChartDataModel model = new ReportChartDataModel { lines = new List <ChartDataLine>() }; IEnumerable <ReportAgentDataLine> list = _reportService.GetAgentChartData(business_id, filter).Result; foreach (var item in list) { //var data = string.Format("[{0}, {1}, {2}, {3}]", item.customers, item.conversations, item.messages, item.tickets); var data = new int[] { item.customers, item.conversations, item.messages, item.tickets }; model.lines.Add(new ChartDataLine { id = item.id, name = item.name, data = data }); model.total++; } return(model); //db_agents?date=range&init=1483203600000&finish=1488034801447&agent=1664%2C1815&period=month }
public ReportChartDataModel GetAgentsBars(string business_id, [FromQuery] ReportDataFilter filter) { filter.limit = 50; ReportChartDataModel model = new ReportChartDataModel { lines = new List <ChartDataLine>() }; IEnumerable <ReportAgentDataLine> list = _reportService.GetAgentChartData(business_id, filter).Result; foreach (var item in list) { var data = new int[] { item.customers, item.conversations, item.messages, item.tickets }; model.lines.Add(new ChartDataLine { id = item.id, name = item.name, data = data }); model.total++; } return(model); //{"lines": [{"name": "Human MM", "data": [497, 0, 0, 59]}, {"name": "Agent1 Bz", "data": [0, 0, 0, 0]}]} //reports/agents_bar?date=range&init=1483203600000&finish=1485968399999&agent=1664%2C1815&page=1 }
public ReportChartDataModel GetFirstResponseChartData(string business_id, [FromQuery] ReportDataFilter filter) { ReportChartDataModel model = new ReportChartDataModel { lines = new List <ChartDataLine>() }; IEnumerable <ReportResponseModel> list = _reportService.GetFirstResponseChartData(business_id, filter).Result; foreach (var item in list) { var data = string.Format("[{0}]", string.Join(",", new int[item.first_response_time])); model.lines.Add(new ChartDataLine { id = item.id, name = item.name, data = data }); } return(model); //{"total": 0, "lines": [{"name": "2016/12", "data": [0] }, {"name": "2017/1", "data": [497]}, {"name": "2017/2", "data": [23]}]} //reports/db_first_response?date=range&init=1483203600000&finish=1488038268796&samurai=1664%2C1815&period=month }
public ReportChartDataModel GetTicketsLine(string business_id, [FromQuery] ReportDataFilter filter) { ReportChartDataModel model = new ReportChartDataModel { lines = new List <ChartDataLine>() }; IEnumerable <ReportTicketDataLine> list = _reportService.GetTicketChartData(business_id, filter).Result; var total = 0; foreach (var item in list) { var data = new int[] { item.tickets, item.completed_tickets, item.tickets - (item.completed_tickets + item.pending_tickets + item.attention_tickets), item.pending_tickets, item.attention_tickets }; model.lines.Add(new ChartDataLine { name = item.name, data = data }); total += item.tickets; } model.total = total; return(model); //{"lines": [{"name": "2016-12-26", "data": [0, 0, 0]}, {"name": "2017-01-02", "data": [0, 0, 0]}, {"name": "2017-01-09", "data": [0, 0, 0]}, {"name": "2017-01-16", "data": [0, 0, 0]}, {"name": "2017-01-23", "data": [148, 0, 0]}, {"name": "2017-01-30", "data": [17, 0, 0]}]} //reports/orders_line?date=range&init=1483203600000&finish=1485968399999&period=week&page=1 }
public ReportChartDataModel GetAgentMessageChartData(string business_id, [FromQuery] ReportDataFilter filter) { ReportChartDataModel model = new ReportChartDataModel { lines = new List <ChartDataLine>() }; IEnumerable <ReportChatDataLine> list = _reportService.GetAgentChatChartData(business_id, filter).Result; var total = 0; foreach (var item in list) { var data = new int[] { item.inboxes, item.comments }; total += item.inboxes + item.comments; model.lines.Add(new ChartDataLine { name = item.name, data = data }); } model.total = total; return(model); // { "total": 408, "lines": [{"name": "2016/12", "data": [0] }, {"name": "2017/1", "data": [182]}, {"name": "2017/2", "data": [226]}]} }
public ReportChartDataModel GetTicketChartData(string business_id, [FromQuery] ReportDataFilter filter) { ReportChartDataModel model = new ReportChartDataModel { lines = new List <ChartDataLine>() }; IEnumerable <ReportTicketDataLine> list = _reportService.GetTicketChartData(business_id, filter).Result; var total = 0; foreach (var item in list) { var data = new int[] { item.tickets }; model.lines.Add(new ChartDataLine { id = item.id, name = item.name, data = data }); total += item.tickets; } model.total = total; return(model); //{ "total": 408, "lines": [{"name": "2016/12", "data": [0]}, {"name": "2017/1", "data": [182]}, {"name": "2017/2", "data": [226]}]} //reports/db_ticket_opened?date=range&init=1483203600000&finish=1488038268796&samurai=1664%2C1815&period=month }
public async Task <IEnumerable <ReportChatDataLine> > GetAgentChatChartData(string business_id, ReportDataFilter filter) { Paging page = new Paging { Limit = 50, Previous = (filter.init_utc > 99999999999 ? filter.init_utc / 1000 : filter.init_utc).ToString(), Next = (filter.finish_utc > 99999999999 ? filter.finish_utc / 1000 : filter.finish_utc).ToString() }; IEnumerable <ReportChatDataLine> list = await _reportRepository.GetAgentChatChartData(business_id, page); if (list != null && list.Count() > 0) { switch (filter.period) { case "week": var first = list.Count() > 0 ? list.First().date : DateTime.MinValue; list = list.GroupBy(a => (a.date - first).TotalDays / 7).Select(g => new ReportChatDataLine { name = g.First().date.ToString("dd/MM"), customers = g.Select(b => b.customers).Sum(), conversations = g.Select(b => b.conversations).Sum(), comments = g.Select(b => b.comments).Sum(), inboxes = g.Select(b => b.inboxes).Sum() }).ToList(); break; case "month": list = list.GroupBy(a => a.date.Month).Select(g => new ReportChatDataLine { name = g.First().date.ToString("MM/yy"), customers = g.Select(b => b.customers).Sum(), conversations = g.Select(b => b.conversations).Sum(), comments = g.Select(b => b.comments).Sum(), inboxes = g.Select(b => b.inboxes).Sum() }).ToList(); break; default: foreach (var item in list) { item.name = item.date.ToString("dd/MM"); } break; } } return(list); }
public async Task <IEnumerable <ReportTicketModel> > GetTickets(string business_id, ReportDataFilter filter) { Paging page = new Paging { Limit = filter.limit, Previous = Core.Helpers.CommonHelper.UnixTimestampToDateTime(filter.init > 99999999999 ? filter.init / 1000 : filter.init).ToString(), Next = filter.finish > 99999999999 ? (filter.finish / 1000).ToString() : filter.finish.ToString() }; List <ReportTicketModel> list = new List <ReportTicketModel>(); foreach (var item in await _ticketService.GetTickets(business_id, page)) { list.Add(new ReportTicketModel { id = item.id, customer_name = item.customer_name, customer_avatar = item.customer_avatar, customer_id = item.customer_id, channel_id = item.channel_id, created_at = item.timestamp, status = item.status, status_display = item.getStatusName(item.status), short_description = item.short_description, tags = string.IsNullOrWhiteSpace(item.tags) ? new string[] { } : item.tags.Split(','), agents = new string[] { item.sender_id } }); } return(list); }
public async Task <IEnumerable <ReportAgentDataLine> > GetAgents(string business_id, ReportDataFilter filter) { Paging page = new Paging { Limit = 100, Previous = (filter.init > 99999999999 ? filter.init / 1000 : filter.init).ToString(), Next = (filter.finish > 99999999999 ? filter.finish / 1000 : filter.finish).ToString() }; IEnumerable <ReportAgentDataLine> list = await _reportRepository.GetAgentChartData(business_id, page); var agents = (await _agentService.GetAgents(business_id, 0, 100)).Where(a => !a.locked).ToDictionary(a => a.id, b => b); foreach (var item in list) { if (string.IsNullOrWhiteSpace(item.name) && agents.ContainsKey(item.id)) { item.name = agents[item.id].first_name + ' ' + agents[item.id].last_name; } item.last_acted = agents[item.id].last_acted_time == null ? 0 : Core.Helpers.CommonHelper.DateTimeToUnixTimestamp(agents[item.id].last_acted_time); item.last_login = agents[item.id].last_loggedin_time == null ? 0 : Core.Helpers.CommonHelper.DateTimeToUnixTimestamp(agents[item.id].last_loggedin_time); item.avatar = agents[item.id].avatar; } return(list); }
public async Task <IEnumerable <ReportAgentDataLine> > GetAgentChartData(string business_id, ReportDataFilter filter) { Paging page = new Paging { Limit = filter.limit, Previous = (filter.init_utc > 99999999999 ? filter.init_utc / 1000 : filter.init_utc).ToString(), Next = (filter.finish_utc > 99999999999 ? filter.finish_utc / 1000 : filter.finish_utc).ToString() }; IEnumerable <ReportAgentDataLine> list = await _reportRepository.GetAgentChartData(business_id, page); var agents = (await _agentService.GetAgents(business_id, 0, 100)).Where(a => !a.locked).ToDictionary(a => a.id, b => b.first_name + ' ' + b.last_name); foreach (var item in list) { if (string.IsNullOrWhiteSpace(item.name) && agents.ContainsKey(item.id)) { item.name = agents[item.id]; } } return(list); }
public async Task <IEnumerable <ReportTicketDataLine> > GetTicketChartData(string business_id, ReportDataFilter filter) { //Paging page = new Paging { Limit = filter.limit, Previous = Core.Helpers.CommonHelper.UnixTimestampToDateTime(filter.init_utc > 99999999999 ? filter.init_utc / 1000 : filter.init_utc).ToString(), Next = Core.Helpers.CommonHelper.UnixTimestampToDateTime(filter.finish_utc > 99999999999 ? filter.finish_utc / 1000 : filter.finish_utc).ToString() }; Paging page = new Paging { Limit = filter.limit, Previous = (filter.init_utc > 99999999999 ? filter.init_utc / 1000 : filter.init_utc).ToString(), Next = (filter.finish_utc > 99999999999 ? filter.finish_utc / 1000 : filter.finish_utc).ToString() }; IEnumerable <ReportTicketDataLine> list = await _reportRepository.GetTicketChartData(business_id, page); if (list != null && list.Count() > 0) { switch (filter.period) { case "week": var first = list.Count() > 0 ? list.First().date : DateTime.MinValue; list = list.GroupBy(a => (a.date - first).TotalDays / 7).Select(g => new ReportTicketDataLine { name = g.First().date.ToString("dd/MM"), completed_tickets = g.Select(b => b.completed_tickets).Sum(), attention_tickets = g.Select(b => b.attention_tickets).Sum(), pending_tickets = g.Select(b => b.pending_tickets).Sum(), tickets = g.Select(b => b.tickets).Sum() }).ToList(); break; case "month": list = list.GroupBy(a => a.date.Month).Select(g => new ReportTicketDataLine { name = g.First().date.ToString("MM/yy"), completed_tickets = g.Select(b => b.completed_tickets).Sum(), attention_tickets = g.Select(b => b.attention_tickets).Sum(), pending_tickets = g.Select(b => b.pending_tickets).Sum(), tickets = g.Select(b => b.tickets).Sum() }).ToList(); break; default: foreach (var item in list) { item.name = item.date.ToString("dd/MM"); } break; } } return(list); }
public async Task <IEnumerable <ReportMessageModel> > GetMessageChartData(string business_id, ReportDataFilter filter) { List <ReportMessageModel> list = new List <ReportMessageModel>(); return(list); }
public async Task <IEnumerable <ReportCustomerModel> > GetCustomers(string business_id, ReportDataFilter filter) { Paging page = new Paging { Limit = filter.limit, Previous = (filter.init > 99999999999 ? filter.init / 1000 : filter.init).ToString(), Next = (filter.finish > 99999999999 ? filter.finish / 1000 : filter.finish).ToString() }; List <ReportCustomerModel> list = new List <ReportCustomerModel>(); foreach (var item in await _customerService.SearchCustomers(business_id, "", "", "", "", "", page)) { list.Add(new ReportCustomerModel { id = item.id, address = item.address, avatar = item.avatar, channel_id = item.channel_id, city = item.city, email = item.email, name = item.name, phone = item.phone, date_registered = item.timestamp }); } return(list); }