/// <summary> ///Create a column site based on a class /// </summary> /// <param name="web"></param> /// <param name="groupTerm"></param> /// <param name="genericClass"></param> /// <returns></returns> public static IList<ConfigurationColumn> CreateColumnSite(this SPWeb web, string groupTerm, Type genericClass) { var result = new List<ConfigurationColumn>(); try { var props = genericClass.GetProperties(); foreach (var prop in props) { var fieldType = "Text"; var create = true; var choice = new StringCollection(); var term = string.Empty; var displayName = string.Empty; var hidden = false; var multiValue = false; var required = false; var groupTermTaxonomy = string.Empty; var defaultValue = string.Empty; var addPrefix = true; var formula = string.Empty; var formatCurrency = 0; var date = TypeDate.DateTime; foreach (var enmarcha in prop.GetCustomAttributes(true).Select(attribute => attribute as EnmarchaAttribute)) { fieldType = enmarcha.Type.ToString(); create = enmarcha.Create; term = enmarcha.Term; multiValue = enmarcha.MultiValue; displayName = enmarcha.DisplayName; hidden = enmarcha.Hidden; required = enmarcha.Required; formula = enmarcha.Formula; try { groupTermTaxonomy = enmarcha.Group; addPrefix = enmarcha.AddPrefeix; defaultValue = enmarcha.ValueDefault; date = enmarcha.Date; formatCurrency = enmarcha.FormatCurrency; } catch (Exception exception) { Logger.Error(string.Concat("ENMARCHA Error :", exception.Message)); } result.Add(new ConfigurationColumn { Name = prop.Name, Prefix = addPrefix }); try { if (enmarcha.Choice != null) { choice.AddRange(enmarcha.Choice); } } catch (Exception exception) { Logger.Error(string.Concat("Error :", exception.Message)); } } if (create) { CreateColumnSite(new ParamsCreateSite { Web = web, Name = prop.Name, FieldType = fieldType, Requiered = required, DefaultValue = defaultValue, Choice = choice, Group = groupTerm, Term = term, MultiValue = multiValue, DisplayName = displayName, Hidden = hidden, GroupTerm = groupTermTaxonomy, AddPrefix = addPrefix, Formula = formula, FormatCurrency = formatCurrency, Date = date, }); } } } catch (Exception) { return null; } return result; }
///<summary> /// Get the User's Groups ///</summary> ///<param name="web"></param> public static IList<SPGroup> GetGroupsUser(this SPWeb web) { IList<SPGroup> groupCollection = new List<SPGroup>(); foreach (SPGroup group in web.SiteGroups) { if (group.ContainsCurrentUser) { groupCollection.Add(group); } } return groupCollection; }