Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        ///<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;
        }