コード例 #1
0
 public bool Equals(IMnBaseElement mnElement)
 {
     if (this.ElementId == mnElement.ElementId ||
         (this.Name != null && this.Name.Equals(mnElement.Name, StringComparison.CurrentCultureIgnoreCase)) ||
         (this.Title.EqualsTrim(mnElement.Title)))
     {
         return(true);
     }
     return(false);
 }
コード例 #2
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            IMnBaseElement element    = value as MnBaseElement ?? value as IMnBaseElement;
            var            properties = element.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)
                                        .Where(p => !Attribute.IsDefined(p, typeof(JsonIgnoreAttribute)));

            writer.WriteStartObject();

            writer.WritePropertyName("Type");
            serializer.Serialize(writer, element.GetType().Name);

            if (this.GetType().Assembly.GetName().Name != element.GetType().Assembly.GetName().Name)
            {
                writer.WritePropertyName("Type.FullName");
                serializer.Serialize(writer, element.GetType().FullName);
                writer.WritePropertyName("Type.AssemblyName");
                serializer.Serialize(writer, element.GetType().Assembly.GetName().Name);
            }

            writer.WritePropertyName("IsCustomElement");
            serializer.Serialize(writer, element is ICustomElement ? true : false);

            foreach (var property in properties)
            {
                if (Attribute.IsDefined(property, typeof(JsonConverterAttribute)))
                {
                    var jsonAttr = property.GetCustomAttribute <JsonConverterAttribute>(false);
                    if (jsonAttr.ConverterType == typeof(StringEnumConverter))
                    {
                        writer.WritePropertyName(property.Name);
                        serializer.Serialize(writer, Enum.ToObject(property.PropertyType, property.GetValue(element)).ToString());
                    }
                }
                else
                {
                    writer.WritePropertyName(property.Name);
                    serializer.Serialize(writer, property.GetValue(element));
                }
            }

            writer.WriteEndObject();
        }
コード例 #3
0
ファイル: FormExtension.cs プロジェクト: navaei/MnFramework
 //public static bool TryGet<T>(this IEnumerable<MnBaseElement> sourceElements, MnBaseElement searchElement, out T newElement) where T : MnBaseElement, new()
 //{
 //    newElement = new T();
 //    //Func<MnBaseElement, bool> filter = e => e.Equals(searchElement);
 //    if (sourceElements.Any(e => e.Equals(searchElement)))
 //    {
 //        var tempElement = sourceElements.FirstOrDefault(e => e.Title.Equals(searchElement.Title));
 //        if (tempElement == null)
 //            tempElement = sourceElements.FirstOrDefault(e => e.Name.Equals(searchElement.Name));
 //        if (tempElement == null)
 //            tempElement = sourceElements.FirstOrDefault(e => e.ElementId.Equals(searchElement.ElementId));
 //        if (tempElement != null)
 //        {
 //            newElement = tempElement as T;
 //            return true;
 //        }
 //    }
 //    return false;
 //}
 public static bool TryGet <T>(this IEnumerable <IMnBaseElement> sourceElements, IMnBaseElement searchElement, out T newElement) where T : MnBaseElement, new()
 {
     newElement = new T();
     //Func<MnBaseElement, bool> filter = e => e.Equals(searchElement);
     if (sourceElements.Any(e => e.Equals(searchElement)))
     {
         var tempElement = sourceElements.FirstOrDefault(e => e.Title.EqualsTrim(searchElement.Title));
         if (tempElement == null)
         {
             tempElement = sourceElements.FirstOrDefault(e => e.Name.Equals(searchElement.Name));
         }
         if (tempElement == null)
         {
             tempElement = sourceElements.FirstOrDefault(e => e.ElementId.Equals(searchElement.ElementId));
         }
         if (tempElement != null)
         {
             newElement = tempElement as T;
             return(true);
         }
     }
     return(false);
 }
コード例 #4
0
ファイル: HtmlExtension.cs プロジェクト: navaei/MnFramework
        public static MvcHtmlString GenerateHiddenFields <TModel>(this HtmlHelper <TModel> Html, IMnBaseElement model)
        {
            var result = string.Empty;

            result += Html.Hidden("Name", model.Name).ToHtmlString();
            result += Html.Hidden("Title", model.Title).ToHtmlString();
            result += Html.Hidden("HelpText", model.HelpText).ToHtmlString();
            result += Html.Hidden("ElementId", model.ElementId).ToHtmlString();
            result += Html.Hidden("CurrentMode", model.CurrentMode).ToHtmlString();
            result += Html.Hidden("VisibleMode", model.VisibleMode).ToHtmlString();
            result += Html.Hidden("ModelType", model.GetType()).ToHtmlString();

            result = model.AccessRole.Aggregate(result, (current, accRole) => current + Html.HiddenFor(modelItem => accRole).ToHtmlString());

            return(MvcHtmlString.Create(result));
        }