Пример #1
0
        private IEnumerable <MetadataDefinitionDto> GetMetadata(int sitetypeId)
        {
            Wizdom365X2Entities db = new Wizdom365X2Entities();
            var result             = new List <MetadataDefinitionDto>();
            var sitetype           = db.BA_SiteType.Find(sitetypeId);//this.unitOfWork.GetRepository<BA_SiteType>().GetByKey(sitetypeId);

            if (sitetype == null)
            {
                return(result);
            }

            var associations = sitetype.BA_SiteTypeMetadataDefinitions.OrderBy(x => x.SortOrder).ToList();

            foreach (var association in associations)
            {
                var sitetypeMetadataDefinition    = association.BA_MetadataDefinition;
                var sitetypeMetadataDefinitionDto = new MetadataDefinitionDto
                {
                    HideOnDisplayForm = sitetypeMetadataDefinition.HideOnDisplayForm,
                    Definition        = sitetypeMetadataDefinition.Definition,
                    HideOnEditForm    = sitetypeMetadataDefinition.HideOnEditForm,
                    HideOnNewForm     = sitetypeMetadataDefinition.HideOnNewForm,
                    Id       = sitetypeMetadataDefinition.Id,
                    Name     = sitetypeMetadataDefinition.Name,
                    Required = sitetypeMetadataDefinition.Required,
                    Type     = sitetypeMetadataDefinition.Type
                };
                sitetypeMetadataDefinitionDto.NumberOfUsages     = sitetypeMetadataDefinition.BA_Metadata.Any() ? sitetypeMetadataDefinition.BA_Metadata.Count : 0;
                sitetypeMetadataDefinitionDto.IsSitetypeMetadata = sitetypeMetadataDefinition.Instance_Id == null;
                sitetypeMetadataDefinitionDto.SortOrder          = association.SortOrder;
                result.Add(sitetypeMetadataDefinitionDto);
            }

            return(result);
        }
Пример #2
0
        private IEnumerable <MetadataDefinitionDto> GetMetadataDesignForm(int sitetypeId)
        {
            Wizdom365X2Entities db = new Wizdom365X2Entities();
            var sitetype           = db.BA_SiteType.Find(sitetypeId); //this.unitOfWork.GetRepository<BA_SiteType>().GetByKey(sitetypeId);

            if (sitetype == null)
            {
                return(new List <MetadataDefinitionDto>());
            }

            string metadataDesign = sitetype.MetadataFormDesign;
            List <MetadataDefinitionDto> sitetypeMetadataList = GetMetadata(sitetypeId).ToList();

            if (!String.IsNullOrEmpty(metadataDesign))
            {
                List <MetadataDefinitionDto> metadataDesignFormList = JsonConvert.DeserializeObject <List <MetadataDefinitionDto> >(metadataDesign);

                for (int i = 0; i < metadataDesignFormList.Count; i++)
                {
                    if (!sitetypeMetadataList.Any(p => p.Id == metadataDesignFormList[i].Id))
                    {
                        metadataDesignFormList.Remove(metadataDesignFormList[i]);
                    }
                    else
                    {
                        metadataDesignFormList[i] = sitetypeMetadataList.Find(p => p.Id == metadataDesignFormList[i].Id);
                    }
                }
                for (int i = 0; i < sitetypeMetadataList.Count; i++)
                {
                    if (!metadataDesignFormList.Any(p => p.Id == sitetypeMetadataList[i].Id))
                    {
                        metadataDesignFormList.Add(sitetypeMetadataList[i]);
                    }
                }


                metadataDesign = JsonConvert.SerializeObject(metadataDesignFormList);
                sitetype.MetadataFormDesign = metadataDesign;
                //unitOfWork.SaveChanges();

                return(metadataDesignFormList);
            }
            else
            {
                return(sitetypeMetadataList);
            }
        }
Пример #3
0
        public IEnumerable <MetadataDto> GetMetadataForSharePointWebId(Guid sharePointWebId /*, out string siteName, out int siteTypeId, out SiteStatus status*/)
        {
            Wizdom365X2Entities db = new Wizdom365X2Entities();
            //siteName = "";
            //siteTypeId = 0;
            //status = SiteStatus.Error;
            List <MetadataDefinitionDto> metadataSchema = new List <MetadataDefinitionDto>();
            List <MetadataDto>           result         = new List <MetadataDto>();

            var site = db.BA_Site.FirstOrDefault(x => x.SharePointWebId == sharePointWebId);//unitOfWork.GetRepository<BA_Site>().Query().FirstOrDefault(x => x.SharePointWebId == sharePointWebId);

            if (site != null)
            {
                metadataSchema = GetMetadataDesignForm(site.SiteType_Id).ToList();
                //siteName = site.Name;
                // siteTypeId = site.SiteType_Id;
                // status = (SiteStatus)site.Status;
            }
            List <BA_Metadata> metadataList = db.BA_Metadata.Where(x => x.BA_Site.SharePointWebId == sharePointWebId).ToList(); //unitOfWork.GetRepository<BA_Metadata>().Query(x => x.MetadataDefinition).Where(x => x.Site.SharePointWebId == sharePointWebId).ToList();

            foreach (var metdef in metadataSchema)
            {
                var metadata = metadataList.FirstOrDefault(x => x.MetadataDefinition_Id == metdef.Id);
                if (metadata != null)
                {
                    result.Add(new MetadataDto
                    {
                        Id = metadata.Id,
                        MetadataDefinition = new MetadataDefinitionDto
                        {
                            HideOnNewForm     = metadata.BA_MetadataDefinition.HideOnNewForm,
                            Name              = metadata.BA_MetadataDefinition.Name,
                            Required          = metadata.BA_MetadataDefinition.Required,
                            Type              = metadata.BA_MetadataDefinition.Type,
                            Definition        = metadata.BA_MetadataDefinition.Definition,
                            HideOnDisplayForm = metadata.BA_MetadataDefinition.HideOnDisplayForm,
                            HideOnEditForm    = metadata.BA_MetadataDefinition.HideOnEditForm,
                            Id = metadata.BA_MetadataDefinition.Id
                        }, //Mapper.Map<MetadataDefinitionDto>(metadata.BA_MetadataDefinition),
                        Value = metadata.ValueDate.HasValue ? metadata.ValueDate.Value.UtcDateTime.ToString("s") :
                                (metadata.ValueDecimal.HasValue ? metadata.ValueDecimal.Value :
                                 (object)metadata.Value)
                    });
                }
            }

            return(result);
        }