using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; using IronIntel.Contractor.Users; using Newtonsoft.Json; namespace IronIntel.Contractor.Site.Security { public class UserToContractorPage : ContractorBasePage { public const char splitChar = (char)170; protected void ProcessRequest(string methodName) { if (methodName != null) { switch (methodName.ToUpper()) { case "GETUSERS": GetUsers(); break; case "GETGROUPS": GetGroups(); break; case "GETCONTRACTORS": GetContractors(); break; case "SAVECONTRACTOR": SaveContractor(); 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; } private void GetUsers() { string json = ""; var users = UserManagement.GetUnmanagementUsers().OrderBy(u => u.DisplayName).ToArray(); json = JsonConvert.SerializeObject(users); Response.Write(json); Response.End(); } private void GetGroups() { string json = ""; var groups = UserManagement.GetGroups().OrderBy(u => u.Name).ToArray(); json = JsonConvert.SerializeObject(groups); Response.Write(json); Response.End(); } private void GetContractors() { string iid = Request.Params["uiid"] == null ? string.Empty : Request.Params["uiid"]; int flag = Int32.Parse(Request.Params["Flag"]); string json = ""; UserToContractorInfo[] contractors = UserManagement.GetContractorsByIId(iid, flag); var cntractrssort = contractors.OrderBy(c => c.Name).ToArray(); json = JsonConvert.SerializeObject(cntractrssort); Response.Write(json); Response.End(); } private void SaveContractor() { string iid = Request.Params["id"]; string contractorstr = Request.Params["contractors"]; string[] contractors = JsonConvert.DeserializeObject(contractorstr); for (int i = 0; i < contractors.Length; i++) { contractors[i] = HttpUtility.UrlDecode(contractors[i]); } UserManagement.AddUserToContractor(iid, contractors); Response.Write("Save contractors info successfully."); Response.End(); } } }