sync
This commit is contained in:
@ -0,0 +1,424 @@
|
||||
using FI.FIC.Contracts.DataObjects.BaseObject;
|
||||
using Foresight.Fleet.Services.Credentials;
|
||||
using Foresight.Fleet.Services.Credentials.JDAPI;
|
||||
using Foresight.Service.Credential.Common;
|
||||
using Foresight.Service.Credential.JDAPI;
|
||||
using Foresight.ServiceModel;
|
||||
using IronIntel.Contractor.Users;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
||||
namespace IronIntel.Contractor.Site.Credentials
|
||||
{
|
||||
public class CredentialEntryBasePage : ContractorBasePage
|
||||
{
|
||||
private const string AEMP = "AEMPFLEET";
|
||||
private const string JDAPI = "JDAPI";
|
||||
protected void ProcessRequest(string methodName)
|
||||
{
|
||||
if (methodName != null)
|
||||
{
|
||||
switch (methodName)
|
||||
{
|
||||
case "GetAEMPCredentials":
|
||||
GetAEMPCredentials();
|
||||
break;
|
||||
case "UpdateAEMPCredential":
|
||||
UpdateAEMPCredential();
|
||||
break;
|
||||
case "DeleteAEMPCredential":
|
||||
DeleteAEMPCredential();
|
||||
break;
|
||||
case "DeleteToken":
|
||||
DeleteToken();
|
||||
break;
|
||||
case "GetJDLinkTokenItems":
|
||||
GetJDLinkTokenItems();
|
||||
break;
|
||||
case "CreateJDLinkAuthUrl":
|
||||
CreateJDLinkAuthUrl();
|
||||
break;
|
||||
case "GetAPIDictionaries":
|
||||
GetAPIDictionaries();
|
||||
break;
|
||||
case "GetAPICredentialDefs":
|
||||
GetAPICredentialDefs();
|
||||
break;
|
||||
case "UpdateApiCredentialDefs":
|
||||
UpdateApiCredentialDefs();
|
||||
break;
|
||||
case "DeleteApiCredential":
|
||||
DeleteApiCredential();
|
||||
break;
|
||||
case "GetNotificationSubscriptions":
|
||||
GetNotificationSubscriptions();
|
||||
break;
|
||||
case "CreateJDSubPubAuthUrl":
|
||||
CreateJDSubPubAuthUrl();
|
||||
break;
|
||||
case "DeleteNotificationSubscription":
|
||||
DeleteNotificationSubscription();
|
||||
break;
|
||||
case "GetMyJDAPITokenItems":
|
||||
GetMyJDAPITokenItems();
|
||||
break;
|
||||
case "CreateMyJDAPIAuthUrl":
|
||||
CreateMyJDAPIAuthUrl();
|
||||
break;
|
||||
case "GetOrganizations":
|
||||
GetOrganizations();
|
||||
break;
|
||||
case "GetJDOrganizationUrl":
|
||||
GetJDOrganizationUrl();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Response.End();
|
||||
}
|
||||
|
||||
protected override bool AllowCurrentLoginSessionEnter()
|
||||
{
|
||||
var f = base.AllowCurrentLoginSessionEnter();
|
||||
if (!f)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// check whether you are admin.
|
||||
var session = GetCurrentLoginSession();
|
||||
if (session == null || session.User == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
var ui = UserManagement.GetUserByIID(session.User.UID);
|
||||
return ui != null && ui.UserType >= UserTypes.Admin;
|
||||
}
|
||||
|
||||
#region AEMP credential
|
||||
private void GetAEMPCredentials()
|
||||
{
|
||||
CredentialProvider crd = FleetServiceClientHelper.CreateClient<CredentialProvider>();
|
||||
AEMPInfo[] items = crd.GetAEMPCredentials(SystemParams.CompanyID);
|
||||
if (items == null)
|
||||
items = new AEMPInfo[0];
|
||||
|
||||
items = items.OrderBy((c) => c.UserName).ToArray();
|
||||
string json = JsonConvert.SerializeObject(items);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void UpdateAEMPCredential()
|
||||
{
|
||||
var content = Request.Form["ClientData"];
|
||||
content = HttpUtility.HtmlDecode(content);
|
||||
var aempinfo = JsonConvert.DeserializeObject<AEMPInfo>(content);
|
||||
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(aempinfo.ID))
|
||||
aempinfo.ID = Guid.NewGuid().ToString();
|
||||
|
||||
CredentialProvider crd = FleetServiceClientHelper.CreateClient<CredentialProvider>();
|
||||
crd.UpdateAEMPCredential(SystemParams.CompanyID, aempinfo);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Response.Write(JsonConvert.SerializeObject(ex.Message));
|
||||
return;
|
||||
}
|
||||
|
||||
Response.Write("\"OK\"");
|
||||
}
|
||||
|
||||
private void DeleteAEMPCredential()
|
||||
{
|
||||
var iid = Request.Form["ClientData"];
|
||||
Guid guid;
|
||||
if (!Guid.TryParse(iid, out guid))
|
||||
{
|
||||
throw new ArgumentException("Credential IID is not valid.");
|
||||
}
|
||||
CredentialProvider crd = FleetServiceClientHelper.CreateClient<CredentialProvider>();
|
||||
crd.DeleteAEMPCredential(SystemParams.CompanyID, iid);
|
||||
|
||||
Response.Write("\"OK\"");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region JDLink credential
|
||||
private void GetJDLinkTokenItems()
|
||||
{
|
||||
var user = GetCurrentLoginSession().User;
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
AuthTokenItem[] items = client.GetJDLinkTokenItems(SystemParams.CompanyID);
|
||||
List<AuthTokenInfo> ls = new List<AuthTokenInfo>();
|
||||
if (items != null && items.Length > 0)
|
||||
{
|
||||
foreach (AuthTokenItem item in items)
|
||||
{
|
||||
AuthTokenInfo ai = new AuthTokenInfo();
|
||||
Helper.CloneProperty(ai, item);
|
||||
ai.RequestTime = SystemParams.ConvertToUserTimeFromUtc(user, item.RequestTimeUtc);
|
||||
ls.Add(ai);
|
||||
}
|
||||
}
|
||||
string json = JsonConvert.SerializeObject(ls);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void CreateJDLinkAuthUrl()
|
||||
{
|
||||
string absuri = Request.Url.AbsoluteUri;
|
||||
string url = absuri.Substring(0, absuri.LastIndexOf('/'));
|
||||
string redirecturl = url + "/Credentials.aspx?isjdlink=true";
|
||||
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
string result = client.CreateJDLinkAuthUrl(SystemParams.CompanyID, redirecturl);
|
||||
|
||||
string json = JsonConvert.SerializeObject(result);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void DeleteToken()
|
||||
{
|
||||
var iid = Request.Form["ClientData"];
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
client.DeleteToken(SystemParams.CompanyID, iid, GetCurrentUser().IID, string.Empty);
|
||||
|
||||
Response.Write("\"OK\"");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region MyJohnDeere
|
||||
private void GetMyJDAPITokenItems()
|
||||
{
|
||||
var user = GetCurrentLoginSession().User;
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
AuthTokenItem[] items = client.GetMyJDAPITokenItems(SystemParams.CompanyID);
|
||||
List<AuthTokenInfo> ls = new List<AuthTokenInfo>();
|
||||
if (items != null && items.Length > 0)
|
||||
{
|
||||
foreach (AuthTokenItem item in items)
|
||||
{
|
||||
AuthTokenInfo ai = new AuthTokenInfo();
|
||||
Helper.CloneProperty(ai, item);
|
||||
ai.RequestTime = SystemParams.ConvertToUserTimeFromUtc(user, item.RequestTimeUtc);
|
||||
ls.Add(ai);
|
||||
}
|
||||
}
|
||||
|
||||
string json = JsonConvert.SerializeObject(ls);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void CreateMyJDAPIAuthUrl()
|
||||
{
|
||||
string absuri = Request.Url.AbsoluteUri;
|
||||
string url = absuri.Substring(0, absuri.LastIndexOf('/'));
|
||||
string redirecturl = url + "/Credentials.aspx?ismyjd=true";
|
||||
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
string result = client.CreateMyJDAPIAuthUrl(SystemParams.CompanyID, redirecturl);
|
||||
|
||||
string json = JsonConvert.SerializeObject(result);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region JDNotification credential
|
||||
|
||||
private void GetNotificationSubscriptions()
|
||||
{
|
||||
var user = GetCurrentLoginSession().User;
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
SubscriptionItem[] items = client.GetNotificationSubscriptions(SystemParams.CompanyID);
|
||||
List<SubscriptionInfo> ls = new List<SubscriptionInfo>();
|
||||
if (items != null && items.Length > 0)
|
||||
{
|
||||
foreach (SubscriptionItem item in items)
|
||||
{
|
||||
SubscriptionInfo ai = new SubscriptionInfo();
|
||||
Helper.CloneProperty(ai, item);
|
||||
ai.CreateTime = SystemParams.ConvertToUserTimeFromUtc(user, item.CreateTimeUtc);
|
||||
ls.Add(ai);
|
||||
}
|
||||
}
|
||||
string json = JsonConvert.SerializeObject(ls);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void CreateJDSubPubAuthUrl()
|
||||
{
|
||||
var name = Request.Form["ClientData"];
|
||||
string absuri = Request.Url.AbsoluteUri;
|
||||
string url = absuri.Substring(0, absuri.LastIndexOf('/'));
|
||||
string redirecturl = url + "/Credentials.aspx?isjdsub=true";
|
||||
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
string result = client.CreateJDSubPubAuthUrl(SystemParams.CompanyID, redirecturl, name);
|
||||
|
||||
string json = JsonConvert.SerializeObject(result);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void DeleteNotificationSubscription()
|
||||
{
|
||||
var iid = Request.Form["ClientData"];
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
client.DeleteNotificationSubscription(SystemParams.CompanyID, iid);
|
||||
|
||||
Response.Write("\"OK\"");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region API Credential
|
||||
|
||||
private void GetAPIDictionaries()
|
||||
{
|
||||
CredentialProvider crd = FleetServiceClientHelper.CreateClient<CredentialProvider>();
|
||||
APIDictionary[] items = crd.GetAPIDictionaries(SystemParams.CompanyID);
|
||||
items = items.Where(m => m.IsEnabled == true).ToArray();
|
||||
string json = JsonConvert.SerializeObject(items);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void GetAPICredentialDefs()
|
||||
{
|
||||
CredentialProvider crd = FleetServiceClientHelper.CreateClient<CredentialProvider>();
|
||||
APICredentialDef[] items = crd.GetAPICredentialDefs(SystemParams.CompanyID);
|
||||
string json = JsonConvert.SerializeObject(items);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void UpdateApiCredentialDefs()
|
||||
{
|
||||
var content = Request.Form["ClientData"];
|
||||
content = HttpUtility.HtmlDecode(content);
|
||||
var item = JsonConvert.DeserializeObject<APICredentialDef>(content);
|
||||
|
||||
try
|
||||
{
|
||||
CredentialProvider crd = FleetServiceClientHelper.CreateClient<CredentialProvider>();
|
||||
crd.UpdateApiCredentialDefs(SystemParams.CompanyID, item, GetCurrentUser().IID);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Response.Write(JsonConvert.SerializeObject(ex.Message));
|
||||
return;
|
||||
}
|
||||
|
||||
Response.Write("\"OK\"");
|
||||
}
|
||||
|
||||
private void DeleteApiCredential()
|
||||
{
|
||||
var id = Request.Form["ClientData"];
|
||||
CredentialProvider crd = FleetServiceClientHelper.CreateClient<CredentialProvider>();
|
||||
crd.DeleteApiCredential(SystemParams.CompanyID, Convert.ToInt32(id), GetCurrentUser().IID);
|
||||
|
||||
Response.Write("\"OK\"");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
private void GetOrganizations()
|
||||
{
|
||||
var iid = Request.Form["ClientData"];
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
JDOrganizationInfo[] items = client.GetOrganizations(SystemParams.CompanyID, iid);
|
||||
if (items == null)
|
||||
items = new JDOrganizationInfo[0];
|
||||
|
||||
string json = JsonConvert.SerializeObject(items);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private void GetJDOrganizationUrl()
|
||||
{
|
||||
var iid = Request.Form["ClientData"];
|
||||
JDAPICredentialProvider client = FleetServiceClientHelper.CreateClient<JDAPICredentialProvider>();
|
||||
string url = client.GetJDOrganizationUrl(SystemParams.CompanyID, iid);
|
||||
string json = JsonConvert.SerializeObject(url);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 用于传输的临时Credential类
|
||||
/// </summary>
|
||||
public class CredentialObj
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public string CredentialType { get; set; }
|
||||
public string Manufacture { get; set; }
|
||||
public string UrlKey { get; set; }
|
||||
public string UserName { get; set; }
|
||||
public string Password { get; set; }
|
||||
public bool Enabled { get; set; }
|
||||
public string OrgnizationID { get; set; }
|
||||
public string Notes { get; set; }
|
||||
}
|
||||
|
||||
public class AEMPSourceItem
|
||||
{
|
||||
public string ManufactureID { get; set; }
|
||||
public string ManufactureName { get; set; }
|
||||
public string FleetUrl { get; set; }
|
||||
public string AutoServiceClass { get; set; }
|
||||
}
|
||||
|
||||
public class JDCredentialObj
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public string UserName { get; set; }
|
||||
public string ConsumerKey { get; set; }
|
||||
public string AuthorityUrl { get; set; }
|
||||
public DateTime ExpirationDateUtc { get; set; }
|
||||
public string ExpirationDateUtcStr { get { return ExpirationDateUtc == DateTime.MinValue ? "" : ExpirationDateUtc.ToShortDateString(); } }
|
||||
}
|
||||
public class JDNotifySubItem
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public string UserName { get; set; }
|
||||
public string DisplayName { get; set; }
|
||||
public DateTime ExpireDate { get; set; }
|
||||
public string ExpireDateStr { get { return ExpireDate == DateTime.MinValue ? "" : ExpireDate.ToShortDateString(); } }
|
||||
}
|
||||
|
||||
public class AuthTokenInfo : AuthTokenItem
|
||||
{
|
||||
public DateTime RequestTime { get; set; }
|
||||
public string RequestTimeStr { get { return RequestTime == DateTime.MinValue ? "" : RequestTime.ToString(); } }
|
||||
}
|
||||
|
||||
public class SubscriptionInfo : SubscriptionItem
|
||||
{
|
||||
public DateTime CreateTime { get; set; }
|
||||
public string CreateTimeStr { get { return CreateTime == DateTime.MinValue ? "" : CreateTime.ToString(); } }
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
using Foresight.Fleet.Services.Customer;
|
||||
using Foresight.Fleet.Services.User;
|
||||
using IronIntel.Contractor.Users;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IronIntel.Contractor.Site.Credentials
|
||||
{
|
||||
public class CredentialsBasePage : ContractorBasePage
|
||||
{
|
||||
protected void ProcessRequest(string methodName)
|
||||
{
|
||||
object result = null;
|
||||
|
||||
if (methodName != null)
|
||||
{
|
||||
switch (methodName.ToUpper())
|
||||
{
|
||||
case "GETNAVS":
|
||||
result = GetNavigations();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
string json = JsonConvert.SerializeObject(result);
|
||||
Response.Write(json);
|
||||
Response.End();
|
||||
}
|
||||
private CredentialNavigateItem[] GetNavigations()
|
||||
{
|
||||
List<CredentialNavigateItem> list = GetNavigateItems();
|
||||
LicenseInfo license = SystemParams.GetLicense();
|
||||
if (license != null && license.Items.Count > 0)
|
||||
{
|
||||
var jdn = license.Items.FirstOrDefault(m => m.Key == "JohnDeereNotifications");
|
||||
if (jdn == null || !Helper.IsTrue(jdn.Value))
|
||||
{
|
||||
CredentialNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_jdnotification");
|
||||
list.Remove(item);
|
||||
}
|
||||
}
|
||||
return list.ToArray();
|
||||
}
|
||||
|
||||
|
||||
public static List<CredentialNavigateItem> GetNavigateItems()
|
||||
{
|
||||
List<CredentialNavigateItem> list = new List<CredentialNavigateItem>();
|
||||
|
||||
CredentialNavigateItem item1 = new CredentialNavigateItem();
|
||||
item1.ID = "nav_credential";
|
||||
item1.Title = "Credentials";
|
||||
item1.Url = "ManageCredential.aspx";
|
||||
item1.IconPath = "img/credential.png";
|
||||
list.Add(item1);
|
||||
|
||||
CredentialNavigateItem item2 = new CredentialNavigateItem();
|
||||
item2.ID = "nav_jdlink";
|
||||
item2.Title = "JD Link";
|
||||
item2.Url = "ManageJDLink.aspx";
|
||||
item2.IconPath = "img/jdlink.png";
|
||||
list.Add(item2);
|
||||
|
||||
//CredentialNavigateItem item3 = new CredentialNavigateItem();
|
||||
//item3.ID = "nav_jdnotification";
|
||||
//item3.Title = "JohnDeere Notifications";
|
||||
//item3.Url = "ManageJDNotifications.aspx";
|
||||
//item3.IconPath = "img/jdnotifications.png";
|
||||
//list.Add(item3);
|
||||
|
||||
CredentialNavigateItem item4 = new CredentialNavigateItem();
|
||||
item4.ID = "nav_apicredential";
|
||||
item4.Title = "API Credentials";
|
||||
item4.Url = "ManageAPICredential.aspx";
|
||||
item4.IconPath = "img/apicredential.png";
|
||||
list.Add(item4);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user