private void GetWebResponseMethodGet(BO.ORCID.PersonMessage personMessage, BO.ORCID.REFPermission refPermission, NameValueCollection parameters) { BLL.ORCID.PersonMessage personMessageBLL = new PersonMessage(); InitializePersonMessageRequestInfo(personMessage, personMessageBLL); var httpWebRequest = (HttpWebRequest)WebRequest.Create(personMessage.RequestURL); try { httpWebRequest.ContentType = "application/orcid+xml"; httpWebRequest.Method = "GET"; foreach (var key in parameters.AllKeys) { httpWebRequest.Headers.Add(key, parameters[key]); } WebResponse wr = httpWebRequest.GetResponse(); personMessage.XML_Response = new StreamReader(wr.GetResponseStream()).ReadToEnd(); personMessage.MessagePostSuccess = true; } catch (WebException en) { ProcessWebException(personMessage, en, httpWebRequest); } SavePersonMessage(personMessage, refPermission, personMessageBLL); }
public BO.ORCID.PersonMessage Create(BO.ORCID.Person person, BO.ORCID.REFPermission refPermission) { ProfilesRNSDLL.BO.ORCID.PersonMessage personMessage = new ProfilesRNSDLL.BO.ORCID.PersonMessage(); personMessage.PermissionID = refPermission.PermissionID; personMessage.RecordStatusID = (int)ProfilesRNSDLL.BO.ORCID.REFRecordStatus.REFRecordStatuss.Waiting_for_ORCID_User_for_approval; personMessage.PersonID = person.PersonID; personMessage.RequestURL = ProfilesRNSDLL.BO.ORCID.Config.ORCID_API_URL_WITH_VERSION + "/" + person.ORCID + "/" + refPermission.MethodAndRequest; new BLL.ORCID.PersonMessage().Save(personMessage); return(personMessage); }
public ProfilesRNSDLL.BO.ORCID.PersonToken Get(BO.ORCID.Person person, BO.ORCID.REFPermission refPermission) { ProfilesRNSDLL.BO.ORCID.PersonToken personToken = new BLL.ORCID.PersonToken().GetByPersonIDAndPermissionID(person.PersonID, refPermission.PermissionID); if (personToken.Exists && !personToken.IsExpired) { return(personToken); } else { BO.ORCID.PersonToken bo = new BO.ORCID.PersonToken(); bo.PersonID = person.PersonID; bo.PermissionID = refPermission.PermissionID; return(bo); } }
private void SavePersonMessage(BO.ORCID.PersonMessage personMessage, BO.ORCID.REFPermission refPermission, BLL.ORCID.PersonMessage personMessageBLL) { if (!personMessage.MessagePostSuccess) { string rsp = personMessage.XML_Response; int openTag = rsp.IndexOf("<error-desc>") + ("<error-desc>").Length; int closeTag = rsp.IndexOf("</error-desc>"); personMessage.RecordStatusID = (int)ProfilesRNSDLL.BO.ORCID.REFRecordStatus.REFRecordStatuss.Failed; if (rsp.Contains("<error-desc>")) { personMessage.UserMessage = rsp.Substring(openTag, closeTag - openTag); switch ((ProfilesRNSDLL.BO.ORCID.REFPermission.REFPermissions)personMessage.PermissionID) { case BO.ORCID.REFPermission.REFPermissions.orcid_bio_update: case BO.ORCID.REFPermission.REFPermissions.orcid_works_create: personMessage.UserMessage = refPermission.FailedMessage + "."; break; } } else { personMessage.UserMessage = rsp; } } else { personMessage.RecordStatusID = (int)ProfilesRNSDLL.BO.ORCID.REFRecordStatus.REFRecordStatuss.Success; switch ((ProfilesRNSDLL.BO.ORCID.REFPermission.REFPermissions)personMessage.PermissionID) { case BO.ORCID.REFPermission.REFPermissions.orcid_bio_update: case BO.ORCID.REFPermission.REFPermissions.orcid_works_create: case BO.ORCID.REFPermission.REFPermissions.orcid_profile_read_limited: case BO.ORCID.REFPermission.REFPermissions.affiliations_create: personMessage.UserMessage = refPermission.SuccessMessage + "."; break; default: throw new Exception("Unhandled Permission Type for Success Message."); } } personMessage.PostDate = DateTime.Now; personMessageBLL.Save(personMessage); }
public bool CheckForValidToken(BO.ORCID.Person person, BO.ORCID.REFPermission refPermission) { ProfilesRNSDLL.BO.ORCID.PersonToken personToken = new BLL.ORCID.PersonToken().GetByPersonIDAndPermissionID(person.PersonID, refPermission.PermissionID); return(personToken.Exists && !personToken.IsExpired); }
public void SendORCIDXMLMessage(BO.ORCID.Person person, string accessToken, BO.ORCID.PersonMessage personMessage, BO.ORCID.REFPermission refPermission) { List <string> responseMessage = new List <string>(); BLL.ORCID.PersonMessage personMessageBLL = new PersonMessage(); personMessage.RequestURL = ProfilesRNSDLL.BO.ORCID.Config.ORCID_API_URL_WITH_VERSION + "/" + person.ORCID + "/" + refPermission.MethodAndRequest; InitializePersonMessageRequestInfo(personMessage, personMessageBLL); string method = System.Net.WebRequestMethods.Http.Post.ToString(); if (personMessage.PermissionID == (int)BO.ORCID.REFPermission.REFPermissions.orcid_bio_update) { method = System.Net.WebRequestMethods.Http.Put.ToString(); } string msg = string.Empty; WebRequest httpWebRequest = WebRequest.Create(personMessage.RequestURL); httpWebRequest.ContentType = "application/orcid+xml"; httpWebRequest.Method = method; NameValueCollection param2 = new NameValueCollection(); string AuthBearer = "Authorization: Bearer " + accessToken; responseMessage.Add(AuthBearer); param2.Add("Authorization", " Bearer " + accessToken); foreach (var key in param2.AllKeys) { httpWebRequest.Headers.Add(key, param2[key]); } string profile = personMessage.XML_Sent; byte[] xmlBytes = Encoding.UTF8.GetBytes(profile); using (var requestStream = httpWebRequest.GetRequestStream()) { requestStream.Write(xmlBytes, 0, xmlBytes.Length); requestStream.Close(); } try { using (WebResponse response = httpWebRequest.GetResponse()) { HttpWebResponse httpResponse = (HttpWebResponse)response; using (Stream data = response.GetResponseStream()) { string text = new StreamReader(data).ReadToEnd(); personMessage.HttpResponseCode = httpResponse.StatusCode.ToString(); responseMessage.Add(text); personMessage.MessagePostSuccess = true; } } } catch (WebException en) { ProcessWebException(personMessage, en, httpWebRequest); } SavePersonMessage(personMessage, refPermission, personMessageBLL); }
public void ReadORCIDProfile(BO.ORCID.Person person, BO.ORCID.PersonMessage personMessage, BO.ORCID.REFPermission refPermission, string loggedInInternalUsername) { personMessage.RequestURL = ProfilesRNSDLL.BO.ORCID.Config.ORCID_API_URL_WITH_VERSION + "/" + person.ORCID + "/" + refPermission.MethodAndRequest; NameValueCollection param2 = new NameValueCollection(); string token = BLL.ORCID.OAuth.GetClientToken(refPermission.PermissionScope, loggedInInternalUsername); param2.Add("Authorization", " Bearer " + token); param2.Add("Scope", refPermission.PermissionScope); GetWebResponseMethodGet(personMessage, refPermission, param2); }