using System; using System.Xml; using System.Xml.Xsl; using System.Xml.XPath; using System.Data; using System.Data.Sql; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Text.RegularExpressions; using umbraco.cms.businesslogic; using umbraco.cms.businesslogic.member; using umbraco.cms.businesslogic.property; using umbraco.BusinessLogic; using umbraco.DataLayer; using umbraco.DataLayer.SqlHelpers; namespace webstickies { //This should be replaced with umbracos own methods... public class library { /// /// Gets the current user. /// /// The current user. public static umbraco.BusinessLogic.User CurrentUser { get { return umbraco.BusinessLogic.User.GetCurrent(); } } /*public static Member GetCurrentMember() { try { if (CurrentMemberId() != 0) { // return member from cache Member m = Member.GetMemberFromCache(CurrentMemberId()); if (m == null) m = new Member(CurrentMemberId()); if (m != null) if (m.UniqueId == new Guid(getCookieValue("umbracoMemberGuid")) && m.LoginName == getCookieValue("umbracoMemberLogin")) return m; return null; } else return null; } catch { return null; } } public static int CurrentMemberId() { int _currentMemberId = 0; if (getCookieValue("umbracoMemberId") != "" && getCookieValue("umbracoMemberGuid") != "" && getCookieValue("umbracoMemberLogin") != "") _currentMemberId = int.Parse(getCookieValue("umbracoMemberId")); return _currentMemberId; }*/ private static string getCookieValue(string Name) { string tempValue = ""; if (System.Web.HttpContext.Current.Request.Cookies[Name] != null) if (System.Web.HttpContext.Current.Request.Cookies[Name].Value != "") { tempValue = System.Web.HttpContext.Current.Request.Cookies[Name].Value; } return tempValue; } } public class ws { protected static ISqlHelper SqlHelper { get { return Application.SqlHelper; } } /*public static int login(string loginname, string password) { Member m = Member.GetMemberFromLoginNameAndPassword(loginname, password); if (library.CurrentMemberId() == 0) { // If null, login not correct... if (m != null) { Member.AddMemberToCache(m); return m.Id; } else return 0; } else return library.CurrentMemberId(); } [Obsolete("Deprecated, use logout(int NodeId) instead", false)] public static int logout() { Member m = library.GetCurrentMember(); if (m != null) { Member.RemoveMemberFromCache(m.Id); Member.ClearMemberFromClient(m.Id); return m.Id; } else return 0; } public static int logout(int NodeId) { int _currentMemberId = library.CurrentMemberId(); if (_currentMemberId > 0) { Member.RemoveMemberFromCache(library.CurrentMemberId()); Member.ClearMemberFromClient(library.CurrentMemberId()); return _currentMemberId; } else return 0; } public static XPathNodeIterator data() { if (library.GetCurrentMember() != null) { XmlDocument mXml = new XmlDocument(); mXml.LoadXml(library.GetCurrentMember().ToXml(mXml, false).OuterXml); XPathNavigator xp = mXml.CreateNavigator(); return xp.Select("/node"); } else return null; } public static int id() { return library.CurrentMemberId(); } public static string setProperty(string alias, object value) { string retVal = "False"; try { Member myMember = library.GetCurrentMember(); if (myMember != null) { Property myProperty = myMember.getProperty(alias); if (myMember.ContentType != null && MemberType.GetByAlias(myMember.ContentType.Alias).MemberCanEdit(myProperty.PropertyType)) { if (myProperty.PropertyType.ValidationRegExp.Trim() != "") { Regex regexPattern = new Regex(myMember.getProperty(alias).PropertyType.ValidationRegExp); if (regexPattern.IsMatch(value.ToString())) { myProperty.Value = value; retVal = "True"; myMember.XmlGenerate(new XmlDocument()); } } else { myProperty.Value = value; retVal = "True"; myMember.XmlGenerate(new XmlDocument()); } } } } catch (Exception x) { retVal = x.Message; } return retVal; }*/ public static XPathNodeIterator getnotes(int nodeID) { if (library.CurrentUser != null) { IRecordsReader dr = SqlHelper.ExecuteReader("select [id], [user], [noteText], [x], [y] from pluginWebstickies where pluginWebstickies.nodeId = @nodeId and isClosed = 0x0", SqlHelper.CreateParameter("@nodeId", nodeID)); XmlDocument r = new XmlDocument(); string t = ""; while (dr.Read()) { t += ""; t += dr.GetString("noteText"); t += ""; } r.LoadXml("" + t + ""); XPathNavigator xp = r.CreateNavigator(); return xp.Select("."); } else return null; } public static XPathNodeIterator savenote(int dbNoteId, int x, int y, int nodeId, string text) { if (library.CurrentUser != null) { /* isClosed set to false at creation */ bool d = false; if (dbNoteId >= 0) { /* update existing note */ /* create note and return Idof the note */ SqlHelper.ExecuteNonQuery("UPDATE [dbo].[pluginWebstickies] SET [user] = @user,[noteText] = @noteText,[nodeId] = @nodeId,[isClosed] = @isClosed,[x] = @x,[y] = @y WHERE id = " + dbNoteId, SqlHelper.CreateParameter("@user", library.CurrentUser.Id), SqlHelper.CreateParameter("@noteText", text), SqlHelper.CreateParameter("@nodeId", nodeId), SqlHelper.CreateParameter("@isClosed", d), SqlHelper.CreateParameter("@x", x), SqlHelper.CreateParameter("@y", y) ); XmlDocument r = new XmlDocument(); r.LoadXml(""); XPathNavigator xp = r.CreateNavigator(); return xp.Select("."); } else { /* create note and return Idof the note */ int noteId = SqlHelper.ExecuteScalar("INSERT INTO [dbo].[pluginWebstickies]([user],[noteText],[nodeId],[isClosed],[x],[y]) VALUES(@user,@noteText,@nodeId,0x0,@x,@y);SELECT IDENT_CURRENT('pluginWebstickies')", SqlHelper.CreateParameter("@user", library.CurrentUser.Id ), SqlHelper.CreateParameter("@noteText", text), SqlHelper.CreateParameter("@nodeId", nodeId), SqlHelper.CreateParameter("@isClosed", d), SqlHelper.CreateParameter("@x", x), SqlHelper.CreateParameter("@y", y) ); XmlDocument r = new XmlDocument(); r.LoadXml(""); XPathNavigator xp = r.CreateNavigator(); return xp.Select("."); } } else return null; } public static XPathNodeIterator deletenote(int dbNoteId) { if (library.CurrentUser != null) { /* isClosed set to false at creation */ bool d = true; if (dbNoteId >= 0) { /* update existing note */ /* create note and return Idof the note */ SqlHelper.ExecuteNonQuery("UPDATE [dbo].[pluginWebstickies] SET [isClosed] = @isClosed WHERE id = " + dbNoteId, SqlHelper.CreateParameter("@isClosed", d) ); XmlDocument r = new XmlDocument(); r.LoadXml(""); XPathNavigator xp = r.CreateNavigator(); return xp.Select("."); } else { /* create note and return Idof the note */ XmlDocument r = new XmlDocument(); r.LoadXml(""); XPathNavigator xp = r.CreateNavigator(); return xp.Select("."); } } else return null; } } }