Merge pull request #1500 from criteo-forks/criteo
[mono.git] / mcs / class / System.Web / System.Web.UI / DataSourceCacheDurationConverter.cs
index 294e01675fdd2bcb5094974402a5cddeb7d4ab07..b25bb55403ef54033de35a3e9d73cb8460e04081 100644 (file)
@@ -3,9 +3,10 @@
 //
 // Authors:
 //     Arina Itkes (arinai@mainsoft.com)
+//     Marek Habersack <mhabersack@novell.com>
 //
 // (C) 2007 Mainsoft Co. (http://www.mainsoft.com)
-//
+// (C) 2010 Novell, Inc (http://novell.com/)
 //
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-
+using System;
 using System.Collections;
+using System.Collections.Generic;
 using System.ComponentModel;
+using System.ComponentModel.Design.Serialization;
 using System.Globalization;
+using System.Security.Permissions;
 
-#if NET_2_0
 namespace System.Web.UI
 {
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        public class DataSourceCacheDurationConverter : Int32Converter
        {
-               public DataSourceCacheDurationConverter () {
-                       throw new NotImplementedException ();
-               }
-               public new bool CanConvertFrom (Type sourceType) {
-                       throw new NotImplementedException ();
-               }
-               public override bool CanConvertFrom (ITypeDescriptorContext context, Type sourceType) {
-                       throw new NotImplementedException ();
-               }
-               public new bool CanConvertTo (Type destinationType) {
-                       throw new NotImplementedException ();
+               static readonly List <int> standardValues = new List <int> {
+                       0
+               };
+               
+               public DataSourceCacheDurationConverter ()
+               {
                }
-               public override bool CanConvertTo (ITypeDescriptorContext context, Type destinationType) {
-                       throw new NotImplementedException ();
-               }
-               public new Object ConvertFrom (Object value) {
-                       throw new NotImplementedException ();
-               }
-               public override Object ConvertFrom (ITypeDescriptorContext context,
-                                                                                       CultureInfo culture,
-                                                                                       Object value) {
-                       throw new NotImplementedException ();
-               }
-               public new Object ConvertTo (Object value, Type destinationType) {
-                       throw new NotImplementedException ();
-               }
-               public override Object ConvertTo (ITypeDescriptorContext context,
-                                                                               CultureInfo culture,
-                                                                               Object value,
-                                                                               Type destinationType) {
-                       throw new NotImplementedException ();
+               
+               public override bool CanConvertFrom (ITypeDescriptorContext context, Type sourceType)
+               {
+                       if (sourceType == typeof (string))
+                               return true;
+
+                       return base.CanConvertFrom (context, sourceType);
                }
-               public new ICollection GetStandardValues () {
-                       throw new NotImplementedException ();
+
+               public override bool CanConvertTo (ITypeDescriptorContext context, Type destinationType)
+               {
+                       if (destinationType == typeof (string))
+                               return true;
+
+                       return base.CanConvertTo (context, destinationType);
                }
-               public override StandardValuesCollection GetStandardValues (ITypeDescriptorContext context) {
-                       throw new NotImplementedException ();
+
+               public override object ConvertFrom (ITypeDescriptorContext context, CultureInfo culture, object value)
+               {
+                       if (value == null)
+                               return null;
+
+                       string val = value as string;
+                       if (val != null && (val.Length == 0 || String.Compare ("infinite", val, StringComparison.OrdinalIgnoreCase) == 0))
+                               return (int)0;
+
+                       return base.ConvertFrom (context, culture, value);
                }
-               public new bool GetStandardValuesExclusive () {
-                       throw new NotImplementedException ();
+
+               public override object ConvertTo (ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
+               {
+                       if (destinationType == typeof (string)) {
+                               if (value == null)
+                                       return String.Empty;
+                               
+                               if (value is int && (int)value == 0)
+                                       return "Infinite";
+                       }
+                       
+                       return base.ConvertTo (context, culture, value, destinationType);
                }
-               public override bool GetStandardValuesExclusive (ITypeDescriptorContext context) {
-                       throw new NotImplementedException ();
+
+               public override StandardValuesCollection GetStandardValues (ITypeDescriptorContext context)
+               {
+                       return new StandardValuesCollection (standardValues);
                }
-               public new bool GetStandardValuesSupported () {
-                       throw new NotImplementedException ();
+
+               public override bool GetStandardValuesExclusive (ITypeDescriptorContext context)
+               {
+                       return false;
                }
-               public override bool GetStandardValuesSupported (ITypeDescriptorContext context) {
-                       throw new NotImplementedException ();
+
+               public override bool GetStandardValuesSupported (ITypeDescriptorContext context)
+               {
+                       return true;
                }
        }
 }
-#endif