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); }
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); } }
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); }