This commit is contained in:
2023-04-28 12:21:24 +08:00
parent 156d145a48
commit 88e0a25ecd
162 changed files with 26324 additions and 7519 deletions

View File

@ -2,12 +2,10 @@
using Foresight.Fleet.Services.AssetHealth;
using Foresight.Fleet.Services.JobSite;
using Foresight.Fleet.Services.SystemOption;
using IronIntel.Contractor.JobSites;
using IronIntel.Contractor.Maintenance;
using IronIntel.Contractor.MapView;
using IronIntel.Contractor.Security;
using IronIntel.Contractor.Users;
using IronIntel.Services.Customers;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@ -42,12 +40,6 @@ namespace IronIntel.Contractor.Site.Security
case "DeleteCurfew":
result = DeleteCurfew();
break;
case "GetSelectedMachines":
result = GetSelectedMachines();
break;
case "SaveCurfewMachines":
result = SaveCurfewMachines();
break;
case "GetSelectedAssets":
result = GetSelectedAssets();
break;
@ -66,9 +58,6 @@ namespace IronIntel.Contractor.Site.Security
case "SaveCurfewJobsites":
result = SaveCurfewJobsites();
break;
case "GetMachineList":
result = GetMachineList();
break;
case "GetCurfewMovementTolerance":
result = GetCurfewMovementTolerance();
break;
@ -101,16 +90,10 @@ namespace IronIntel.Contractor.Site.Security
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
var searchtext = HttpUtility.HtmlDecode(clientdata[1]);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
items = CurfewManagement.GetCurfews(session.SessionID, searchtext, contractordb);
items = CreateClient<CurfewClient>(contractorid).GetCurfews(contractorid, searchtext);
}
else
{
@ -133,16 +116,10 @@ namespace IronIntel.Contractor.Site.Security
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
return CurfewManagement.GetCurfewInfo(curfewid, contractordb);
return CreateClient<CurfewClient>(contractorid).GetCurfewInfo(contractorid, curfewid);
}
else
return new CurfewInfo();
@ -164,23 +141,14 @@ namespace IronIntel.Contractor.Site.Security
var data = HttpUtility.HtmlDecode(clientdata[1]);
var ci = JsonConvert.DeserializeObject<CurfewInfo>(data);
if (string.IsNullOrWhiteSpace(ci.CurfewID))
{
ci.CurfewID = Guid.NewGuid().ToString();
}
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
CurfewManagement.SaveCurfew(ci, GetCurrentLoginSession().User.UID, contractordb);
return new string[] { ci.CurfewID, "OK" };
ci.Id = CreateClient<CurfewClient>(contractorid).SaveCurfew(contractorid, ci);
return new string[] { ci.Id, "OK" };
}
else
{
@ -224,74 +192,10 @@ namespace IronIntel.Contractor.Site.Security
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
CurfewManagement.DeleteCurfew(curfewid, contractordb);
return "OK";
}
else
{
return "Failed";
}
}
catch (Exception ex)
{
return ex.Message;
}
}
private MaintenanceMachineInfo[] GetSelectedMachines()
{
var clientdata = Request.Form["ClientData"].Split((char)170);
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
var machines = CurfewManagement.GetCurfewMachinesByID(curfewid, contractordb);
return machines.OrderBy(m => m.VIN).ToArray();
}
private string SaveCurfewMachines()
{
try
{
if (GetCurrentLoginSession() != null)
{
var clientdata = Request.Form["ClientData"].Split((char)170);
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
var machineids = HttpUtility.HtmlDecode(clientdata[2]);
if (string.IsNullOrWhiteSpace(contractorid))
contractorid = SystemParams.CompanyID;
string[] ids = JsonConvert.DeserializeObject<string[]>(machineids);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
CurfewManagement.SaveCurfewMachines(curfewid, contractorid, ids, contractordb);
CreateClient<CurfewClient>(contractorid).DeleteCurfew(contractorid, curfewid);
return "OK";
}
@ -393,32 +297,6 @@ namespace IronIntel.Contractor.Site.Security
}
}
private MaintenanceMachineInfo[] GetMachineList()
{
var session = GetCurrentLoginSession();
var clientdata = Request.Form["ClientData"].Split((char)170);
string contractorid = HttpUtility.HtmlDecode(clientdata[0]);
string type = HttpUtility.HtmlDecode(clientdata[1]);
string searchtxt = HttpUtility.HtmlDecode(clientdata[2]);
int typeid = 0;
int.TryParse(type, out typeid);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
var machines = MaintenanceManagement.GetMaintenanceMachines(session.SessionID, typeid, searchtxt, session.User.UID, contractorid)
.OrderBy(m => m.VIN)
.ToArray();
return machines;
}
private object GetJobsiteList()
{
@ -431,14 +309,8 @@ namespace IronIntel.Contractor.Site.Security
string contractorid = HttpUtility.HtmlDecode(clientdata[0]);
string searchtxt = HttpUtility.HtmlDecode(clientdata[1]);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
var jss = CreateClient<JobSiteProvider>(contractorid).GetJobSiteItems(contractorid, "", false);
List<JobSiteViewItem> list = new List<JobSiteViewItem>();
@ -474,16 +346,19 @@ namespace IronIntel.Contractor.Site.Security
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
JobSiteItem[] jss = CreateClient<CurfewClient>(contractorid).GetJobSitesAssignedToCurfew(contractorid, curfewid);
List<JobSiteViewItem> list = new List<JobSiteViewItem>();
foreach (var js in jss)
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
JobSiteViewItem item = new JobSiteViewItem();
item.ID = js.ID;
item.Name = js.Name;
items = CurfewManagement.GetCurfewJobsitesByID(curfewid, contractordb);
list.Add(item);
}
items = list.ToArray();
}
else
{
@ -507,21 +382,16 @@ namespace IronIntel.Contractor.Site.Security
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
var curfewid = HttpUtility.HtmlDecode(clientdata[1]);
var jobsiteids = HttpUtility.HtmlDecode(clientdata[2]);
if (string.IsNullOrWhiteSpace(contractorid))
contractorid = SystemParams.CompanyID;
string[] ids = JsonConvert.DeserializeObject<string[]>(jobsiteids);
long[] ids = JsonConvert.DeserializeObject<long[]>(jobsiteids);
FISqlConnection contractordb = null;
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
else
{
string connetionstring = SystemParams.GetDbStringByCompany(contractorid);
contractordb = new FISqlConnection(connetionstring);
}
CurfewManagement.SaveCurfewJobsites(curfewid, contractorid, ids, contractordb);
CreateClient<CurfewClient>(contractorid).AssignJobSitesToCurfew(contractorid, curfewid, ids);
return "OK";
}

View File

@ -1,76 +0,0 @@
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.Security
{
public class DataTablePermissionBasePage : ContractorBasePage
{
protected void ProcessRequest(string methodName)
{
object result = null;
try
{
if (methodName != null)
{
switch (methodName.ToUpper())
{
case "GETUSERS":
result = GetUsers();
break;
case "GETUSERGROUPS":
result = GetUserGroups();
break;
}
}
}
catch (Exception ex)
{
result = ex.Message;
SystemParams.WriteLog("Error", "UserGroupBasePage.ProcessRequest", ex.Message, ex.ToString());
}
string json = JsonConvert.SerializeObject(result);
Response.Write(json);
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;
}
protected override bool ThrowIfNotAllowed { get { return true; } }
private UserInfo[] GetUsers()
{
var users = UserManagement.GetUnmanagementUsers().OrderBy(u => u.DisplayName).ToArray();
return users;
}
private UserGroupInfo[] GetUserGroups()
{
var groups = UserManagement.GetGroups();
return groups;
}
}
}

View File

@ -1,651 +0,0 @@
using FI.FIC.Contracts.DataObjects.BLObject;
using FI.FIC.Models;
using IronIntel.Contractor.Users;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
namespace IronIntel.Contractor.Site.Security
{
public class FilterBasePage : ContractorBasePage
{
private const string sqlIn = "In";
private const string isnull = "Is Null";
private const string isnotnull = "Is Not Null";
private const string defaultLanageCode = "en-us";
protected void ProcessRequest(string methodName)
{
object result = null;
try
{
if (methodName != null)
{
switch (methodName.ToUpper())
{
case "GETFILTEROBJECT":
result = GetFilterObject();
break;
case "SAVEFILTER":
result = SaveFilter();
break;
case "GETDATASOURCE":
result = GetDataSource();
break;
case "GETTABLEFILTERS":
result = GetTableFilters();
break;
}
}
}
catch (Exception ex)
{
result = ex.Message;
SystemParams.WriteLog("Error", "FilterBasePage.ProcessRequest", ex.Message, ex.ToString());
}
string json = JsonConvert.SerializeObject(result);
Response.Write(json);
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;
}
protected override bool ThrowIfNotAllowed { get { return true; } }
private FilterObject GetFilterObject()
{
var p = Request.Form["ClientData"];
p = HttpUtility.HtmlDecode(p);
int index = p.IndexOf(";");
string iid = p.Substring(0, index);
string type = p.Substring(index + 1);//1为Group 2为User
GlobalFilterAuthorize[] globalFilters = null;
List<DataTableInfo> tableList = null;
TableFilterAuthorize[] tableFilters = null;
List<FI.FIC.Contracts.DataObjects.BaseObject.Plugin> pluginList = PluginManager.GetPlugin();
if (type == "1")
{
globalFilters = GlobalFilterManager.GetGlobalFilterAuthorizeForGroup(iid);
tableList = DataTableManager.GetHaveTableFilterDataTableListForUserGroup(iid, defaultLanageCode);
if (tableList != null && tableList.Count > 0)
{
tableFilters = GlobalFilterManager.GetTableFilterAuthorizeForGroup(iid, tableList[0].IID);
}
}
else if (type == "2")
{
globalFilters = GlobalFilterManager.GetGlobalFilterAuthorizeForUser(iid);
tableList = DataTableManager.GetHaveTableFilterDataTableList(iid, defaultLanageCode);
if (tableList != null && tableList.Count > 0)
{
tableFilters = GlobalFilterManager.GetTableFilterAuthorizeForUser(iid, tableList[0].IID);
}
}
FilterObject filterObj = new FilterObject();
if (globalFilters != null)
{
List<Filter> gfs = new List<Filter>();
foreach (var item in globalFilters)
{
Filter gf = new Filter();
gf.FilterName = item.FilterName;
gf.FilterCondition = item.FilterCondition ?? " ";
gf.FilterDataType = (int)item.FilterDataType;
gf.FilterType = (int)item.FilterType;
if (gf.FilterType == 0)
gf.FilterTypeString = "Single Value";
else
gf.FilterTypeString = getPluginName(item.PluginID, pluginList);
gf.FilterValue = item.FilterValue;
gf.IID = item.IID;
gf.PluginID = item.PluginID;
gfs.Add(gf);
}
filterObj.GlobalFilters = gfs.ToArray();
}
if (tableList != null)
{
List<KeyValuePair<string, string>> dts = new List<KeyValuePair<string, string>>();
foreach (var item in tableList)
{
KeyValuePair<string, string> kv = new KeyValuePair<string, string>(item.IID, item.DataTableName);
dts.Add(kv);
}
filterObj.DataTableList = dts.ToArray();
}
if (tableFilters != null)
{
List<Filter> tfs = new List<Filter>();
foreach (var item in tableFilters)
{
Filter tf = new Filter();
tf.FieldName = item.FieldName;
tf.FilterName = item.FilterName;
tf.FilterCondition = item.FilterCondition ?? " ";
tf.FilterDataType = (int)item.FilterDataType;
tf.FilterType = (int)item.FilterType;
if (tf.FilterType == 0)
tf.FilterTypeString = "Single Value";
else
tf.FilterTypeString = getPluginName(item.PluginID, pluginList);
tf.FilterValue = item.FilterValue;
tf.IID = item.IID;
tf.PluginID = item.PluginID;
tfs.Add(tf);
}
filterObj.FirstTableFilters = tfs.ToArray();
}
return filterObj;
}
private string getPluginName(string iid, List<FI.FIC.Contracts.DataObjects.BaseObject.Plugin> pluginList)
{
string result = "";
if (pluginList != null)
{
var plugin = pluginList.FirstOrDefault((p) => p.IID.Equals(iid, StringComparison.OrdinalIgnoreCase));
if (plugin != null)
result = plugin.PluginName;
}
return result;
}
private object SaveFilter()
{
if (GetCurrentLoginSession() != null)
{
var s = Request.Form["ClientData"];
s = HttpUtility.HtmlDecode(s);
SaveFilterObject item = JsonConvert.DeserializeObject<SaveFilterObject>(s);
if (item.Type == 2)
{
var user = UserManagement.GetUserByIID(item.UserIID);
if (user.UserType == UserTypes.Admin)//Admin用户不需要修改
return "\"OK\"";
}
string error = "";
if (!Validate(ref error, item))
{
return new ErrorObject() { ErrorCode = 1, ErrorMessage = error };
}
DoSaveFilter(item);
return "\"OK\"";
}
else
{
return "\"Failed\"";
}
}
private void DoSaveFilter(SaveFilterObject filterObject)
{
List<GlobalFilterAuthorize> globalFilter = new List<GlobalFilterAuthorize>();
if (filterObject.GlobalFilter != null)
{
foreach (var item in filterObject.GlobalFilter)
{
GlobalFilterAuthorize gf = new GlobalFilterAuthorize();
gf.FilterName = item.FilterName;
gf.FilterCondition = item.FilterCondition;
gf.FilterDataType = (FI.FIC.Contracts.DataObjects.Enumeration.DBDataType)item.FilterDataType;
gf.FilterType = (FI.FIC.Contracts.DataObjects.Enumeration.FilterType)item.FilterType;
gf.FilterValue = item.FilterValue;
gf.IID = item.IID;
gf.PluginID = item.PluginID;
globalFilter.Add(gf);
}
}
List<TableFilterAuthorize> tableFilter = new List<TableFilterAuthorize>();
if (filterObject.TableFilters != null)
{
foreach (var tfobj in filterObject.TableFilters)
{
foreach (var item in tfobj.Filters)
{
TableFilterAuthorize tf = new TableFilterAuthorize();
tf.FilterName = item.FilterName;
tf.FilterCondition = item.FilterCondition;
tf.FilterDataType = (FI.FIC.Contracts.DataObjects.Enumeration.DBDataType)item.FilterDataType;
tf.FilterType = (FI.FIC.Contracts.DataObjects.Enumeration.FilterType)item.FilterType;
tf.FilterValue = item.FilterValue;
tf.IID = item.IID;
tf.PluginID = item.PluginID;
tableFilter.Add(tf);
}
}
}
if (filterObject.Type == 1)//1为Group2为User
{
GlobalFilterManager.SaveGlobalFilterAuthorizeForGroup(filterObject.UserIID, globalFilter.ToArray(), tableFilter.ToArray());
}
else if (filterObject.Type == 2)
{
GlobalFilterManager.SaveGlobalFilterAuthorizeForUser(filterObject.UserIID, globalFilter.ToArray(), tableFilter.ToArray());
}
}
private DataSourceObject GetDataSource()
{
DataSourceObject result = new DataSourceObject();
var s = Request.Form["ClientData"];
string dsiid = HttpUtility.HtmlDecode(s);
PluginStructure dsStructure = PluginManager.GetPluginStructure(dsiid);
PluginManager pm = new PluginManager();
DataTable dt = pm.GetSourceData(dsiid, null);
int indexOfName = dt.Columns.IndexOf(dsStructure.DataImport.DisplayField);
int indexOfID = dt.Columns.IndexOf(dsStructure.DataImport.ValueField);
int indexOfPID = dt.Columns.IndexOf(dsStructure.DataImport.ParentField);
if (indexOfName < 0)
indexOfName = dt.Columns.IndexOf("Name");
if (indexOfID < 0)
indexOfID = dt.Columns.IndexOf("ID");
if (indexOfPID < 0)
indexOfPID = dt.Columns.IndexOf("PID");
result.IID = dsStructure.IID;
result.IsFlat = dsStructure.IsFlat == 1;
if (!result.IsFlat)
result.IsFlat = IsFlat(dt, indexOfPID);
result.Name = dsStructure.PluginName;
result.DisplayField = dsStructure.DataImport.DisplayField;
result.ValueField = dsStructure.DataImport.ValueField;
List<DataSourceData> datas = new List<DataSourceData>();
if (result.IsFlat)
{
foreach (DataRow dr in dt.Select("", dt.Columns[indexOfID].ColumnName + " asc"))
{
DataSourceData ds = new DataSourceData();
ds.ID = dr[indexOfID].ToString();
ds.Description = dr[indexOfName].ToString();
if (indexOfPID >= 0)
ds.PID = dr[indexOfPID].ToString();
datas.Add(ds);
}
//datas = datas.OrderBy((d) => d.ID).ToList();
}
else
{
Dictionary<string, DataSourceData> nodes = new Dictionary<string, DataSourceData>();
foreach (DataRow dr in dt.Select("", dt.Columns[indexOfID].ColumnName + " asc"))
{
DataSourceData ds = new DataSourceData();
ds.ID = dr[indexOfID].ToString();
ds.Description = dr[indexOfName].ToString();
if (indexOfPID >= 0)
ds.PID = dr[indexOfPID].ToString();
//if (nodes.ContainsKey(ds.PID))
//{
// DataSourceData pnode = nodes[ds.PID];
// List<DataSourceData> subNodes = new List<DataSourceData>();
// if (pnode.SubData != null)
// subNodes.AddRange(pnode.SubData);
// subNodes.Add(ds);
// pnode.SubData = subNodes.ToArray();
//}
nodes[ds.ID] = ds;
}
foreach (var kv in nodes)
{
if (nodes.ContainsKey(kv.Value.PID))
{
DataSourceData pnode = nodes[kv.Value.PID];
List<DataSourceData> subNodes = new List<DataSourceData>();
if (pnode.SubData != null)
subNodes.AddRange(pnode.SubData);
subNodes.Add(kv.Value);
pnode.SubData = subNodes.ToArray();
}
else
datas.Add(kv.Value);
}
}
result.Data = datas.ToArray();
return result;
}
private Filter[] GetTableFilters()
{
var p = Request.Form["ClientData"];
p = HttpUtility.HtmlDecode(p);
int index = p.IndexOf(";");
string iid = p.Substring(0, index);
int index1 = p.IndexOf(";", index + 1);
string type = p.Substring(index + 1, index1 - index - 1);//1为Group 2为User
string dtiid = p.Substring(index1 + 1);
TableFilterAuthorize[] tableFilters = null;
List<FI.FIC.Contracts.DataObjects.BaseObject.Plugin> pluginList = PluginManager.GetPlugin();
if (type == "1")
{
tableFilters = GlobalFilterManager.GetTableFilterAuthorizeForGroup(iid, dtiid);
}
else if (type == "2")
{
tableFilters = GlobalFilterManager.GetTableFilterAuthorizeForUser(iid, dtiid);
}
List<Filter> filters = new List<Filter>();
if (tableFilters != null)
{
foreach (var item in tableFilters)
{
Filter tf = new Filter();
tf.FieldName = item.FieldName;
tf.FilterName = item.FilterName;
tf.FilterCondition = item.FilterCondition ?? " ";
tf.FilterDataType = (int)item.FilterDataType;
tf.FilterType = (int)item.FilterType;
if (tf.FilterType == 0)
tf.FilterTypeString = "Single Value";
else
tf.FilterTypeString = getPluginName(item.PluginID, pluginList);
tf.FilterValue = item.FilterValue;
tf.IID = item.IID;
tf.PluginID = item.PluginID;
filters.Add(tf);
}
}
return filters.ToArray();
}
/// <summary>
/// 判断数据源的数据是否是树形结构
/// </summary>
/// <returns></returns>
private bool IsFlat(DataTable dt, int pidIndex)
{
if (pidIndex < 0) return true;
List<string> ids = new List<string>();
List<string> pids = new List<string>();
foreach (DataRow dr in dt.Rows)
{
string id = dr[pidIndex].ToString();
if (pids.IndexOf(id) >= 0)
return false;
string pid = dr[pidIndex].ToString();
if (ids.IndexOf(pid) >= 0)
return false;
ids.Add(id);
pids.Add(pid);
}
return true;
}
private bool Validate(ref string error, SaveFilterObject FilterObj)
{
string msg = "";
if (FilterObj.GlobalFilter != null && FilterObj.GlobalFilter.Length > 0)
{
Filter errorObj = null;
if (!ValidateFilter(ref msg, FilterObj.GlobalFilter, out errorObj))
{
//string TableFilterError = CommonHelper.GetLangauge("LHBIS.FIC.Client.Modules.FilterManagement.A016") + "\n";
error = "Filter '{0}' in global filter:" + "\n";
error = string.Format(error, errorObj.FilterName);
error = error + msg;
return false;
}
}
if (FilterObj.TableFilters != null && FilterObj.TableFilters.Length > 0)
{
foreach (var tf in FilterObj.TableFilters)
{
Filter errorObj = null;
if (!ValidateFilter(ref msg, tf.Filters, out errorObj))
{
//string TableFilterError = CommonHelper.GetLangauge("LHBIS.FIC.Client.Modules.FilterManagement.A017") + "\n";
error = "Filter '{0}' in the data Table '{1}':" + "\n";
error = string.Format(error, errorObj.FilterName, tf.TableName);
error = error + msg;
return false;
}
}
}
return true;
}
private bool ValidateFilter(ref string error, Filter[] Filters, out Filter errorObj)
{
errorObj = null;
for (int i = 0; i < Filters.Length; i++)
{
Filter item = Filters[i];
if (!string.IsNullOrWhiteSpace(item.FilterCondition))
{
if ((item.FilterCondition == isnull) || (item.FilterCondition == isnotnull))
{
item.FilterValue = "";
}
else if (item.FilterCondition != sqlIn)
{
bool returnValue = true;
switch (item.FilterDataType)
{
case (int)FI.FIC.Contracts.DataObjects.Enumeration.DBDataType.dtBoolean:
try
{
bool.Parse(item.FilterValue);
}
catch
{
error = "The Filter value must be True/False.";// CommonHelper.GetLangauge("LHBIS.FIC.Client.Modules.FilterManagement.A012");
returnValue = false;
}
break;
case (int)FI.FIC.Contracts.DataObjects.Enumeration.DBDataType.dtDate:
try
{
//必须要满足(月日年)或(年月日)的格式
DateTime t = DateTime.Now;
try
{
t = DateTime.Parse(item.FilterValue, new System.Globalization.DateTimeFormatInfo());
}
catch
{
}
string tFilterValue = item.FilterValue.Replace(".", "-").Replace("/", "-");
if (!tFilterValue.StartsWith(t.ToString("MM-dd-yyyy"))
&& !tFilterValue.StartsWith(t.ToString("MM-d-yyyy"))
&& !tFilterValue.StartsWith(t.ToString("M-dd-yyyy"))
&& !tFilterValue.StartsWith(t.ToString("M-d-yyyy"))
&& !tFilterValue.StartsWith(t.ToString("yyyy-MM-dd"))
&& !tFilterValue.StartsWith(t.ToString("yyyy-MM-d"))
&& !tFilterValue.StartsWith(t.ToString("yyyy-M-dd"))
&& !tFilterValue.StartsWith(t.ToString("yyyy-M-d")))
{
throw new Exception();
}
}
catch
{
error = "The Filter value must be a date.";// CommonHelper.GetLangauge("LHBIS.FIC.Client.Modules.FilterManagement.A013");
error += " " + "Date format must be 'MM/dd/yyyy' or 'yyyy-MM-dd'";// CommonHelper.GetLangauge("LHBIS.FIC.Client.Wizard.ChartWizardHelper.A286");
returnValue = false;
}
break;
case (int)FI.FIC.Contracts.DataObjects.Enumeration.DBDataType.dtFloat:
try
{
float.Parse(item.FilterValue);
}
catch
{
error = "The Filter value must be a floating point.";//CommonHelper.GetLangauge("LHBIS.FIC.Client.Modules.FilterManagement.A014");
returnValue = false;
}
break;
case (int)FI.FIC.Contracts.DataObjects.Enumeration.DBDataType.dtInteger:
try
{
int.Parse(item.FilterValue);
}
catch
{
error = "The Filter Value must be an integer.";// CommonHelper.GetLangauge("LHBIS.FIC.Client.Modules.FilterManagement.A015");
returnValue = false;
}
break;
case (int)FI.FIC.Contracts.DataObjects.Enumeration.DBDataType.dtGuid:
try
{
if (string.IsNullOrEmpty(item.FilterValue))
item.FilterValue = Guid.Empty.ToString();
else
new Guid(item.FilterValue);
}
catch
{
error = "The Filter Value must be a GUID.";// CommonHelper.GetLangauge("LHBIS.FIC.Client.Modules.FilterManagement.A018");
returnValue = false;
}
break;
}
if (returnValue == false)
{
errorObj = item;
return returnValue;
}
}
if (item.FilterValue.Length > 2000)
{
errorObj = item;
error = "The length of the Filter Value must be less than 2000.";// 没有资源号
return false;
}
}
}
return true;
}
#region Model
public class Filter
{
public string IID { get; set; }
public string FilterName { get; set; }
public int FilterType { get; set; }
public string FilterTypeString { get; set; }
public string FieldName { get; set; }
public int FilterDataType { get; set; }
public string FilterDataTypeString
{
get
{
string dataType = Enum.GetName(typeof(FI.FIC.Contracts.DataObjects.Enumeration.DBDataType), FilterDataType);
if (dataType == null) return null;
if (dataType.StartsWith("dt"))
{
return dataType.Substring(2, dataType.Length - 2);
}
return dataType;
}
}
public string FilterCondition { get; set; }
public string FilterValue { get; set; }
public string PluginID { get; set; }
}
/// <summary>
/// 包含Global Filter, DataTable List和第一个DataTable的Filter
/// </summary>
public class FilterObject
{
public Filter[] GlobalFilters { get; set; }
public KeyValuePair<string, string>[] DataTableList { get; set; }//IID/Name
public Filter[] FirstTableFilters { get; set; }//第一个DataTable的Filter
}
public class TableFilterObject
{
public string TableIID { get; set; }
public string TableName { get; set; }
public Filter[] Filters { get; set; }
}
public class SaveFilterObject
{
public string UserIID { get; set; }//用户或用户组的IID
public int Type { get; set; }//1
public Filter[] GlobalFilter { get; set; }
public TableFilterObject[] TableFilters { get; set; }
}
public class DataSourceObject
{
public string IID { get; set; }
public string Name { get; set; }
public bool IsFlat { get; set; }
public string DisplayField { get; set; }
public string ValueField { get; set; }
public DataSourceData[] Data { get; set; }
}
public class DataSourceData
{
public string ID { get; set; }
public string PID { get; set; }
public string Description { get; set; }
public DataSourceData[] SubData { get; set; }
}
public class ErrorObject
{
public int ErrorCode { get; set; }
public string ErrorMessage { get; set; }
}
#endregion
}
}

View File

@ -1,9 +1,10 @@
using Foresight.Data;
using Foresight.Fleet.Services.Asset;
using Foresight.Fleet.Services.JobSite;
using Foresight.Fleet.Services.MapView;
using IronIntel.Contractor.MapView;
using IronIntel.Contractor.Security;
using IronIntel.Contractor.Users;
using IronIntel.Services.Business.Admin;
using IronIntel.Services.Customers;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@ -59,20 +60,21 @@ namespace IronIntel.Contractor.Site.Security
{
try
{
if (GetCurrentLoginSession() != null)
var session = GetCurrentLoginSession();
if (session != null)
{
var clientdata = Request.Form["ClientData"].Split((char)170);
var contractorid = HttpUtility.HtmlDecode(clientdata[0]);
var companyid = HttpUtility.HtmlDecode(clientdata[0]);
var searchtext = HttpUtility.HtmlDecode(clientdata[1]);
if (!SystemParams.IsDealer)
contractorid = SystemParams.CompanyID;
companyid = SystemParams.CompanyID;
JobSiteLimitItem[] items = CreateClient<JobSiteProvider>(contractorid).GetJobSiteLimitItems(contractorid, searchtext);
JobSiteLimitItem[] items = CreateClient<JobSiteProvider>(companyid).GetJobSiteLimitItems(companyid, searchtext);
if (items == null || items.Length == 0)
return new JobsiteLimitInfo[0];
MachineType[] alltypes = Machines.MachineManagement.GetMachineTypes();
AssetType[] alltypes = Machines.MachineManagement.GetMachineTypes();
List<JobsiteLimitInfo> list = new List<JobsiteLimitInfo>();
foreach (JobSiteLimitItem item in items)
{
@ -83,7 +85,7 @@ namespace IronIntel.Contractor.Site.Security
{
foreach (string tyid in typeids)
{
MachineType type = alltypes.FirstOrDefault(m => m.ID == Convert.ToInt32(tyid));
AssetType type = alltypes.FirstOrDefault(m => m.ID == Convert.ToInt32(tyid));
if (type != null)
{
if (string.IsNullOrWhiteSpace(jl.AssetTypeNames))

View File

@ -1,5 +1,4 @@
using IronIntel.Contractor.Users;
using IronIntel.Services;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@ -34,10 +33,11 @@ namespace IronIntel.Contractor.Site.Security
{
var user = GetCurrentUser();
List<SecurityNavigateItem> list = Acl.GetSecurityNavigateItems(user).ToList();
LicenseInfo license = SystemParams.GetLicense();
Foresight.Fleet.Services.Customer.LicenseInfo license = SystemParams.GetLicense();
if (license != null && license.Items.Count > 0)
{
LicenseItem li = license.Items.FirstOrDefault(m => m.Key == "CurfewConfiguration");
Foresight.Fleet.Services.Customer.LicenseItem li = license.Items.FirstOrDefault(m => m.Key == "CurfewConfiguration");
if (li == null || !Helper.IsTrue(li.Value))
{
SecurityNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_curfew");

View File

@ -91,7 +91,7 @@ namespace IronIntel.Contractor.Site.Security
contractors[i] = HttpUtility.UrlDecode(contractors[i]);
}
UserManagement.AddUserToContractor(iid, contractors);
Response.Write("Save contractors info successfully.");
Response.Write(JsonConvert.SerializeObject("Save contractors info successfully."));
Response.End();
}
}