Пример #1
0
        public void syncManagerAccess(string token, List <UserRootObject> userList)
        {
            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Archer", "session-id=" + token);

            HttpResponseMessage response = _client.GetAsync("core/system/rolemembership").Result;

            response.EnsureSuccessStatusCode();
            var resultStr = response.Content.ReadAsStringAsync().Result;
            var result    = response.Content.ReadAsAsync <List <UserAccessRootObject> >().Result;

            //Get only updated users list from SyncUsers and update only those contacts
            //HashSet<int> commonUsers = new HashSet<int>(userList.Select(s => s.RequestedObject.Id));
            //var results = result.Where(m => commonUsers.Contains(m.RequestedObject.UserIds)).ToList();

            foreach (UserAccessRootObject user in result.Where((u) => u.RequestedObject.RoleId == 74))
            {
                if (user.RequestedObject.UserIds != null && user.RequestedObject.UserIds.Count > 0)
                {
                    foreach (var id in user.RequestedObject.UserIds)
                    {
                        List <SqlParameter> sqlParamters = new List <SqlParameter>()
                        {
                            new SqlParameter("@Id", id)
                        };

                        SQLAdapter.ExecuteSPWithoutReturnValue("Marathon", "rsa.SyncManagerAccess", sqlParamters);
                    }
                }
            }
        }
Пример #2
0
        public List <UserRootObject> SyncUsers(int jobId, string token)
        {
            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Archer", "session-id=" + token);

            HttpResponseMessage response = _client.GetAsync("core/system/user").Result;

            response.EnsureSuccessStatusCode();
            //var resultStr = response.Content.ReadAsStringAsync().Result;
            var result = response.Content.ReadAsAsync <List <UserRootObject> >().Result;
            List <UserRootObject> lastupdatedUsers = new List <UserRootObject>();

            //get only updated users since the job last run date & time
            var jobLastRuNDate = SQLAdapter.GetDatasyncLastRunDateTime(jobId);

            if (jobLastRuNDate != null && jobLastRuNDate != DateTime.MinValue)
            {
                if (result.Any(a => a.RequestedObject.UpdateInformation.UpdateDate >= jobLastRuNDate))
                {
                    //lastupdatedUsers = (List<UserRootObject>)result.Where(a => a.RequestedObject.UpdateInformation.UpdateDate >= jobLastRuNDate);
                    lastupdatedUsers = result.Where(a => a.RequestedObject.UpdateInformation.UpdateDate >= jobLastRuNDate).ToList <UserRootObject>();
                }
            }
            else
            {
                lastupdatedUsers = result;
            }

            foreach (UserRootObject user in lastupdatedUsers)
            {
                List <SqlParameter> sqlParamters = new List <SqlParameter>()
                {
                    new SqlParameter("@Id", user.RequestedObject.Id),
                    new SqlParameter("@FirstName", user.RequestedObject.FirstName),
                    new SqlParameter("@LastName", user.RequestedObject.LastName),
                    new SqlParameter("@Company", user.RequestedObject.Company != null? user.RequestedObject.Company: ""),
                    new SqlParameter("@Title", user.RequestedObject.Title != null? user.RequestedObject.Title: "")
                };

                SQLAdapter.ExecuteSPWithoutReturnValue("Marathon", "rsa.SyncResource", sqlParamters);
            }

            //SyncUserContacts

            //foreach (UserRootObject user in result)
            //{
            //    List<SqlParameter> sqlParamters = new List<SqlParameter>() {
            //        new SqlParameter("@Id",user.RequestedObject.Id),
            //        new SqlParameter("@FirstName",user.RequestedObject.FirstName),
            //        new SqlParameter("@LastName",user.RequestedObject.LastName),
            //        new SqlParameter("@Company",user.RequestedObject.Company != null? user.RequestedObject.Company: ""),
            //        new SqlParameter("@Title",user.RequestedObject.Title != null? user.RequestedObject.Title: "")
            //    };

            //    SQLAdapter.ExecuteSPWithoutReturnValue("Marathon", "rsa.SyncResource", sqlParamters);
            //}

            return(lastupdatedUsers);
        }
Пример #3
0
        public void syncUserContacts(string token, List <UserRootObject> userList)
        {
            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Archer", "session-id=" + token);

            HttpResponseMessage response = _client.GetAsync("core/system/usercontact").Result;

            response.EnsureSuccessStatusCode();
            var resultStr = response.Content.ReadAsStringAsync().Result;
            var result    = response.Content.ReadAsAsync <List <UserContactRootObject> >().Result;

            string Password = "******";
            string salt     = "afsdafshtyyukuiyergrsgsasfgh";
            string PassHash = "";

            MD5 md5Hash = MD5.Create();

            PassHash = GetMd5Hash(md5Hash, salt + Password);

            //Get only updated users list from SyncUsers and update only those contacts
            HashSet <int> commonUsers = new HashSet <int>(userList.Select(s => s.RequestedObject.Id));
            var           results     = result.Where(m => commonUsers.Contains(m.RequestedObject.UserId)).ToList();

            foreach (UserContactRootObject user in results)
            {
                string email = null, phone = null;

                if (user.RequestedObject.Contacts != null && user.RequestedObject.Contacts.Count > 0)
                {
                    foreach (var contact in user.RequestedObject.Contacts)
                    {
                        if (contact.ContactType == 7 && contact.ContactSubType == 2)
                        {
                            email = contact.Value;
                        }
                        else if (contact.ContactType == 9 && contact.ContactSubType == 9)
                        {
                            phone = contact.Value;
                        }
                    }
                }

                List <SqlParameter> sqlParamters = new List <SqlParameter>()
                {
                    new SqlParameter("@Id", user.RequestedObject.UserId),
                    new SqlParameter("@Email", email),
                    new SqlParameter("@Phone", phone)
                };

                SQLAdapter.ExecuteSPWithoutReturnValue("Marathon", "rsa.SyncResourceContacts", sqlParamters);
            }
        }
        public void SyncProjects(string token)
        {
            //var authClient = new ArcherGeneral.generalSoapClient();
            //token = authClient.CreateUserSessionFromInstance("sysadmin", "AuditProdigy", "Password123!");

            var client = new searchSoapClient("searchSoap");
            //var response = client.ExecuteQuickSearchWithModuleIds(token, "271", "EMEA", 1, 50);

            var searchOptions = @"<SearchReport><PageSize>100</PageSize>
                                <DisplayFields>
                                    <DisplayField>5686</DisplayField>
                                    <DisplayField>5689</DisplayField>
                                    <DisplayField>9908</DisplayField>
                                    <DisplayField>15498</DisplayField>
                                    <DisplayField>15520</DisplayField>
                                </DisplayFields>
                                <Criteria>
                                    <ModuleCriteria><Module>271</Module>
                                    <IsKeywordModule>False</IsKeywordModule>
                                    </ModuleCriteria>
                                </Criteria></SearchReport>";

            var searchResponse = client.ExecuteSearch(token, searchOptions, 1);

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(searchResponse);

            XmlNodeList nodes = doc.DocumentElement.SelectNodes("/Records/Record");

            foreach (XmlNode node in nodes)
            {
                List <SqlParameter> sqlParamters = new List <SqlParameter>()
                {
                    new SqlParameter("@Engagement_ID", node.ChildNodes[0].InnerText),
                    new SqlParameter("@Engagement_Name", node.ChildNodes[1].InnerText),
                    new SqlParameter("@Audit_Scope__Objectives", node.ChildNodes[2].InnerText),
                    new SqlParameter("@Projected_Hours", node.ChildNodes[3].InnerText == "" || node.ChildNodes[3].InnerText == "0" ? node.ChildNodes[4].InnerText: node.ChildNodes[3].InnerText)
                };

                SQLAdapter.ExecuteSPWithoutReturnValue("Marathon", "rsa.SyncProject", sqlParamters);
            }
        }