using Api.SignToken;
using Microsoft.Extensions.Logging;
using Pivotal.Discovery.Client;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace Api.SignToken
{
///
/// 配送物品计划
///
public class DistributionPlanService : IDistributionPlanService
{
DiscoveryHttpClientHandler _handler;
ILogger _logger;
///
/// URL
///
private const string URL = "http://distributionapi/api/";
public DistributionPlanService(IDiscoveryClient client, ILoggerFactory logFactory)
{
_handler = new DiscoveryHttpClientHandler(client, logFactory.CreateLogger());
_logger = logFactory.CreateLogger();
}
private HttpClient GetClient()
{
var client = new HttpClient(_handler, false);
return client;
}
///
/// 添加计划任务 - 来源 HangfireDistributionPlanController
///
///
///
public async Task AddDistriWorkOrderPlanAsync(string planid)
{
var client = GetClient();
HttpContent postContent = new FormUrlEncodedContent(new Dictionary()
{
{"planid", planid}
});
var response = await client.PostAsync(URL + "distriworkorderplan/addhangfire", postContent);
return await response.Content.ReadAsStringAsync();
}
///
/// 自动定时计划 - 自动分配
///
///
///
public async Task SaveAutoAssignAsync(int wotype)
{
var client = GetClient();
HttpContent postContent = new FormUrlEncodedContent(new Dictionary()
{
{"wotype", wotype.ToString()},
});
var response = await client.PostAsync(URL + "distriworkorderplan/saveautoassignhangfire", postContent);
return await response.Content.ReadAsStringAsync();
}
///
/// 超时系统评价工单
/// DistributionApi -> DistriWorkOrderController
///
///
///
///
///
public async Task TimeOutEvaluateAsync(int score = 5, string createusername = "系统", int channel = 5)
{
var client = GetClient();
HttpContent postContent = new FormUrlEncodedContent(new Dictionary()
{
{"score", score.ToString()},
{"createusername", createusername},
{"channel", channel.ToString()}
});
var response = await client.PostAsync(URL + "distriworkorder/distritimeoutevaluate", postContent);
return await response.Content.ReadAsStringAsync();
}
///
/// 获取计划定时事件详情
/// DistributionApi -> DistriWorkOrderPlanController
///
///
///
///
///
public async Task GetHangfirePlanInfo(string id)
{
var client = GetClient();
HttpContent postContent = new FormUrlEncodedContent(new Dictionary()
{
{"id", id}
});
var response = await client.PostAsync(URL + "hangfireplantimeing/gethangfireplaninfo", postContent);
return await response.Content.ReadAsStringAsync();
}
}
}