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

@ -23,24 +23,74 @@ namespace IronIntel.Contractor.Users
public AppModuleType ModuleType { get; set; }
public List<NavigateItem> SubItems { get; set; }
public List<NavigateItem> GetJobsiteNavigateItems(Tuple<Feature, Permissions>[] pmss)
{
List<NavigateItem> list = new List<NavigateItem>();
Foresight.Fleet.Services.Customer.LicenseInfo license = SystemParams.GetLicense();
var jsitem = license.Items.FirstOrDefault(m => m.Key == "JobSites");
if (jsitem == null || !Helper.IsTrue(jsitem.Value))
{
return list;
}
NavigateItem item = null;
var jsditem = license.Items.FirstOrDefault(m => m.Key == "JobsiteDispatch");
if (jsditem != null && Helper.IsTrue(jsditem.Value))
{
item = new NavigateItem();
item.ID = "nav_jobsiterequirements";
item.FeatureID = Feature.JOB_SITES_REQUIREMENTS;
item.Title = "Jobsite Requirements";
item.Url = Url + "#" + item.ID;
item.PageUrl = "JobSiteRequirements.aspx";
item.IconPath = "img/jobsiterequirements.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.JOB_SITES_REQUIREMENTS) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_dispatchrequests";
item.FeatureID = Feature.JOB_SITES_DISPATCHREQUESTS;
item.Title = "Dispatch Requests";
item.Url = Url + "#" + item.ID;
item.PageUrl = "DispatchRequests.aspx";
item.IconPath = "img/dispatch.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.JOB_SITES_DISPATCHREQUESTS) != null)
list.Add(item);
}
item = new NavigateItem();
item.ID = "nav_jobsitemanage";
item.FeatureID = Feature.JOB_SITES;
item.Title = "Jobsites";
item.Url = Url + "#" + item.ID;
item.PageUrl = "JobSiteManage.aspx";
item.IconPath = "img/jobsite.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.JOB_SITES) != null)
list.Add(item);
if (jsditem != null || Helper.IsTrue(jsditem.Value))
{
item = new NavigateItem();
item.ID = "nav_scheduler";
item.FeatureID = Feature.JOB_SITES_SCHEDULER;
item.Title = "Scheduler";
item.Url = Url + "#" + item.ID;
item.PageUrl = "SchedulerManagement.aspx";
item.IconPath = "img/scheduler.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.JOB_SITES_SCHEDULER) != null)
list.Add(item);
}
return list;
}
public List<NavigateItem> GetMaintenanceNavigateItems(Tuple<Feature, Permissions>[] pmss)
{
List<NavigateItem> list = new List<NavigateItem>();
NavigateItem item = new NavigateItem();
item.ID = "nav_alertsmanagement";
item.FeatureID = Feature.ALERTS_MANAGEMENT;
item.Title = "Alerts Management **New**";
item.Url = Url + "#" + item.ID;
item.PageUrl = "AlertsManagement.aspx";
item.IconPath = "img/alert.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.ALERTS_MANAGEMENT) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_workorder";
item.FeatureID = Feature.WORK_ORDER;
item.Title = "Work Order **New**";
item.Title = "Work Order";
item.Url = Url + "#" + item.ID;
item.PageUrl = "WorkOrderMaintenance.aspx";
item.IconPath = "img/workorder.png";
@ -48,75 +98,93 @@ namespace IronIntel.Contractor.Users
list.Add(item);
item = new NavigateItem();
item.ID = "nav_preventative";
item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE;
item.Title = "Absolute Hours Maintenance";
item.ID = "nav_workorderhis";
item.FeatureID = Feature.WORKORDERHISTORY;
item.Title = "Work Order History";
item.Url = Url + "#" + item.ID;
item.PageUrl = "PreventativeMaintenance.aspx";
item.PageUrl = "WorkOrderHistory.aspx";
item.IconPath = "img/workorderhis.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.WORKORDERHISTORY) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_alertsmanagement";
item.FeatureID = Feature.ALERTS_MANAGEMENT;
item.Title = "Alerts Management";
item.Url = Url + "#" + item.ID;
item.PageUrl = "AlertsManagement.aspx";
item.IconPath = "img/alert.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.ALERTS_MANAGEMENT) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_maintenanceschedule";
item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE;
item.Title = "Maintenance Schedules";
item.Url = Url + "#" + item.ID;
item.PageUrl = "MaintenanceSchedulesManagement.aspx";
item.IconPath = "img/preventative.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_timebased";
item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE;
item.Title = "Relative Time Maintenance";
item.Url = Url + "#" + item.ID;
item.PageUrl = "TimeBasedMaintenance.aspx";
item.IconPath = "img/timebased.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_hours";
item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE;
item.Title = "Relative Hours Maintenance";
item.Url = Url + "#" + item.ID;
item.PageUrl = "HoursMaintenance.aspx";
item.IconPath = "img/hours.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_absolutedistance";
item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE;
item.Title = "Absolute Distance Maintenance";
item.Url = Url + "#" + item.ID;
item.PageUrl = "AbsoluteDistanceMaintenance.aspx";
item.IconPath = "img/preventative.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null)
list.Add(item);
item = new NavigateItem();
item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE;
item.ID = "nav_relativedistance";
item.Title = "Relative Distance Maintenance";
item.Url = Url + "#" + item.ID;
item.PageUrl = "RelativeDistanceMaintenance.aspx";
item.IconPath = "img/hours.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_record";
item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE;
item.Title = "Maintenance Record **Legacy**";
item.Title = "Maintenance Record";
item.Url = Url + "#" + item.ID;
item.PageUrl = "MaintanceRecordsManagement.aspx";
item.IconPath = "img/record.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null)
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null
&& pmss.FirstOrDefault(m => m.Item1.Id == Feature.MAINTENANCE_RECORD) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_fuelrecord";
item.FeatureID = Feature.FUEL_RECORDS;
item.Title = "Fuel Records";
item.Url = Url + "#" + item.ID;
item.PageUrl = "FuelRecordManagement.aspx";
item.IconPath = "img/fuelrecord.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.FUEL_RECORDS) != null)
{
item = new NavigateItem();
item.ID = "nav_fuelrecord";
item.FeatureID = Feature.FUEL_RECORDS;
item.Title = "Fuel Records";
item.Url = Url + "#" + item.ID;
item.PageUrl = "FuelRecordManagement.aspx";
item.IconPath = "img/fuelrecord.png";
list.Add(item);
}
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.CUSTOMER_RECORD) != null)
{
item = new NavigateItem();
item.ID = "nav_customerrecord";
item.FeatureID = Feature.CUSTOMER_RECORD;
item.Title = "Customer Record";
item.Url = Url + "#" + item.ID;
item.PageUrl = "CustomerRecordManagement.aspx";
item.IconPath = "img/customerrecord.png?v=1";
list.Add(item);
item = new NavigateItem();
item.ID = "nav_surveymanagementresult";
item.FeatureID = Feature.WORKORDERSURVEYS;
item.Title = "Survey Management/Result";
item.Url = Url + "#" + item.ID;
item.PageUrl = "SurveyManagement.aspx";
list.Add(item);
item = new NavigateItem();
item.ID = "nav_wosurveytemplate";
item.FeatureID = -1;
item.Title = "Templates";
item.Url = Url + "#" + item.ID;
item.PageUrl = "SurveyTemplateManagement.aspx";
list.Add(item);
item = new NavigateItem();
item.ID = "nav_wosurveytemplatereport";
item.FeatureID = -1;
item.Title = "Report";
item.Url = Url + "#" + item.ID;
item.PageUrl = "SurveyTemplateReport.aspx";
list.Add(item);
}
return list;
}
@ -178,7 +246,8 @@ namespace IronIntel.Contractor.Users
item.Url = Url + "#" + item.ID;
item.PageUrl = "CurfewManage.aspx";
item.IconPath = "img/curfew.png";
list.Add(item);
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.CURFEW_CONFIG) != null)
list.Add(item);
if (user.UserType == UserTypes.SupperAdmin)
{
@ -189,7 +258,8 @@ namespace IronIntel.Contractor.Users
item.Url = Url + "#" + item.ID;
item.PageUrl = "CurfewMovementTolerance.aspx";
item.IconPath = "img/curfewmovementtolerance.png";
list.Add(item);
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.CURFEW_CONFIG) != null)
list.Add(item);
}
return list;
@ -250,6 +320,70 @@ namespace IronIntel.Contractor.Users
return list;
}
public List<NavigateItem> GetCredentialNavigateItems(Tuple<Feature, Permissions>[] pmss, UserInfo user)
{
List<NavigateItem> list = new List<NavigateItem>();
NavigateItem item = new NavigateItem();
item.ID = "nav_credential";
item.FeatureID = Feature.CREDENTIALS;
item.Title = "Credentials";
item.Url = Url + "#" + item.ID;
item.PageUrl = "ManageCredential.aspx";
item.IconPath = "img/credential.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.CREDENTIALS) != null)
list.Add(item);
item = new NavigateItem();
item.ID = "nav_jdlink";
item.FeatureID = Feature.JDLINK;
item.Title = "JD Link";
item.Url = Url + "#" + item.ID;
item.PageUrl = "ManageJDLink.aspx";
item.IconPath = "img/jdlink.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.JDLINK) != null)
list.Add(item);
//item = new NavigateItem();
//item.ID = "nav_jdnotification";
//item.FeatureID = Feature.JDNOTIFICATION;
//item.Title = "JohnDeere Notifications";
//item.Url = Url + "#" + item.ID;
//item.PageUrl = "ManageJDNotifications.aspx";
//item.IconPath = "img/jdnotifications.png";
//if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.JDNOTIFICATION) != null)
// list.Add(item);
item = new NavigateItem();
item.ID = "nav_apicredential";
item.FeatureID = Feature.APICREDENTIALS;
item.Title = "API Credentials";
item.Url = Url + "#" + item.ID;
item.PageUrl = "ManageAPICredential.aspx";
item.IconPath = "img/apicredential.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.APICREDENTIALS) != null)
list.Add(item);
return list;
}
public List<NavigateItem> GetOTRConfigNavigateItems(Tuple<Feature, Permissions>[] pmss, UserInfo user)
{
List<NavigateItem> list = new List<NavigateItem>();
NavigateItem item = new NavigateItem();
item.ID = "nav_manageharshdriving";
item.FeatureID = Feature.HARSH_DRIVING;
item.Title = "Manage Harsh Driving";
item.Url = Url + "#" + item.ID;
item.PageUrl = "ManageHarshDriving.aspx";
item.IconPath = "img/harshdriving.png";
if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.HARSH_DRIVING) != null)
list.Add(item);
return list;
}
}
public class NavigateItem
@ -270,6 +404,14 @@ namespace IronIntel.Contractor.Users
public string IconPath { get; set; }
}
public class CredentialNavigateItem
{
public string ID { get; set; }
public string Title { get; set; }
public string Url { get; set; }
public string IconPath { get; set; }
}
public enum AppModuleType
{
System,

View File

@ -5,9 +5,8 @@ using System.Text;
using System.Threading.Tasks;
using System.Data;
using Foresight.Data;
using IronIntel.Contractor.Users;
using IronIntel.Services;
using Foresight.Fleet.Services.User;
using Foresight.Fleet.Services.Styles;
namespace IronIntel.Contractor.Users
{
@ -37,6 +36,14 @@ namespace IronIntel.Contractor.Users
moudles.Insert(0, FeatureModule.Modules[0]);
foreach (var m in moudles)
{
if (m.Id == FeatureModule.MODULE_TEAM && user.UserType != UserTypes.SupperAdmin)
continue;
if (m.Id == FeatureModule.MODULE_MANAGEASSETS && pmss.FirstOrDefault(p => p.Item1.Id == Feature.MANAGE_ASSETS) == null)
continue;
//if (m.Id == FeatureModule.MODULE_JOBSITES && pmss.FirstOrDefault(p => p.Item1.Id == Feature.JOB_SITES) == null)
// continue;
AppModuleInfo ami = new AppModuleInfo();
ami.ID = m.Id.ToString();
ami.Name = m.Name;
@ -49,14 +56,19 @@ namespace IronIntel.Contractor.Users
ami.Visible = true;
ami.ModuleType = AppModuleType.System;
if (m.Id == FeatureModule.MODULE_ASSETHEALTH)
if (m.Id == FeatureModule.MODULE_JOBSITES)
ami.SubItems = ami.GetJobsiteNavigateItems(pmss);
else if (m.Id == FeatureModule.MODULE_ASSETHEALTH)
ami.SubItems = ami.GetMaintenanceNavigateItems(pmss);
else if (m.Id == FeatureModule.MODULE_SECURITY)
ami.SubItems = ami.GetSecurityNavigateItems(pmss, user);
else if (m.Id == FeatureModule.MODULE_MANAGEASSETS)
ami.SubItems = ami.GetAssetsNavigateItems(pmss, user);
else if (m.Id == FeatureModule.MODULE_CREDENTIAL)
ami.SubItems = ami.GetCredentialNavigateItems(pmss, user);
list.Add(ami);
if (ami.SubItems == null || ami.SubItems.Count > 0)
list.Add(ami);
}
AppModuleInfo[] wsps = GetFICWorkspace(user);
foreach (AppModuleInfo ap in wsps)
@ -82,22 +94,6 @@ namespace IronIntel.Contractor.Users
return false;
}
private static AppModuleInfo ConvertToAppModule(DataRow dr)
{
AppModuleInfo ai = new AppModuleInfo();
ai.ID = FIDbAccess.GetFieldString(dr["ID"], string.Empty);
ai.Name = FIDbAccess.GetFieldString(dr["APPMODULENAME"], string.Empty);
ai.Description = FIDbAccess.GetFieldString(dr["APPMODULEDESC"], string.Empty);
ai.Url = FIDbAccess.GetFieldString(dr["URL"], string.Empty);
ai.IconPath = FIDbAccess.GetFieldString(dr["ICONPATH"], string.Empty);
ai.BackColor = FIDbAccess.GetFieldString(dr["BACKCOLOR"], string.Empty);
ai.ForeColor = FIDbAccess.GetFieldString(dr["FORECOLOR"], string.Empty);
ai.OpenInNewWindow = FIDbAccess.GetFieldInt(dr["OPENINNEWWINDOW"], 0) == 1;
ai.Visible = true;
ai.ModuleType = AppModuleType.System;
return ai;
}
public static AppModuleInfo[] GetFICWorkspace(UserInfo user)
{
if (string.IsNullOrWhiteSpace(SystemParams.FICDbConnectionString))

View File

@ -1,5 +1,10 @@
using FI.FIC;
using FI.FIC.Contracts.DataObjects.BaseObject;
using Foresight.Fleet.Services.Asset;
using Foresight.Fleet.Services.JobSite;
using Foresight.Fleet.Services.User;
using Foresight.Standard;
using IronIntel.Contractor.Machines;
using System;
using System.Collections.Generic;
using System.Linq;
@ -10,7 +15,7 @@ namespace IronIntel.Contractor.Users
{
public class UserInfo
{
private static string[] ContactTypeNames = { "Foreman", "Driver", "Inventory Manager", "Rental Manager", "Service Manager", "Fleet Manager", "Technician", "Other" };
private static string[] ContactTypeNames = { "Foreman", "Driver", "Inventory Manager", "Rental Manager", "Service Manager", "Fleet Manager", "Technician", "Advisor", "Other" };
public string IID { get; set; }
public string ID { get; set; }
public string DisplayName { get; set; }
@ -18,6 +23,7 @@ namespace IronIntel.Contractor.Users
public bool IsUser { get; set; }
public ContactTypes ContactType { get; set; }
public string Mobile { get; set; }
public string MobilePhoneDisplayText { get; set; }
public string BusinessPhone { get; set; }
public string Notes { get; set; }
public bool Active { get; set; }
@ -25,6 +31,7 @@ namespace IronIntel.Contractor.Users
public string TransPass { get; set; }
public string ManagerIID { get; set; }
public string ManagerName { get; set; }
public bool AssignedWorkOrders { get; set; }
public bool EmailOptOut { get; set; }
public bool InspectEmailList { get; set; }
public bool TeamIntelligenceUser { get; set; }
@ -35,16 +42,29 @@ namespace IronIntel.Contractor.Users
public bool AllowLoginIntoPC { get; set; }
public bool AllowLoginIntoInspectMobile { get; set; }
public bool AllowLoginIntoFleetMobile { get; set; }
public bool AllowMobileBarcodeScanning { get; set; }
public string PreferredLanguage { get; set; }
public string TimeZone { get; set; }
public string LandingPage { get; set; }
public string GroupNamesStr { get { return (GroupNames == null || GroupNames.Length == 0) ? "" : string.Join(",", GroupNames); } }
public long[] AssetIDs { get; set; }
public string[] AssetGroupIDs { get; set; }
public string[] JobsiteIDs { get; set; }
public string[] AssetTypeIDs { get; set; }
public int[] LocationIds { get; set; }
public int[] DepartmentIds { get; set; }
public bool WorkOrderFollower { get; set; }
public bool ExcelExports { get; set; }
public LoginVerifyTypes LoginVerifyType { get; set; } = LoginVerifyTypes.OrganizationSetting;
public UserInfo[] Managers { get; set; }
public string ContactTypeName
{
get
{
int cType = (int)ContactType;
if (cType > 7)
cType = 7;
if (cType > 8)
cType = 8;
return ContactTypeNames[cType];
}
}
@ -56,8 +76,12 @@ namespace IronIntel.Contractor.Users
public SubscribeMessageByEmail Subscribe { get; set; }
public KeyValuePair<int, Foresight.Fleet.Services.User.Permissions[]>[] Features { get; set; }
public EmailSchedule Schedule { get; set; }
public string UserAlertFilter { get; set; }
public EmailSchedule Schedule { get; set; }
public StringKeyValue[] MessageTypes { get; set; }
public UserFilterTemplateItem[] FilterTemplates { get; set; }
public int[] DeleteFilterTemplates { get; set; }
}
public enum UserTypes
@ -76,6 +100,7 @@ namespace IronIntel.Contractor.Users
ServiceManager = 4,
FleetManager = 5,
Technician = 6,
Advisor = 7,
Other = 100
}
@ -85,4 +110,15 @@ namespace IronIntel.Contractor.Users
public string ID { get; set; }
public string Name { get; set; }
}
public class UserFilterTemplateItem
{
public int Id { get; set; }
public string Name { get; set; }
public AssetListItemInfo[] Assets { get; set; }
public MachineGroup[] AssetGroups { get; set; }
public AssetType[] AssetTypes { get; set; }
public JobSiteItem[] Jobsites { get; set; }
}
}

View File

@ -2,12 +2,12 @@
using FI.FIC.Contracts.DataObjects;
using FI.FIC.Contracts.DataObjects.BaseObject;
using FI.FIC.Contracts.DataObjects.Enumeration;
using FI.FIC.Models;
using Foresight.Data;
using Foresight.Fleet.Services.Asset;
using Foresight.Fleet.Services.Customer;
using Foresight.Fleet.Services.User;
using Foresight.ServiceModel;
using IronIntel.Services.Customers;
using IronIntel.Services.Users;
using System;
using System.Collections.Generic;
using System.Data;
@ -17,11 +17,11 @@ namespace IronIntel.Contractor.Users
{
public static class UserManagement
{
public static UserInfo[] GetUsers(string companyid = null)
public static UserInfo[] GetUsers(string companyid = null, string filter = null)
{
if (string.IsNullOrEmpty(companyid))
companyid = SystemParams.CompanyID;
var users = FleetServiceClientHelper.CreateClient<UserQueryClient>(companyid, string.Empty).GetUsersByCustomerID(companyid, "");
var users = FleetServiceClientHelper.CreateClient<UserQueryClient>(companyid, string.Empty).GetUsersByCustomerID(companyid, filter);
if (users == null || users.Length == 0)
return new UserInfo[0];
@ -35,16 +35,6 @@ namespace IronIntel.Contractor.Users
list.Add(u);
}
return list.ToArray();
//const string SQL = @"SELECT USERIID,USERID,USERNAME,USERTYPE,EMAIL,ACTIVE,MOBILE,BUSINESSPHONE,NOTES FROM USERS";
//FIDbAccess db = SystemParams.GetDbInstance();
//DataTable dt = db.GetDataTableBySQL(SQL);
//List<UserInfo> list = new List<UserInfo>();
//foreach (DataRow dr in dt.Rows)
//{
// list.Add(ConvertToUserInfo(dr));
//}
//return list.ToArray();
}
@ -86,6 +76,30 @@ namespace IronIntel.Contractor.Users
return list.ToArray();
}
public static UserInfo[] GetSalespersons(string sessionid, string companyid = null, string filter = "")
{
if (string.IsNullOrEmpty(companyid))
companyid = SystemParams.CompanyID;
var users = FleetServiceClientHelper.CreateClient<UserQueryClient>(companyid, sessionid).GetUsersByCustomerID(companyid, "");
List<UserInfo> list = new List<UserInfo>();
foreach (var user in users)
{
if (user.Active)
{
if (string.IsNullOrWhiteSpace(filter))
list.Add(ConvertUserItem(user));
else
{
if (user.ID.IndexOf(filter, StringComparison.OrdinalIgnoreCase) >= 0
|| user.Name.IndexOf(filter, StringComparison.OrdinalIgnoreCase) >= 0
|| user.FOB.IndexOf(filter, StringComparison.OrdinalIgnoreCase) >= 0)
list.Add(ConvertUserItem(user));
}
}
}
return list.ToArray();
}
private static UserInfo ConvertUserItem(Foresight.Fleet.Services.User.UserInfo user)
{
if (user == null)
@ -98,12 +112,14 @@ namespace IronIntel.Contractor.Users
u.Active = user.Active;
u.TextAddress = user.TextAddress;
u.Mobile = user.Mobile;
u.MobilePhoneDisplayText = user.MobilePhoneDisplayText;
u.BusinessPhone = user.BusinessPhone;
u.Notes = user.Remark;
u.IsUser = user.IsUser;
u.ContactType = (ContactTypes)user.ContactType;
u.ManagerIID = user.ManagerIID;
u.ManagerName = user.ManagerName;
u.AssignedWorkOrders = user.AssignedWorkOrders;
u.EmailOptOut = user.EmailOptOut;
u.InspectEmailList = user.InspectEmailList;
u.TeamIntelligenceUser = user.TeamIntelligenceUser;
@ -112,6 +128,13 @@ namespace IronIntel.Contractor.Users
u.AllowLoginIntoPC = user.AllowLoginIntoPC;
u.AllowLoginIntoFleetMobile = user.AllowLoginIntoFleetMobile;
u.AllowLoginIntoInspectMobile = user.AllowLoginIntoInspectMobile;
u.AllowMobileBarcodeScanning = user.AllowMobileBarcodeScanning;
u.PreferredLanguage = user.PreferredLanguage;
u.LoginVerifyType = user.LoginVerifyType;
u.TimeZone = user.TimeZone;
if (!string.IsNullOrWhiteSpace(u.ManagerIID))
u.Managers = new UserInfo[] { new UserInfo() { IID = u.ManagerIID, DisplayName = u.ManagerName } };
return u;
}
@ -133,6 +156,7 @@ namespace IronIntel.Contractor.Users
u.IsUser = user.IsUser;
u.ContactType = (Foresight.Fleet.Services.User.ContactTypes)user.ContactType;
u.ManagerIID = user.ManagerIID;
u.AssignedWorkOrders = user.AssignedWorkOrders;
u.EmailOptOut = user.EmailOptOut;
u.InspectEmailList = user.InspectEmailList;
u.TeamIntelligenceUser = user.TeamIntelligenceUser;
@ -141,18 +165,23 @@ namespace IronIntel.Contractor.Users
u.AllowLoginIntoPC = user.AllowLoginIntoPC;
u.AllowLoginIntoFleetMobile = user.AllowLoginIntoFleetMobile;
u.AllowLoginIntoInspectMobile = user.AllowLoginIntoInspectMobile;
u.AllowMobileBarcodeScanning = user.AllowMobileBarcodeScanning;
u.PreferredLanguage = user.PreferredLanguage;
u.LoginVerifyType = user.LoginVerifyType;
u.TimeZone = user.TimeZone;
return u;
}
public static UserInfo[] GetUnmanagementUsers()
{
const string SQL = @"SELECT USERIID,USERID,USERNAME,USERTYPE,EMAIL,ACTIVE,MOBILE,BUSINESSPHONE,NOTES FROM USERS where isnull(ISUSER,0)=1 and (USERTYPE=0 or USERTYPE=1)";
FIDbAccess db = SystemParams.GetDbInstance();
DataTable dt = db.GetDataTableBySQL(SQL);
var users = FleetServiceClientHelper.CreateClient<UserQueryClient>(SystemParams.CompanyID).GetUsersByCustomerID(SystemParams.CompanyID, "");
List<UserInfo> list = new List<UserInfo>();
foreach (DataRow dr in dt.Rows)
foreach (var user in users)
{
list.Add(ConvertToUserInfo(dr));
if (user.IsUser && user.UserType < Foresight.Fleet.Services.User.UserTypes.Admin)
{
list.Add(ConvertUserItem(user));
}
}
return list.ToArray();
}
@ -173,12 +202,6 @@ namespace IronIntel.Contractor.Users
{
var dealerusers = GetUsers(dealer.ID);
ls.AddRange(dealerusers);
//LoginProvider lp = SystemParams.GetLoginProvider();
//UserInfoEx[] dealerusers = lp.GetAllUsersByCustomerID(dealer.ID);
//foreach (UserInfoEx u in dealerusers)
//{
// ls.Add(ConvertToServiceUserInfo(u));
//}
}
}
return ls.ToArray();
@ -193,30 +216,6 @@ namespace IronIntel.Contractor.Users
list.Add(ConvertUserItem(user));
}
return list.ToArray();
//LoginProvider lp = SystemParams.GetLoginProvider();
//UserInfoEx[] susers = lp.GetAllUsersByCustomerID("Foresight");
//List<UserInfo> list = new List<UserInfo>();
//foreach (UserInfoEx u in susers)
//{
// UserInfo user = ConvertToServiceUserInfo(u);
// list.Add(user);
//}
//return list.ToArray();
}
private static UserInfo ConvertToServiceUserInfo(UserInfoEx suer)
{
UserInfo user = new UserInfo();
user.IID = suer.UID;
user.ID = suer.ID;
user.DisplayName = suer.Name;
user.Mobile = suer.Mobile;
user.BusinessPhone = suer.BusinessPhone;
user.Active = suer.Active;
user.UserType = (UserTypes)3;
return user;
}
private static UserInfo ConvertToUserInfo(DataRow dr)
@ -234,21 +233,6 @@ namespace IronIntel.Contractor.Users
return ui;
}
private static UserInfo GetLocalUserInfo(string sessionid, string iid)
{
var user = FleetServiceClientHelper.CreateClient<UserQueryClient>(sessionid).GetUserByIID(iid);
return ConvertUserItem(user);
//const string SQL = "select * from USERS where USERIID={0}";
//FIDbAccess db = SystemParams.GetDbInstance();
//DataTable dt = db.GetDataTableBySQL(SQL, iid);
//if (dt.Rows.Count == 0)
//{
// return null;
//}
//return ConvertToUserInfo(dt.Rows[0]);
}
public static UserInfo GetUserBySessionID(string sessionid)
{
var ls = FleetServiceClientHelper.CreateClient<UserQueryClient>(sessionid).GetLoginSession(sessionid);
@ -264,78 +248,28 @@ namespace IronIntel.Contractor.Users
ui.DisplayName = ls.User.Name;
ui.Active = true;
ui.UserType = UserTypes.SupperAdmin;
ui.TimeZone = ls.User.TimeZone;
return ui;
}
else
{
return ConvertUserItem(ls.User);
}
//LoginProvider lp = SystemParams.GetLoginProvider();
//LoginSession ls = lp.GetLoginSession(sessionid);
//if (ls == null)
//{
// return null;
//}
//if (ls.User.IsForesightUser)
//{
// UserInfo ui = new UserInfo();
// ui.IID = ls.User.UID;
// ui.ID = ls.User.ID;
// ui.DisplayName = ls.User.Name;
// ui.Active = true;
// ui.UserType = UserTypes.SupperAdmin;
// return ui;
//}
//else
//{
// return GetLocalUserInfo(ls.User.UID);
//}
}
public static UserInfo GetUserByIID(string iid)
{
var user = FleetServiceClientHelper.CreateClient<UserQueryClient>().GetUserByIID(iid);
return ConvertUserItem(user);
//LoginProvider lp = SystemParams.GetLoginProvider();
//UserInfoEx ui1 = lp.GetUserInfoEx(iid);
//if (ui1 == null)
//{
// return null;
//}
//if (ui1.IsForesightUser)
//{
// UserInfo ui = new UserInfo();
// ui.IID = ui1.UID;
// ui.ID = ui1.ID;
// ui.DisplayName = ui1.Name;
// ui.Active = true;
// ui.UserType = UserTypes.SupperAdmin;
// return ui;
//}
//else
//{
// return GetLocalUserInfo(iid);
//}
}
public static UserInfo GetUserByID(string userid)
{
var user = FleetServiceClientHelper.CreateClient<UserQueryClient>().GetUserByUserID(userid);
return ConvertUserItem(user);
//LoginProvider lp = SystemParams.GetLoginProvider();
//UserInfoEx ui1 = lp.GetUserInfoExByUserID(userid);
//if (ui1 == null)
//{
// return null;
//}
//return GetUserByIID(ui1.UID);
}
public static string AddUser(UserInfo ui, string password, string addby, string sessionid, string clienthost)
public static string AddUser(UserInfo ui, string password, string addby, string sessionid, string clienthost, byte[] avadarBytes)
{
try
{
@ -346,6 +280,12 @@ namespace IronIntel.Contractor.Users
client.SessionID = sessionid;
client.ClientHost = clienthost;
user = client.AddNewUser(user, password, addby);
if (avadarBytes != null)
{
avadarBytes = Helper.GetThumbImg(avadarBytes, 300, 300);
client.SetUserAvatar(user.UID, avadarBytes);
}
return user.UID;
}
catch (Exception ex)
@ -353,47 +293,10 @@ namespace IronIntel.Contractor.Users
SystemParams.WriteLog("Error", typeof(UserManagement).FullName + ".AddUser", "Add new user failed: " + ui.ID, ex.ToString());
throw;
}
//const string SQL = @"insert into USERS(USERIID,USERID,USERNAME,USERTYPE,EMAIL,ACTIVE,MOBILE,BUSINESSPHONE,NOTES) values({0},{1},{2},{3},{4},{5},{6},{7},{8})";
//try
//{
// LoginProvider lp = SystemParams.GetLoginProvider();
// FIDbAccess db = SystemParams.GetDbInstance();
// UserInfoEx user = ConvertUserInfoTOUserInfoEx(ui);
// if (!string.IsNullOrWhiteSpace(password))
// {
// ui.IID = lp.RegisterUser(user, password);
// db.ExecSQL(SQL, ui.IID, ui.ID, ui.DisplayName, (int)ui.UserType, ui.ID, ui.Active ? 1 : 0, ui.Mobile, ui.BusinessPhone, ui.Notes);
// }
// else
// {
// ui.IID = lp.RegisterUser(user, Guid.NewGuid().ToString());
// db.ExecSQL(SQL, ui.IID, ui.ID, ui.DisplayName, (int)ui.UserType, ui.ID, ui.Active ? 1 : 0, ui.Mobile, ui.BusinessPhone, ui.Notes);
// lp.ForgotPassword(ui.ID);
// }
// return ui.IID;
//}
//catch (Exception ex)
//{
// SystemParams.WriteLog("Error", typeof(UserManagement).FullName + ".AddUserInfo", "Add new user failed: " + ui.ID, ex.ToString());
// throw;
//}
}
private static UserInfoEx ConvertUserInfoTOUserInfoEx(UserInfo ui)
{
UserInfoEx user = new UserInfoEx();
user.UID = ui.IID;
user.ID = ui.ID;
user.Name = ui.DisplayName;
user.Mobile = ui.Mobile;
user.BusinessPhone = ui.BusinessPhone;
user.Active = ui.Active;
user.CompanyID = SystemParams.CompanyID;
return user;
}
public static void UpdateUserInfo(UserInfo ui, string updatedby, string sessionid, string clienthost)
public static void UpdateUserInfo(UserInfo ui, string updatedby, string sessionid, string clienthost, byte[] avadarBytes)
{
try
{
@ -404,28 +307,30 @@ namespace IronIntel.Contractor.Users
client.SessionID = sessionid;
client.ClientHost = clienthost;
client.UpdateUser(user, updatedby);
if (avadarBytes != null)
{
avadarBytes = Helper.GetThumbImg(avadarBytes, 300, 300);
client.SetUserAvatar(user.UID, avadarBytes);
}
}
catch (Exception ex)
{
SystemParams.WriteLog("Error", typeof(UserManagement).FullName + ".UpdateUserInfo", "Update user failed: " + ui.IID, ex.ToString());
throw;
}
//const string SQL = @" update USERS set USERNAME={0},MOBILE={1},BUSINESSPHONE={2},ACTIVE={3},USERTYPE={4},NOTES={5} where USERIID={6}";
//try
//{
// LoginProvider lp = SystemParams.GetLoginProvider();
// UserInfoEx user = ConvertUserInfoTOUserInfoEx(ui);
// lp.UpdateUser(user);
// FIDbAccess db = SystemParams.GetDbInstance();
// db.ExecSQL(SQL, ui.DisplayName, ui.Mobile, ui.BusinessPhone, ui.Active ? 1 : 0, ui.UserType, ui.Notes, ui.IID);
//}
//catch (Exception ex)
//{
// SystemParams.WriteLog("Error", typeof(UserManagement).FullName + ".UpdateUserInfo", "Update user failed: " + ui.IID, ex.ToString());
// throw;
//}
}
public static void SetUserAvatar(string sessionid, string uid, byte[] avadarBytes)
{
try
{
var client = FleetServiceClientHelper.CreateClient<UserQueryClient>(sessionid);
client.SetUserAvatar(uid, avadarBytes);
}
catch (Exception ex)
{
SystemParams.WriteLog("Error", typeof(UserManagement).FullName + ".SetUserAvatar", "Set user Avatar failed: " + uid, ex.ToString());
throw;
}
}
public static void ResetPassword(string useriid, string password, string resetby, string sessionid, string clienthost)
@ -434,20 +339,6 @@ namespace IronIntel.Contractor.Users
client.SessionID = sessionid;
client.ClientHost = clienthost;
client.ResetPassword(useriid, password, true, resetby);
//const string SQL = "select USERID from USERS where USERIID={0}";
//FIDbAccess db = SystemParams.GetDbInstance();
//string userid = db.GetRC1BySQL(SQL, useriid).ToString();
//try
//{
// LoginProvider lp = SystemParams.GetLoginProvider();
// lp.ForgotPassword(userid);
//}
//catch (Exception ex)
//{
// SystemParams.WriteLog("Error", typeof(UserManagement).FullName + ".ResetPassword", "Reset Password failed: " + useriid, ex.ToString());
// throw;
//}
}
public static bool CanDeleteUser(string useriid)
@ -456,6 +347,13 @@ namespace IronIntel.Contractor.Users
return true;
}
public static byte[] GetUserAvatar(string sessionid, string useriid)
{
var client = FleetServiceClientHelper.CreateClient<UserQueryClient>(sessionid);
return client.GetUserAvatar(useriid);
}
#region user group
@ -515,26 +413,6 @@ namespace IronIntel.Contractor.Users
return result;
}
public static void SaveUserGroups(string userIID, string[] groupids)
{
if (groupids == null) return;//groupids为null表示前端group没有加载不修改用户的Group.
const string SQL_map = "insert into USERGROUPMAP(GROUPID,USERIID) values({0},{1})";
const string SQL_del = "delete from USERGROUPMAP where USERIID={0}";
using (FISqlTransaction tran = new FISqlTransaction(SystemParams.DataDbConnectionString))
{
tran.ExecSQL(SQL_del, userIID);
if (groupids.Length > 0)
{
foreach (string id in groupids)
{
tran.ExecSQL(SQL_map, id, userIID);
}
}
tran.Commit();
}
}
public static void AddGroup(UserGroupInfo gi)
{
const string SQL_group = "insert into USERGROUPS(GROUPID,GROUPNAME,NOTES) values({0},{1},{2})";
@ -555,7 +433,6 @@ namespace IronIntel.Contractor.Users
}
tran.Commit();
}
}
public static void UpdateGroup(UserGroupInfo gi)
@ -643,49 +520,7 @@ namespace IronIntel.Contractor.Users
}
#endregion
#region User Machines/Jobsite
public static void SaveUserMachines(string uid, string[] machineids)
{
const string SQL_D = "delete USERMACHINEMAP where USERIID={0}";
const string SQL = @"insert into USERMACHINEMAP(USERIID,MACHINEID) values ({0},{1})";
FIDbAccess db = SystemParams.GetDbInstance();
db.ExecSQL(SQL_D, uid);
foreach (var mid in machineids)
{
db.ExecSQL(SQL, uid, mid);
}
}
public static void SaveUserJobsites(string uid, string[] jobsiteids)
{
const string SQL_D = "delete USERJOBSITEMAP where USERIID={0}";
const string SQL = @"insert into USERJOBSITEMAP(USERIID,JOBSITEID) values ({0},{1})";
FIDbAccess db = SystemParams.GetDbInstance();
db.ExecSQL(SQL_D, uid);
foreach (var jsid in jobsiteids)
{
db.ExecSQL(SQL, uid, jsid);
}
}
public static void SaveMachineUsers(string machineid, string[] uids, FISqlConnection db = null)
{
const string SQL_D = "delete USERMACHINEMAP where MACHINEID={0}";
const string SQL = @"insert into USERMACHINEMAP(USERIID,MACHINEID) values ({0},{1})";
if (db == null)
db = SystemParams.GetDbInstance();
db.ExecSQL(SQL_D, machineid);
foreach (var uid in uids)
{
db.ExecSQL(SQL, uid, machineid);
}
}
#region User Machines/Jobsite/MachineType/Department/Location
public static UserInfo[] GetUsersByAssetID(string sessionid, long assetid, string companyid)
{
@ -700,6 +535,65 @@ namespace IronIntel.Contractor.Users
return list.ToArray();
}
public static UserInfo[] GetWorkOrderAssignToUsers(string sessionid, string companyid, long assetid, int locid, int depid)
{
if (string.IsNullOrEmpty(companyid))
companyid = SystemParams.CompanyID;
var users = FleetServiceClientHelper.CreateClient<AssetQueryClient>(companyid, sessionid).GetUsersAvailableForAsset(companyid, assetid);
var cusers = FleetServiceClientHelper.CreateClient<AssetDataAdjustClient>(companyid, sessionid).GetAssetContacts(companyid, assetid);
List<Foresight.Fleet.Services.User.UserInfo> allusers = new List<Foresight.Fleet.Services.User.UserInfo>();
if (users != null && users.Length > 0)
allusers.AddRange(users);
if (cusers != null && cusers.Length > 0)
allusers.AddRange(cusers);
string[] depandlocusers = null;
if (locid > 0 || depid > 0)
depandlocusers = FleetServiceClientHelper.CreateClient<UserProfileProvider>(companyid, sessionid).GetUsersByLocAndDep(companyid, locid, depid);
List<UserInfo> list = new List<UserInfo>();
List<string> uids = new List<string>();
foreach (var user in allusers)
{
if (uids.Contains(user.UID))
continue;
if (!user.AssignedWorkOrders && user.ContactType != Foresight.Fleet.Services.User.ContactTypes.Advisor) continue;
if (depandlocusers == null || depandlocusers.Contains(user.UID, StringComparer.OrdinalIgnoreCase))
{
list.Add(ConvertUserItem(user));
uids.Add(user.UID);
}
}
return list.OrderBy(u => u.DisplayName).ToArray();
}
public static UserInfo[] GetUsersByAssets(string sessionid, long[] assetids, string companyid)
{
if (string.IsNullOrEmpty(companyid))
companyid = SystemParams.CompanyID;
var users = FleetServiceClientHelper.CreateClient<AssetQueryClient>(companyid, sessionid).GetUsersAvailableForAssets(companyid, assetids);
List<UserInfo> list = new List<UserInfo>();
foreach (var user in users)
{
list.Add(ConvertUserItem(user));
}
return list.ToArray();
}
public static UserInfo[] GetUsersByJobsiteID(string sessionid, long jsid, string companyid)
{
if (string.IsNullOrEmpty(companyid))
companyid = SystemParams.CompanyID;
var users = FleetServiceClientHelper.CreateClient<AssetQueryClient>(companyid, sessionid).GetUsersAvailableForJobsite(companyid, jsid);
List<UserInfo> list = new List<UserInfo>();
foreach (var user in users)
{
list.Add(ConvertUserItem(user));
}
return list.ToArray();
}
/// <summary>
/// 获取机器对应的ContactID
/// </summary>
@ -864,11 +758,11 @@ namespace IronIntel.Contractor.Users
return list;
}
internal static UserInfoItem[] GetPermissionUsers()
internal static UserInfoItem[] GetPermissionUsers1()
{
List<UserInfoItem> users = new List<UserInfoItem>();
DataTable authenDt = SystemParams.GetDbInstance().GetDataTableBySQL("SELECT * FROM Users");
DataTable authenDt = SystemParams.GetDbInstance().GetDataTableBySQL("select * from Users where isnull(DELETED,0)=0");
string str = "";
for (int i = authenDt.Rows.Count - 1; i >= 0; i--)
@ -890,7 +784,30 @@ namespace IronIntel.Contractor.Users
return users.ToArray();
}
internal static UserPermissionData[] GetUserOrGroupPermission(string UserOrGroup, string objIID, string userIID)
internal static UserInfoItem[] GetPermissionUsers()
{
List<UserInfoItem> ls = new List<UserInfoItem>();
var users = FleetServiceClientHelper.CreateClient<UserQueryClient>(SystemParams.CompanyID, string.Empty).GetUsersByCustomerID(SystemParams.CompanyID, "");
if (users == null || users.Length == 0)
return new UserInfoItem[0];
foreach (var u in users)
{
if (string.Compare(u.ID, "admin", true) == 0 || (int)u.UserType != 1) //EMUserType.Common
continue;
UserInfoItem user = new UserInfoItem();
user.IID = u.UID;
user.ID = u.ID;
user.DisplayName = u.Name;
ls.Add(user);
}
return ls.ToArray();
}
internal static UserPermissionData[] GetUserOrGroupPermission(string UserOrGroup, string objIID, string userIID, string lang)
{
List<UserPermissionData> UserOrGroupPermissionDatas = new List<UserPermissionData>();
@ -910,8 +827,8 @@ namespace IronIntel.Contractor.Users
UserPermissionData upmd = new UserPermissionData();
upmd.FunctionIID = opr.IID;
upmd.IsAllowed = false;
upmd.ManagementFunction = ResManager.GetLanguage(ResManager.GetResourceString(opr.FunctionName));
upmd.Description = ResManager.GetLanguage(ResManager.GetResourceString(opr.Description));
upmd.ManagementFunction = ResManager.GetLanguage(lang, ResManager.GetResourceString(opr.FunctionName));
upmd.Description = ResManager.GetLanguage(lang, ResManager.GetResourceString(opr.Description));
upmd.IsNotPermissionInGroup = true;
UserOrGroupPermissionDatas.Add(upmd);

View File

@ -14,6 +14,7 @@ namespace IronIntel.Contractor.Users
public static class UserParams
{
private const string _AutoRecenterMap = "AutoRecenterMap";
private const string _ShowJSTooltip = "ShowJSTooltip";
private const string _BaseMap = "BaseMap";
private const string _MapViewContratorID = "MapViewContratorID";
private const string _MapAlertLayer = "MapAlertLayer";
@ -26,6 +27,7 @@ namespace IronIntel.Contractor.Users
private const string _UnShownJobsites = "UnShownJobsites";
private const string _UnShownJobsiteMachines = "UnShownJobsiteMachines";
private const string _Onroad = "Onroad";
private const string _Attachment = "Attachment";
private const string _ExcludeNoLocation = "ExcludeNoLocation";
private const string _MapViewSearches = "MapViewSearches";
@ -47,6 +49,9 @@ namespace IronIntel.Contractor.Users
case _AutoRecenterMap:
userParams.AutoRecenterMap = Helper.IsTrue(value);
break;
case _ShowJSTooltip:
userParams.ShowJSTooltip = Helper.IsTrue(value);
break;
case _BaseMap:
userParams.BaseMap = value;
break;
@ -80,6 +85,9 @@ namespace IronIntel.Contractor.Users
case _Onroad:
userParams.Onroad = int.Parse(value);
break;
case _Attachment:
userParams.Attachment = int.Parse(value);
break;
case _ExcludeNoLocation:
userParams.ExcludeNoLocation = int.Parse(value) == 1;
break;
@ -102,6 +110,11 @@ namespace IronIntel.Contractor.Users
else
userParams.MapRefreshInterval = 60;
userParams.MachineIconURL = SystemParams.MachineTypeMapViewIconUrl;
var uc = FleetServiceClientHelper.CreateClient<UserQueryClient>();
userParams.PreferredLanguage = uc.GetUserPreferredLanguageByIID(useriid);
userParams.TimeZone = uc.GetUserTimeZoneByIID(useriid);
return userParams;
}
@ -114,6 +127,7 @@ namespace IronIntel.Contractor.Users
FIDbAccess db = SystemParams.GetDbInstance();
db.ExecSQL(SQL, useriid, _AutoRecenterMap, userParams.AutoRecenterMap ? "true" : "false");
db.ExecSQL(SQL, useriid, _ShowJSTooltip, userParams.ShowJSTooltip ? "true" : "false");
if (!string.IsNullOrEmpty(userParams.BaseMap))
db.ExecSQL(SQL, useriid, _BaseMap, userParams.BaseMap);
@ -170,13 +184,18 @@ namespace IronIntel.Contractor.Users
else
db.ExecSQL(SQL_Delete, useriid, _Onroad);
if (userParams.ExcludeNoLocation)
db.ExecSQL(SQL, useriid, _ExcludeNoLocation, userParams.ExcludeNoLocation ? 1 : 0);
if (userParams.Attachment >= 0)
db.ExecSQL(SQL, useriid, _Attachment, userParams.Attachment);
else
db.ExecSQL(SQL_Delete, useriid, _Attachment);
db.ExecSQL(SQL, useriid, _ExcludeNoLocation, userParams.ExcludeNoLocation ? 1 : 0);
if (!string.IsNullOrEmpty(userParams.LandingPage))
db.ExecSQL(SQL, useriid, _LandingPage, userParams.LandingPage);
else
db.ExecSQL(SQL_Delete, useriid, _LandingPage);
}
public static string GetStringParameter(string useriid, string paramname)
@ -304,6 +323,7 @@ namespace IronIntel.Contractor.Users
public class UserParamInfo
{
public bool AutoRecenterMap { get; set; } = false;
public bool ShowJSTooltip { get; set; } = false;
public string BaseMap { get; set; }
public string MapViewContratorID { get; set; }
public string MapAlertLayer { get; set; }
@ -317,10 +337,13 @@ namespace IronIntel.Contractor.Users
public string[] UnShownJobsites { get; set; }
public string[] UnShownJobsiteMachines { get; set; }
public int Onroad { get; set; } = -1;
public int Attachment { get; set; } = 0;
public bool ExcludeNoLocation { get; set; } = true;
public MapViewSearchItem[] MapViewSearches { get; set; }
public string LandingPage { get; set; }
public string PreferredLanguage { get; set; }
public string TimeZone { get; set; }
}
public class MapViewSearcheHelper
@ -355,6 +378,8 @@ namespace IronIntel.Contractor.Users
item.IsDefault = Helper.IsTrue(ch.InnerText);
else if (string.Compare(ch.Name, "Onroad", true) == 0)
item.Onroad = Convert.ToInt32(ch.InnerText);
else if (string.Compare(ch.Name, "Attachment", true) == 0)
item.Attachment = Convert.ToInt32(ch.InnerText);
else if (string.Compare(ch.Name, "AssetDefaultSearch", true) == 0)
item.AssetDefaultSearch = ch.InnerText;
else if (string.Compare(ch.Name, "JobSiteDefaultSearch", true) == 0)
@ -392,6 +417,7 @@ namespace IronIntel.Contractor.Users
if (!string.IsNullOrEmpty(search.AssetGroupDefaultSearch))
AddSubNode(sn, "AssetGroupDefaultSearch", search.AssetGroupDefaultSearch);
AddSubNode(sn, "Onroad", search.Onroad.ToString());
AddSubNode(sn, "Attachment", search.Attachment.ToString());
AddSubNode(sn, "ExcludeNoLocation", search.ExcludeNoLocation ? "1" : "0");
if (search.UnShownMachines != null && search.UnShownMachines.Length > 0)
AddSubNode(sn, "UnShownMachines", string.Join(",", search.UnShownMachines));
@ -422,6 +448,7 @@ namespace IronIntel.Contractor.Users
public bool IsDefault { get; set; }
public int Onroad { get; set; } = -1;
public int Attachment { get; set; } = 0;
public string AssetDefaultSearch { get; set; } = "";
public string JobSiteDefaultSearch { get; set; } = "";
public string AssetGroupDefaultSearch { get; set; } = "";