protected bool update_user_confidentialities(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } List <KeyValuePair <string, int> > exItems = new List <KeyValuePair <string, int> >(); XmlNodeList authors = doc.GetElementsByTagName("Item"); foreach (XmlNode a in authors) { string un = a.Attributes["username"] == null ? null : PublicMethods.verify_string(a.Attributes["username"].Value.Trim()); int?lId = a.Attributes["levelid"] == null ? null : PublicMethods.parse_int(a.Attributes["levelid"].Value.Trim()); if (!string.IsNullOrEmpty(un) && lId.HasValue && lId.Value > 0) { exItems.Add(new KeyValuePair <string, int>(un, lId.Value)); } } bool result = true; PublicMethods.split_list <KeyValuePair <string, int> >(exItems, 200, items => { result = DEController.update_user_confidentialities(paramsContainer.Tenant.Id, paramsContainer.CurrentUserID.Value, items); }); return(result); }
protected bool remove_nodes(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } List <KeyValuePair <string, string> > exNodes = new List <KeyValuePair <string, string> >(); XmlNodeList nodes = doc.GetElementsByTagName("Node"); foreach (XmlNode _nd in nodes) { string typeId = _nd.Attributes["typeid"] == null || _nd.Attributes["typeid"].ToString() == string.Empty ? null : PublicMethods.verify_string(_nd.Attributes["typeid"].Value.Trim()); string id = _nd.Attributes["id"] == null || _nd.Attributes["id"].ToString() == string.Empty ? null : PublicMethods.verify_string(_nd.Attributes["id"].Value.Trim()); if (!string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(typeId) && !exNodes.Any(n => n.Value == typeId)) { exNodes.Add(new KeyValuePair <string, string>(typeId, id)); } } bool result = true; PublicMethods.split_list <KeyValuePair <string, string> >(exNodes, 200, items => { result = DEController.remove_nodes(paramsContainer.Tenant.Id, paramsContainer.CurrentUserID.Value, items); }); return(result); }
protected bool update_nodes(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } string nodeType = PublicMethods.verify_string(doc.DocumentElement.Attributes["nodetype"].Value); List <ExchangeNode> exNodes = new List <ExchangeNode>(); XmlNodeList nodes = doc.GetElementsByTagName("Node"); foreach (XmlNode _nd in nodes) { string tags = _nd.Attributes["tags"] == null || _nd.Attributes["tags"].ToString() == string.Empty ? null : _nd.Attributes["tags"].Value.Trim(); if (!string.IsNullOrEmpty(tags)) { tags = tags.Replace('-', '~').Replace(';', '~').Replace(',', '~'); } ExchangeNode newNode = new ExchangeNode() { Name = _nd.Attributes["name"] == null ? null : _nd.Attributes["name"].Value.Trim(), AdditionalID = _nd.Attributes["id"] == null || _nd.Attributes["id"].ToString() == string.Empty ? null : PublicMethods.verify_string(_nd.Attributes["id"].Value.Trim()), ParentAdditionalID = _nd.Attributes["parentid"] == null || _nd.Attributes["parentid"].ToString() == string.Empty ? null : PublicMethods.verify_string(_nd.Attributes["parentid"].Value.Trim()), Abstract = _nd.Attributes["abstract"] == null || _nd.Attributes["abstract"].ToString() == string.Empty ? null : _nd.Attributes["abstract"].Value.Trim(), Tags = tags }; if (string.IsNullOrEmpty(newNode.AdditionalID) || !exNodes.Any( u => !string.IsNullOrEmpty(u.AdditionalID) && u.AdditionalID.ToLower() == newNode.AdditionalID.ToLower())) { exNodes.Add(newNode); } } exNodes = ExchangeNode.sort_nodes_based_on_parents(exNodes); bool result = true; PublicMethods.split_list <ExchangeNode>(exNodes, 200, nds => { List <Guid> newNodeIds = new List <Guid>(); result = DEController.update_nodes(paramsContainer.Tenant.Id, nds, null, nodeType, paramsContainer.CurrentUserID.Value, ref newNodeIds); }); return(result); }
private static void update_users(Guid applicationId) { try { string res = CallWebService.CallWebMethod("http://wsrefahicard.isfahan.ir/RefahService.asmx", "GetknowledgemanagementEmployeeWithArg", "knowledgemanagement", "EmpknowledgemanageWebService@128", new Dictionary <string, string>()); XmlDocument doc = new XmlDocument(); doc.LoadXml(res); XmlNodeList nodes = doc.GetElementsByTagName("Personel"); List <ExchangeUser> users = new List <ExchangeUser>(); foreach (XmlNode nd in nodes) { string un = nd.SelectSingleNode("MelliCode").InnerText.Trim(); if (!string.IsNullOrEmpty(un)) { string pass = un; while (pass.Length < 5) { pass += un; } users.Add(new ExchangeUser() { //UserName = nd.SelectSingleNode("empno").InnerText.Trim(), UserName = un, FirstName = PublicMethods.verify_string(nd.SelectSingleNode("Name").InnerText.Trim()), LastName = PublicMethods.verify_string(nd.SelectSingleNode("Family").InnerText.Trim()), Password = new Password(pass) }); } } for (int i = 0; i < users.Count;) { List <ExchangeUser> exLst = new List <ExchangeUser>(); for (int j = 0; j < 200 && i < users.Count; ++j) { exLst.Add(users[i++]); } DEController.update_users(applicationId, exLst); } } catch (Exception ex) { LogController.save_error_log(applicationId, null, "job_updateusers_esf_webservice", ex, ModuleIdentifier.Jobs); } }
protected bool update_members(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } List <ExchangeMember> exMembers = new List <ExchangeMember>(); List <string> usernames = new List <string>(); XmlNodeList members = doc.GetElementsByTagName("Member"); foreach (XmlNode _mbr in members) { ExchangeMember mm = new ExchangeMember() { NodeTypeAdditionalID = _mbr.Attributes["nodetypeid"] == null ? null : PublicMethods.verify_string(_mbr.Attributes["nodetypeid"].Value.Trim()), NodeAdditionalID = _mbr.Attributes["nodeid"] == null ? null : PublicMethods.verify_string(_mbr.Attributes["nodeid"].Value.Trim()), UserName = _mbr.Attributes["username"] == null ? null : PublicMethods.verify_string(_mbr.Attributes["username"].Value.Trim()), IsAdmin = _mbr.Attributes["isadmin"] != null && _mbr.Attributes["isadmin"].Value.Trim().ToLower() == "true" }; Guid nodeId = Guid.Empty; if (string.IsNullOrEmpty(mm.NodeTypeAdditionalID) && Guid.TryParse(mm.NodeAdditionalID, out nodeId)) { mm.NodeID = nodeId; } exMembers.Add(mm); } bool result = true; PublicMethods.split_list <ExchangeMember>(exMembers, 200, items => { result = DEController.update_members(paramsContainer.Tenant.Id, items); }); return(result); }
protected bool update_experts(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } List <ExchangeMember> exExperts = new List <ExchangeMember>(); List <string> usernames = new List <string>(); XmlNodeList experts = doc.GetElementsByTagName("Expert"); foreach (XmlNode _xprt in experts) { ExchangeMember ex = new ExchangeMember() { NodeTypeAdditionalID = _xprt.Attributes["nodetypeid"] == null ? null : PublicMethods.verify_string(_xprt.Attributes["nodetypeid"].Value.Trim()), NodeAdditionalID = _xprt.Attributes["nodeid"] == null ? null : PublicMethods.verify_string(_xprt.Attributes["nodeid"].Value.Trim()), UserName = _xprt.Attributes["username"] == null ? null : PublicMethods.verify_string(_xprt.Attributes["username"].Value.Trim()) }; Guid nodeId = Guid.Empty; if (string.IsNullOrEmpty(ex.NodeTypeAdditionalID) && Guid.TryParse(ex.NodeAdditionalID, out nodeId)) { ex.NodeID = nodeId; } exExperts.Add(ex); } bool result = true; PublicMethods.split_list <ExchangeMember>(exExperts, 200, items => { result = DEController.update_experts(paramsContainer.Tenant.Id, items); }); return(result); }
protected bool update_relations(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } List <ExchangeRelation> exRelations = new List <ExchangeRelation>(); XmlNodeList relations = doc.GetElementsByTagName("Relation"); foreach (XmlNode r in relations) { ExchangeRelation rel = new ExchangeRelation() { SourceTypeAdditionalID = r.Attributes["nodetypeid"] == null ? null : PublicMethods.verify_string(r.Attributes["nodetypeid"].Value.Trim()), SourceAdditionalID = r.Attributes["nodeid"] == null ? null : PublicMethods.verify_string(r.Attributes["nodeid"].Value.Trim()), DestinationTypeAdditionalID = r.Attributes["relatednodetypeid"] == null ? null : PublicMethods.verify_string(r.Attributes["relatednodetypeid"].Value.Trim()), DestinationAdditionalID = r.Attributes["relatedid"] == null ? null : PublicMethods.verify_string(r.Attributes["relatedid"].Value.Trim()), Bidirectional = false //r.Attributes["bidirectional"] == null ? false : r.Attributes["bidirectional"].Value.ToLower() == "true" }; exRelations.Add(rel); } bool result = true; PublicMethods.split_list <ExchangeRelation>(exRelations, 200, items => { result = DEController.update_relations(paramsContainer.Tenant.Id, paramsContainer.CurrentUserID.Value, items); }); return(result); }
protected bool update_permissions(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } List <ExchangePermission> exDropAll = new List <ExchangePermission>(); List <ExchangePermission> exPermissions = new List <ExchangePermission>(); XmlNodeList items = doc.GetElementsByTagName("Item"); foreach (XmlNode a in items) { PermissionType pt = PermissionType.None; if (a.Attributes["permission"] != null) { Enum.TryParse <PermissionType>(a.Attributes["permission"].Value.Trim(), out pt); } bool?deny = a.Attributes["deny"] == null ? null : PublicMethods.parse_bool(a.Attributes["deny"].Value.Trim()); bool?dropAll = a.Attributes["drop_all"] == null ? null : PublicMethods.parse_bool(a.Attributes["drop_all"].Value.Trim()); ExchangePermission item = new ExchangePermission() { NodeTypeAdditionalID = a.Attributes["nodetypeid"] == null ? null : PublicMethods.verify_string(a.Attributes["nodetypeid"].Value.Trim()), NodeAdditionalID = a.Attributes["nodeid"] == null ? null : PublicMethods.verify_string(a.Attributes["nodeid"].Value.Trim()), GroupTypeAdditionalID = a.Attributes["grouptypeid"] == null ? null : PublicMethods.verify_string(a.Attributes["grouptypeid"].Value.Trim()), GroupAdditionalID = a.Attributes["groupid"] == null ? null : PublicMethods.verify_string(a.Attributes["groupid"].Value.Trim()), UserName = a.Attributes["username"] == null ? null : PublicMethods.verify_string(a.Attributes["username"].Value.Trim()), PermissionType = pt, Allow = !deny.HasValue || !deny.Value }; if (!string.IsNullOrEmpty(item.NodeTypeAdditionalID) && !string.IsNullOrEmpty(item.NodeAdditionalID)) { if (dropAll.HasValue && dropAll.Value) { exDropAll.Add(new ExchangePermission() { NodeTypeAdditionalID = item.NodeTypeAdditionalID, NodeAdditionalID = item.NodeAdditionalID, DropAll = dropAll }); } bool valid = !string.IsNullOrEmpty(item.GroupTypeAdditionalID) && !string.IsNullOrEmpty(item.GroupAdditionalID); valid = valid || !string.IsNullOrEmpty(item.UserName); valid = valid && item.PermissionType != PermissionType.None; if (valid) { exPermissions.Add(item); } } } bool result = true; PublicMethods.split_list <ExchangePermission>(exDropAll, 200, lst => { result = DEController.update_permissions(paramsContainer.Tenant.Id, paramsContainer.CurrentUserID.Value, lst); }); PublicMethods.split_list <ExchangePermission>(exPermissions, 200, lst => { result = DEController.update_permissions(paramsContainer.Tenant.Id, paramsContainer.CurrentUserID.Value, lst); }); return(result); }
protected bool update_authors(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } List <ExchangeAuthor> exAuthors = new List <ExchangeAuthor>(); XmlNodeList authors = doc.GetElementsByTagName("Author"); foreach (XmlNode a in authors) { ExchangeAuthor item = new ExchangeAuthor() { NodeTypeAdditionalID = a.Attributes["nodetypeid"] == null ? null : PublicMethods.verify_string(a.Attributes["nodetypeid"].Value.Trim()), NodeAdditionalID = a.Attributes["nodeid"] == null ? null : PublicMethods.verify_string(a.Attributes["nodeid"].Value.Trim()), UserName = a.Attributes["username"] == null ? null : PublicMethods.verify_string(a.Attributes["username"].Value.Trim()), Percentage = a.Attributes["percentage"] == null ? null : PublicMethods.parse_int(a.Attributes["percentage"].Value.Trim()) }; if (!string.IsNullOrEmpty(item.NodeTypeAdditionalID) && !string.IsNullOrEmpty(item.NodeAdditionalID) && !string.IsNullOrEmpty(item.UserName) && item.Percentage.HasValue && item.Percentage > 0 && item.Percentage <= 100 && !exAuthors.Any(u => u.NodeTypeAdditionalID.ToLower() == item.NodeTypeAdditionalID.ToLower() && u.NodeAdditionalID.ToLower() == item.NodeAdditionalID.ToLower() && u.UserName.ToLower() == item.UserName.ToLower())) { exAuthors.Add(item); } } exAuthors = ExchangeAuthor.sort_items(exAuthors); int SIZE = 200; bool result = true; while (exAuthors.Count > 0) { List <ExchangeAuthor> newItems = exAuthors.Take(Math.Min(exAuthors.Count, SIZE)).ToList(); ExchangeAuthor lastItem = newItems[newItems.Count - 1]; exAuthors.RemoveRange(0, newItems.Count); List <ExchangeAuthor> additionalItems = exAuthors.TakeWhile( u => u.NodeTypeAdditionalID.ToLower() == lastItem.NodeTypeAdditionalID.ToLower() && u.NodeAdditionalID.ToLower() == lastItem.NodeAdditionalID.ToLower()).ToList(); if (additionalItems.Count > 0) { newItems.AddRange(additionalItems); exAuthors.RemoveRange(0, additionalItems.Count); } result = DEController.update_authors(paramsContainer.Tenant.Id, paramsContainer.CurrentUserID.Value, newItems); } return(result); }
protected bool update_users(ref XmlDocument doc) { if (!paramsContainer.GBEdit) { return(false); } List <ExchangeUser> exUsers = new List <ExchangeUser>(); List <string> usernames = new List <string>(); XmlNodeList users = doc.GetElementsByTagName("User"); foreach (XmlNode _usr in users) { ExchangeUser eu = new ExchangeUser() { UserName = _usr.Attributes["username"] == null ? null : PublicMethods.verify_string(_usr.Attributes["username"].Value.Trim()), NewUserName = _usr.Attributes["newusername"] == null ? null : PublicMethods.verify_string(_usr.Attributes["newusername"].Value.Trim()), FirstName = _usr.Attributes["firstname"] == null ? null : _usr.Attributes["firstname"].Value.Trim(), LastName = _usr.Attributes["lastname"] == null ? null : _usr.Attributes["lastname"].Value.Trim(), DepartmentID = _usr.Attributes["departmentid"] == null ? null : _usr.Attributes["departmentid"].Value.Trim() }; if (!string.IsNullOrEmpty(eu.UserName) && eu.UserName.ToLower() == "admin") { eu.NewUserName = null; } if (string.IsNullOrEmpty(eu.UserName) || exUsers.Any(u => u.UserName.ToLower() == eu.UserName.ToLower())) { continue; } EmploymentType empType = EmploymentType.NotSet; if (_usr.Attributes["employmenttype"] == null || !Enum.TryParse <EmploymentType>(_usr.Attributes["employmenttype"].Value.Trim(), out empType)) { empType = EmploymentType.NotSet; } eu.EmploymentType = empType; if (_usr.Attributes["ismanager"] != null) { eu.IsManager = PublicMethods.parse_bool(_usr.Attributes["ismanager"].Value); } if (_usr.Attributes["resetpassword"] != null) { eu.ResetPassword = PublicMethods.parse_bool(_usr.Attributes["resetpassword"].Value); } if (eu.NewUserName == eu.UserName) { eu.NewUserName = null; } string password = eu.UserName; while (password.Length < 5) { password += eu.UserName; } eu.Password = new Password(password); exUsers.Add(eu); } bool result = true; PublicMethods.split_list <ExchangeUser>(exUsers, 200, items => { result = DEController.update_users(paramsContainer.Tenant.Id, items); }); return(result); }
private static void update_projects(Guid applicationId, string from, string to) { try { string projectTypeAddId = "2"; Dictionary <string, string> parameters = new Dictionary <string, string>(); string username = @"sigma\knowledgetosigma"; string password = "******"; parameters["p1"] = "knowledgePrjList"; parameters["From"] = from; parameters["To"] = to; BasicHttpBinding binding = new BasicHttpBinding(); EndpointAddress address = new EndpointAddress("http://sigma.isfahan.ir/_layouts/15/ahdaUtility15/ahdaUtility15.asmx?op=QuerySQL2"); binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm; binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None; binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName; binding.MessageEncoding = WSMessageEncoding.Text; binding.TextEncoding = Encoding.UTF8; binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly; binding.MaxReceivedMessageSize = 10000000; EsfahanProjects.ahdaUtility15SoapClient client = new EsfahanProjects.ahdaUtility15SoapClient(binding, address); client.ClientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential(username, password); client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Delegation; XmlNode res = client.QuerySQL2(parameters["p1"], parameters["From"], parameters["To"]); XmlNodeList nodes = res.SelectNodes("item"); List <ExchangeNode> exNodes = new List <ExchangeNode>(); Dictionary <string, bool> ids = new Dictionary <string, bool>(); foreach (XmlNode nd in nodes) { string id = nd.SelectSingleNode("ProjectCode").InnerText.Trim(); string title = nd.SelectSingleNode("Title").InnerText.Trim(); if (!string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(title) && !exNodes.Any(u => u.AdditionalID == id)) { exNodes.Add(new ExchangeNode() { AdditionalID = id, Name = title }); } } if (exNodes.Count == 0) { return; } PublicMethods.split_list <ExchangeNode>(exNodes, 200, lst => { List <Guid> nIds = new List <Guid>(); DEController.update_nodes(applicationId, lst, null, projectTypeAddId, Guid.Parse("6B9E8414-C1EA-4E59-8AA8-34B4BCEB74E7"), ref nIds); }); //Save Log LogController.save_error_log(applicationId, null, "job_update_projects_esf_webservice", "From: " + from + ", To: " + to + ", Count: " + exNodes.Count.ToString(), ModuleIdentifier.Jobs, LogLevel.Trace); //end of Save Log } catch (Exception ex) { LogController.save_error_log(applicationId, null, "job_update_projects_esf_webservice", ex, ModuleIdentifier.Jobs); } }
private static void update_chart(Guid applicationId) { try { string depTypeAddId = "6"; string res = CallWebService.CallWebMethod("http://wsrefahicard.isfahan.ir/RefahService.asmx", "GetknowledgeManagementEmpChartWithArg", "knowledgemanagement", "EmpknowledgemanageWebService@128", new Dictionary <string, string>()); XmlDocument doc = new XmlDocument(); doc.LoadXml(res); XmlNodeList nodes = doc.GetElementsByTagName("Personel"); List <ExchangeNode> exNodes = new List <ExchangeNode>(); List <ExchangeMember> exMembers = new List <ExchangeMember>(); Dictionary <string, bool> ids = new Dictionary <string, bool>(); foreach (XmlNode nd in nodes) { string id = nd.SelectSingleNode("ChartId").InnerText.Trim(); string parentId = nd.SelectSingleNode("parentid").InnerText.Trim(); string title = nd.SelectSingleNode("title").InnerText.Trim(); string username = nd.SelectSingleNode("melicode").InnerText.Trim(); string isAdmin = nd.SelectSingleNode("IsManagement").InnerText.Trim(); long val = 0; if (!long.TryParse(id, out val) || val <= 0) { id = null; } if (!long.TryParse(parentId, out val) || val <= 0) { parentId = null; } if (!long.TryParse(username, out val) || val <= 0) { username = string.Empty; } if (!long.TryParse(isAdmin, out val) || val <= 0) { isAdmin = string.Empty; } if (!string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(title) && !exNodes.Any(u => u.AdditionalID == id)) { exNodes.Add(new ExchangeNode() { AdditionalID = id, ParentAdditionalID = parentId, Name = title }); } if (!string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(username) && !exMembers.Any(u => u.NodeAdditionalID == id && u.UserName == username)) { exMembers.Add(new ExchangeMember() { NodeTypeAdditionalID = depTypeAddId, NodeAdditionalID = id, UserName = username, IsAdmin = !string.IsNullOrEmpty(isAdmin) && isAdmin != "0" }); } } List <Guid> nIds = new List <Guid>(); DEController.update_nodes(applicationId, exNodes, null, depTypeAddId, Guid.Parse("6B9E8414-C1EA-4E59-8AA8-34B4BCEB74E7"), ref nIds); for (int i = 0; i < exMembers.Count;) { List <ExchangeMember> exLst = new List <ExchangeMember>(); for (int j = 0; j < 200 && i < exMembers.Count; ++j) { exLst.Add(exMembers[i++]); } DEController.update_members(applicationId, exLst); } } catch (Exception ex) { LogController.save_error_log(applicationId, null, "job_update_dep_and_members_esf_webservice", ex, ModuleIdentifier.Jobs); } }
private static void update_users(Guid applicationId) { string nodeTypeAdditionalId = "2246"; //کد کلاس مناطق Guid? nodeTypeId = CNController.get_node_type_id(applicationId, nodeTypeAdditionalId); if (!nodeTypeId.HasValue) { return; } Dictionary <string, string> codes = new Dictionary <string, string>(); //Key: HRIS Code, Value: RaaiVan AdditionalID codes["83"] = "10028"; //منطقه کرمانشاه codes["76"] = "10035"; //منطقه هرمزگان codes["17"] = "10030"; //منطقه گلستان codes["44"] = "10012"; //منطقه آذربایجان غربی codes["63"] = "10019"; //منطقه خوزستان codes["35"] = "10037"; //منطقه یزد codes["86"] = "10034"; //منطقه مرکزی codes["34"] = "10027"; //منطقه کرمان codes["45"] = "10006"; //منطقه اردبیل codes["77"] = "10013"; //منطقه بوشهر codes["25"] = "10025"; //منطقه قم codes["24"] = "10020"; //منطقه زنجان codes["13"] = "10031"; //منطقه گیلان codes["38"] = "10015"; //منطقه چهار محال و بختیاری codes["15"] = "10033"; //منطقه مازندران codes["41"] = "10010"; //منطقه آذربایجان شرقی codes["56"] = "10016"; //منطقه خراسان جنوبی codes["23"] = "10021"; //منطقه سمنان codes["31"] = "10007"; //منطقه اصفهان codes["54"] = "10022"; //منطقه سیستان و بلوچستان codes["10"] = "10003"; //شرکت مخابرات ایران codes["58"] = "10018"; //منطقه خراسان شمالی codes["87"] = "10026"; //منطقه کردستان codes["28"] = "10024"; //منطقه قزوین codes["66"] = "10032"; //منطقه لرستان codes["81"] = "10036"; //منطقه همدان codes["84"] = "10009"; //منطقه ایلام codes["74"] = "10029"; //منطقه کهگیلویه و بویراحمد codes["51"] = "10017"; //منطقه خراسان رضوی codes["71"] = "10023"; //منطقه فارس codes["92"] = "10005"; //شرکت مدیریت املاک( سامان سازه غدیر) codes["21"] = "10014"; //منطقه تهران /* * codes[""] = "10008"; //منطقه البرز * codes[""] = "10001"; //شرکت گسترش خدمات ارتباطات کاراشاب */ codes.Keys.ToList().ForEach(key => { List <ExchangeUser> users = get_useres(applicationId, key); if (users.Count == 0) { return; } Guid nodeId = CNController.get_node_id(applicationId, codes[key], nodeTypeId.Value); if (nodeId == Guid.Empty) { return; } List <NodeMember> admins = CNController.get_members(applicationId, nodeId, null, true); List <ExchangeMember> members = new List <ExchangeMember>(); users.ForEach(u => members.Add(new ExchangeMember() { NodeTypeAdditionalID = nodeTypeAdditionalId, NodeAdditionalID = codes[key], UserName = u.UserName, IsAdmin = admins.Any(m => m.Member.UserName.ToLower() == u.UserName.ToLower()) })); PublicMethods.split_list <ExchangeUser>(users, 200, items => { DEController.update_users(applicationId, items); }, 2000); PublicMethods.split_list <ExchangeMember>(members, 200, items => { DEController.update_members(applicationId, items); }, 2000); //Save Log LogController.save_error_log(applicationId, null, "update_users_with_hris", "Code: " + key + ", Count: " + members.Count.ToString(), ModuleIdentifier.Jobs, LogLevel.Trace); //end of Save Log }); }