-- An SQL User defined function to round off date time-- to nearest half an hour point CREATE FUNCTION RoundOffHours( @myTime datetime) RETURNS datetime ASBEGIN DECLARE @RoundedTime datetime SELECT @RoundedTime = dateadd( minute, CASE WHEN (datepart(minute,@myTime)) BETWEEN 0 AND 14 THEN 0 WHEN (datepart(minute,@myTime)) BETWEEN 15 AND 30 THEN 30 WHEN (datepart(minute,@myTime)) BETWEEN 31 AND 44 THEN 30 WHEN (datepart(minute,@myTime)) BETWEEN 45 AND 60 THEN 60 END, dateadd( minute, - datepart(minute, @myTime),@myTime) ) RETURN @RoundedTime END -- Usage : SELECT dbo.RoundOffHours('2010-05-11 10:01') SELECT dbo.RoundOffHours('2010-05-11 10:14') SELECT dbo.RoundOffHours('2010-05-11 10:16') SELECT dbo.RoundOffHours('2010-05-11 10:29') SELECT dbo.RoundOffHours('2010-05-11 10:31') SELECT dbo.RoundOffHours('2010-05-11 10:44') SELECT dbo.RoundOffHours('2010-05-11 10:46') SELECT dbo.RoundOffHours('2010-05-11 10:59')
Here's how I do it. I decided to use IPrincipal instead of IIdentity because it means I don't have to implement both IIdentity and IPrincipal. Create the interface interface ICustomPrincipal : IPrincipal { int UserId { get ; set ; } string FirstName { get ; set ; } string LastName { get ; set ; } } CustomPrincipal public class CustomPrincipal : ICustomPrincipal { public IIdentity Identity { get ; private set ; } public bool IsInRole ( string role ) { return false ; } public CustomPrincipal ( string email ) { this . Identity = new GenericIdentity ( email ); } public int UserId { get ; set ; } public string FirstName { get ; set ; } public string LastName { get ; set ; } } CustomPrincipalSerializeModel - for serializing custom information into userdata field in FormsAuthenticationTicket object. public class CustomPrincipalSerializeMode...
Comments
Post a Comment