public AssociatedCalendarParameterList(ICalendarParameterList list, ICalendarObject parent, ICalendarParameterListContainer container) : this(parent, container) { if (list != null) { if (m_AssociatedContainer != null && m_AssociatedContainer.Parameters != null) { foreach (ICalendarParameter p in list) { if (!m_AssociatedContainer.Parameters.Contains(p)) { m_AssociatedContainer.Parameters.Add(p); } } } else { foreach (ICalendarParameter p in list) { m_Parameters.Add(p); } } } }
/// <summary> /// Copies values from the target object to the /// current object. /// </summary> virtual public void CopyFrom(ICopyable obj) { if (obj is ICalendarDataType) { ICalendarDataType dt = (ICalendarDataType)obj; AssociatedObject = dt.AssociatedObject; _Parameters = new AssociatedCalendarParameterList(dt.Parameters, _AssociatedObject, _AssociatedObject as ICalendarParameterListContainer); } }
public AssociatedCalendarParameterList(ICalendarObject parent, ICalendarParameterListContainer container) { m_Parent = parent; m_AssociatedContainer = container; m_Parameters = new CalendarParameterList(parent, true); m_Parameters.ItemAdded += new EventHandler <ObjectEventArgs <ICalendarParameter> >(Parameters_ItemAdded); m_Parameters.ItemRemoved += new EventHandler <ObjectEventArgs <ICalendarParameter> >(Parameters_ItemRemoved); if (container != null) { container.Parameters.ItemAdded += new EventHandler <ObjectEventArgs <ICalendarParameter> >(Parameters_ItemAdded); container.Parameters.ItemRemoved += new EventHandler <ObjectEventArgs <ICalendarParameter> >(Parameters_ItemRemoved); } ItemAdded += new EventHandler <ObjectEventArgs <ICalendarParameter> >(CalendarParameterList_ItemAdded); ItemRemoved += new EventHandler <ObjectEventArgs <ICalendarParameter> >(CalendarParameterList_ItemRemoved); }
public AssociatedCalendarParameterList(ICalendarParameterList list, ICalendarObject parent, ICalendarParameterListContainer container) : this(parent, container) { if (list != null) { if (m_AssociatedContainer != null && m_AssociatedContainer.Parameters != null) { foreach (ICalendarParameter p in list) { if (!m_AssociatedContainer.Parameters.Contains(p)) m_AssociatedContainer.Parameters.Add(p); } } else { foreach (ICalendarParameter p in list) m_Parameters.Add(p); } } }
public CalendarParameterCompositeListEnumerator(ICalendarParameterList parameterList, string parameterName) { m_ParameterList = parameterList; m_ParameterName = parameterName; }
public override string SerializeToString(object obj) { ICalendarProperty prop = obj as ICalendarProperty; if (prop != null && prop.Value != null) { // Don't serialize the property if the value is null // Push this object on the serialization context. SerializationContext.Push(prop); IDataTypeMapper mapper = GetService <IDataTypeMapper>(); Type serializedType = mapper.GetPropertyMapping(prop); // Build a list of values that are to be serialized. List <object> objs = new List <object>(); if (!(prop.Value is string) && !(typeof(IEnumerable <string>).IsAssignableFrom(serializedType)) && prop.Value is IEnumerable) { foreach (object v in (IEnumerable)prop.Value) { objs.Add(v); } } else { objs.Add(prop.Value); } // Get a serializer factory that we can use to serialize // the property and parameter values ISerializerFactory sf = GetService <ISerializerFactory>(); StringBuilder result = new StringBuilder(); foreach (object v in objs) { // Get a serializer to serialize the property's value. // If we can't serialize the property's value, the next step is worthless anyway. IStringSerializer valueSerializer = sf.Build(v.GetType(), SerializationContext) as IStringSerializer; if (valueSerializer != null) { // Iterate through each value to be serialized, // and give it a property (with parameters). // FIXME: this isn't always the way this is accomplished. // Multiple values can often be serialized within the // same property. How should we fix this? // NOTE: // We Serialize the property's value first, as during // serialization it may modify our parameters. // FIXME: the "parameter modification" operation should // be separated from serialization. Perhaps something // like PreSerialize(), etc. string value = valueSerializer.SerializeToString(v); // Get the list of parameters we'll be serializing ICalendarParameterList parameterList = prop.Parameters; if (v is ICalendarDataType) { parameterList = ((ICalendarDataType)v).Parameters; } StringBuilder sb = new StringBuilder(prop.Name); if (parameterList.Count > 0) { // Get a serializer for parameters IStringSerializer parameterSerializer = sf.Build(typeof(ICalendarParameter), SerializationContext) as IStringSerializer; if (parameterSerializer != null) { // Serialize each parameter List <string> parameters = new List <string>(); foreach (ICalendarParameter param in parameterList) { parameters.Add(parameterSerializer.SerializeToString(param)); } // Separate parameters with semicolons sb.Append(";"); sb.Append(string.Join(";", parameters.ToArray())); } } sb.Append(":"); sb.Append(value); result.Append(TextUtil.WrapLines(sb.ToString())); } } // Pop the object off the serialization context. SerializationContext.Pop(); return(result.ToString()); } return(null); }
void Initialize() { _Parameters = new AssociatedCalendarParameterList(null, null); _ServiceProvider = new ServiceProvider(); }
private void Initialize() { m_Parameters = new CalendarParameterList(this, true); }
public AssociatedCalendarParameterList(ICalendarObject parent, ICalendarParameterListContainer container) { m_Parent = parent; m_AssociatedContainer = container; m_Parameters = new CalendarParameterList(parent, true); m_Parameters.ItemAdded += new EventHandler<ObjectEventArgs<ICalendarParameter>>(Parameters_ItemAdded); m_Parameters.ItemRemoved += new EventHandler<ObjectEventArgs<ICalendarParameter>>(Parameters_ItemRemoved); if (container != null) { container.Parameters.ItemAdded += new EventHandler<ObjectEventArgs<ICalendarParameter>>(Parameters_ItemAdded); container.Parameters.ItemRemoved += new EventHandler<ObjectEventArgs<ICalendarParameter>>(Parameters_ItemRemoved); } ItemAdded += new EventHandler<ObjectEventArgs<ICalendarParameter>>(CalendarParameterList_ItemAdded); ItemRemoved += new EventHandler<ObjectEventArgs<ICalendarParameter>>(CalendarParameterList_ItemRemoved); }