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;
}
}
}