2020-05-25 17:52:17 +08:00

184 lines
7.8 KiB
C#

using Foresight.Fleet.Services.User;
using Foresight.ServiceModel;
using IronIntel.Services;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IronIntel.Contractor.Site.Maintenance
{
public class MaintenanceBasePage : 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 MaintenanceNavigateItem[] GetNavigations()
{
List<MaintenanceNavigateItem> list = GetNavigateItems();
LicenseInfo license = SystemParams.GetLicense();
if (license != null && license.Items.Count > 0)
{
var alitem = license.Items.FirstOrDefault(m => m.Key == "AlertsManagement");
if (alitem == null || !Helper.IsTrue(alitem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_alertsmanagement");
list.Remove(item);
}
var woitem = license.Items.FirstOrDefault(m => m.Key == "WorkOrder");
if (woitem == null || !Helper.IsTrue(woitem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_workorder");
list.Remove(item);
}
var fuelitem = license.Items.FirstOrDefault(m => m.Key == "FuelRecords");
if (fuelitem == null || !Helper.IsTrue(fuelitem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_fuelrecord");
list.Remove(item);
}
}
var user = GetCurrentUser();
if (user.UserType == Users.UserTypes.Common)
{
var client = FleetServiceClientHelper.CreateClient<PermissionProvider>();
Tuple<Feature, Permissions>[] pmss = client.GetUserPermissions(SystemParams.CompanyID, user.IID);
if (pmss.Length > 0)
{
Tuple<Feature, Permissions> alertpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.ALERTS_MANAGEMENT);
if (alertpm == null)
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_alertsmanagement");
list.Remove(item);
}
Tuple<Feature, Permissions> wopm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.WORK_ORDER);
if (wopm == null)
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_workorder");
list.Remove(item);
}
Tuple<Feature, Permissions> pmpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE);
if (pmpm == null)
{
MaintenanceNavigateItem item1 = list.FirstOrDefault(m => m.ID == "nav_preventative");
list.Remove(item1);
MaintenanceNavigateItem item2 = list.FirstOrDefault(m => m.ID == "nav_timebased");
list.Remove(item2);
MaintenanceNavigateItem item3 = list.FirstOrDefault(m => m.ID == "nav_hours");
list.Remove(item3);
MaintenanceNavigateItem item4 = list.FirstOrDefault(m => m.ID == "nav_absolutedistance");
list.Remove(item4);
MaintenanceNavigateItem item5 = list.FirstOrDefault(m => m.ID == "nav_relativedistance");
list.Remove(item5);
MaintenanceNavigateItem item6 = list.FirstOrDefault(m => m.ID == "nav_record");
list.Remove(item6);
}
Tuple<Feature, Permissions> fuelpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.FUEL_RECORDS);
if (fuelpm == null)
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_fuelrecord");
list.Remove(item);
}
}
}
return list.ToArray();
}
private static List<MaintenanceNavigateItem> GetNavigateItems()
{
List<MaintenanceNavigateItem> list = new List<MaintenanceNavigateItem>();
MaintenanceNavigateItem item1 = new MaintenanceNavigateItem();
item1.ID = "nav_alertsmanagement";
item1.Title = "Alerts Management **New**";
item1.Url = "AlertsManagement.aspx";
item1.IconPath = "img/alert.png";
list.Add(item1);
MaintenanceNavigateItem item6 = new MaintenanceNavigateItem();
item6.ID = "nav_workorder";
item6.Title = "Work Order **New**";
item6.Url = "WorkOrderMaintenance.aspx";
item6.IconPath = "img/workorder.png";
list.Add(item6);
MaintenanceNavigateItem item3 = new MaintenanceNavigateItem();
item3.ID = "nav_preventative";
item3.Title = "Absolute Hours Maintenance";
item3.Url = "PreventativeMaintenance.aspx";
item3.IconPath = "img/preventative.png";
list.Add(item3);
MaintenanceNavigateItem item4 = new MaintenanceNavigateItem();
item4.ID = "nav_timebased";
item4.Title = "Relative Time Maintenance";
item4.Url = "TimeBasedMaintenance.aspx";
item4.IconPath = "img/timebased.png";
list.Add(item4);
MaintenanceNavigateItem item7 = new MaintenanceNavigateItem();
item7.ID = "nav_hours";
item7.Title = "Relative Hours Maintenance";
item7.Url = "HoursMaintenance.aspx";
item7.IconPath = "img/hours.png";
list.Add(item7);
MaintenanceNavigateItem item5 = new MaintenanceNavigateItem();
item5.ID = "nav_absolutedistance";
item5.Title = "Absolute Distance Maintenance";
item5.Url = "AbsoluteDistanceMaintenance.aspx";
item5.IconPath = "img/preventative.png";
list.Add(item5);
MaintenanceNavigateItem item8 = new MaintenanceNavigateItem();
item8.ID = "nav_relativedistance";
item8.Title = "Relative Distance Maintenance";
item8.Url = "RelativeDistanceMaintenance.aspx";
item8.IconPath = "img/hours.png";
list.Add(item8);
MaintenanceNavigateItem item2 = new MaintenanceNavigateItem();
item2.ID = "nav_record";
item2.Title = "Maintenance Record **Legacy**";
item2.Url = "MaintanceRecordsManagement.aspx";
item2.IconPath = "img/record.png";
list.Add(item2);
MaintenanceNavigateItem item9 = new MaintenanceNavigateItem();
item9.ID = "nav_fuelrecord";
item9.Title = "Fuel Records";
item9.Url = "FuelRecordManagement.aspx";
item9.IconPath = "img/fuelrecord.png";
list.Add(item9);
return list;
}
public class MaintenanceNavigateItem
{
public string ID { get; set; }
public string Title { get; set; }
public string Url { get; set; }
public string IconPath { get; set; }
}
}
}