Enmarcha.SharePoint.Entities.Artefacts.ListSharePoint.AddFieldLookup C# (CSharp) Method

AddFieldLookup() private method

private AddFieldLookup ( Enmarcha.SharePoint.Entities.Artefacts.SiteColumn column, SPList listEdit ) : void
column Enmarcha.SharePoint.Entities.Artefacts.SiteColumn
listEdit SPList
return void
        private void AddFieldLookup(SiteColumn column, SPList listEdit)
        {
            var targetList =
                Web.GetList(SPUrlUtility.CombineUrl(Web.Url, string.Concat("/lists/", column.TargetListInternalName)));

            listEdit.Fields.AddLookup(column.Name, targetList.ID, column.Required);
            var lookup = (SPFieldLookup)listEdit.Fields.GetField(column.Name);
            lookup.LookupField =
                targetList.Fields[
                    targetList.Fields.GetFieldByInternalName(column.TargetListFieldInternalName).Id]
                    .InternalName;
            lookup.Update();
            foreach (var fieldAdditional in column.FieldAdditional)
            {
                var depLookUp = listEdit.Fields.AddDependentLookup(fieldAdditional, lookup.Id);
                var fieldDepLookup = (SPFieldLookup)listEdit.Fields.GetFieldByInternalName(depLookUp);
                fieldDepLookup.LookupWebId = Web.ParentWeb.ID;
                fieldDepLookup.LookupField =
                    targetList.Fields[targetList.Fields.GetFieldByInternalName(fieldAdditional).Id]
                        .InternalName;
                fieldDepLookup.Update();
            }
        }