public IApplicationResponse Get(string application, [FromUri] DataRequestAdapter request) { var user = SecurityFacade.CurrentUser(); if (null == user) { throw new HttpResponseException(HttpStatusCode.Unauthorized); } RequestUtil.ValidateMockError(Request); if (!"solution".EqualsIc(application) && !"ci".EqualsIc(application)) { ValidateHashSecurity(request); } var applicationMetadata = MetadataProvider .Application(application) .ApplyPolicies(request.Key, user, ClientPlatform.Web); ContextLookuper.FillContext(request.Key); var response = DataSetProvider.LookupAsBaseDataSet(application).Get(applicationMetadata, user, request); response.Title = _i18NResolver.I18NSchemaTitle(response.Schema); var schemaMode = request.Key.Mode ?? response.Schema.Mode; response.Mode = schemaMode.ToString().ToLower(); return(response); }
public IGenericResponseResult Expand(InMemoryUser user, IDictionary <string, ApplicationCompositionSchema> compositionSchemas, CompositionExpanderHelper.CompositionExpansionOptions options) { var resultDict = new Dictionary <string, IEnumerable <IDictionary <string, object> > >(); var result = CompositionExpanderHelper.ParseDictionary(options.CompositionsToExpand); var printMode = _contextLookuper.LookupContext().PrintMode; foreach (var toExpand in result.DetailsToExpand) { var name = toExpand.Key; var compositionSchema = compositionSchemas[name]; var schema = compositionSchema.Schemas.Detail; if (printMode) { schema = compositionSchema.Schemas.Print; } var applicationMetadata = MetadataProvider.Application(EntityUtil.GetApplicationName(name)) .ApplyPolicies(schema.GetSchemaKey(), user, ClientPlatform.Web); var slicedEntityMetadata = MetadataProvider.SlicedEntityMetadata(applicationMetadata); var searchDTO = new SearchRequestDto(); searchDTO.AppendSearchParam(schema.IdFieldName); searchDTO.AppendSearchValue(toExpand.Value); var compositionExpanded = _entityRepository.GetAsRawDictionary(slicedEntityMetadata, searchDTO); resultDict.Add(name, compositionExpanded.ResultList); } return(new GenericResponseResult <Dictionary <string, IEnumerable <IDictionary <string, object> > > >(resultDict)); }
public Tuple <Byte[], string> DownloadViaParentWS(string id, string parentId, string parentApplication, string parentSchemaId) { // Get the parent entity executing a FindById operation in the respective WS var user = SecurityFacade.CurrentUser(); var applicationMetadata = MetadataProvider .Application(parentApplication) .ApplyPolicies(new ApplicationMetadataSchemaKey(parentSchemaId), user, ClientPlatform.Web); var response = _dataSetProvider.LookupAsBaseDataSet(parentApplication).Execute(applicationMetadata, new JObject(), parentId, OperationConstants.CRUD_FIND_BY_ID); var parent = response.ResultObject; if (parent != null) { var attachments = r.GetProperty(parent, "DOCLINKS") as IEnumerable; foreach (var attachment in attachments) { var attachmentId = w.GetRealValue(attachment, "DOCINFOID").ToString(); if (id.Equals(attachmentId)) { var fileBytes = w.GetRealValue(attachment, "DOCUMENTDATA") as byte[]; var fileName = BuildFileName(w.GetRealValue(attachment, "URLNAME") as String); return(Tuple.Create(fileBytes, fileName)); } } } return(null); }
private ApplicationMetadata DetermineSchemaFromAsset(Entity initialValues) { var assetclassstructure = (string)initialValues.GetAttribute("classstructureid"); var typeofimac = (string)initialValues.GetAttribute("typeofimac"); var completeApplication = MetadataProvider.Application("imac"); if (typeofimac.EqualsAny("add", "update", "move")) { //these doesn´t have subtypes return(completeApplication.ApplyPoliciesWeb(new ApplicationMetadataSchemaKey(typeofimac))); } if (IsPrinterAsset(assetclassstructure)) { //installlan , replacelan or removelan return(completeApplication.ApplyPoliciesWeb(new ApplicationMetadataSchemaKey(typeofimac + "lan"))); } if (IsStdAsset(assetclassstructure)) { return(completeApplication.ApplyPoliciesWeb(new ApplicationMetadataSchemaKey(typeofimac + "std"))); } return(completeApplication.ApplyPoliciesWeb(new ApplicationMetadataSchemaKey(typeofimac + "other"))); //installstd , replacestd or removestd }
private static GenericResponseResult <IList <DashboardDefinition> > DoGetFromList(List <DashboardDefinition> dashboardDefinitionList) { InMemoryUser user = SecurityFacade.CurrentUser(); var dataObjectSet = new BaseApplicationDataSet(); DashboardModuleHandler(dashboardDefinitionList); foreach (var definition in dashboardDefinitionList) { var key = new ApplicationMetadataSchemaKey(definition.SchemaId, definition.Mode, ClientPlatform.Web); var searchRequestDto = new SearchRequestDto { SearchParams = definition.SearchParams, SearchValues = definition.SearchValues, Context = new ApplicationLookupContext { MetadataId = definition.Id } }; var applicationMetadata = MetadataProvider.Application(definition.ApplicationName) .ApplyPolicies(key, user, ClientPlatform.Web); definition.TotalCount = dataObjectSet.GetCount(applicationMetadata, searchRequestDto); } return(new GenericResponseResult <IList <DashboardDefinition> >(dashboardDefinitionList, null) { Title = new I18NResolver().I18NValue("_headermenu.serviceit", "ServiceIT") }); }
public void TestSchemaTitle() { ApplicationConfiguration.TestclientName = "hapag"; MetadataProvider.StubReset(); var catalogs = _resolver.FetchCatalogs(); var schemas = MetadataProvider.Application("servicerequest").Schemas(); var schema = schemas[new ApplicationMetadataSchemaKey("list", "input", "web")]; var value = _resolver.DoGetI18NSchemaTitle(schema, "de"); Assert.AreEqual("Service Request Tabelle", value); var missingSchema = new ApplicationSchemaDefinition { SchemaId = "fake", ApplicationName = "fake", Title = "fake" }; value = _resolver.DoGetI18NSchemaTitle(missingSchema, "de"); Assert.AreEqual("fake", value); missingSchema = new ApplicationSchemaDefinition { ApplicationName = "servicerequest", SchemaId = "fake", Title = "fake" }; value = _resolver.DoGetI18NSchemaTitle(missingSchema, "de"); Assert.AreEqual("fake", value); ApplicationConfiguration.TestclientName = "fake"; _resolver.ClearCache(); value = _resolver.DoGetI18NSchemaTitle(schema, "de"); Assert.AreEqual(schema.Title, value); }
public static ApplicationAssociationDefinition GetInstance([NotNull] string @from, ApplicationAssociationDefinition.LabelData labelData, string target, string qualifier, ApplicationAssociationSchemaDefinition applicationAssociationSchema, string showExpression, string toolTip, string required, ISet <ApplicationEvent> events, string defaultValue, string extraProjectionFields = null, string isEnabled = "true") { var association = new ApplicationAssociationDefinition(from, labelData, target, qualifier, applicationAssociationSchema, showExpression, toolTip, required, defaultValue, isEnabled, events); var labelField = labelData.LabelField; association.LabelFields = ParseLabelFields(labelField); association.ApplicationTo = ParseApplicationTo(labelField); if (extraProjectionFields != null) { BuildExtraProjectionFields(association, extraProjectionFields); } association.SetLazyResolver(new Lazy <EntityAssociation>( () => { var appMetadata = MetadataProvider.Application(association.From); var indexOf = labelField.IndexOf(".", StringComparison.Ordinal); var firstPart = labelField.Substring(0, indexOf); var lookupString = firstPart.EndsWith("_") ? firstPart : firstPart + "_"; if (Char.IsNumber(lookupString[0])) { lookupString = lookupString.Substring(1); } var entityAssociations = MetadataProvider.Entity(appMetadata.Entity).Associations; return(entityAssociations.FirstOrDefault(a => a.Qualifier == lookupString)); })); return(association); }
public void TestAddWorkLogToIncident() { ApplicationConfiguration.TestclientName = "hapag"; MetadataProvider.StubReset(); var imac = MetadataProvider.Entity("imac"); var metadata = MetadataProvider.Entity("incident"); var completeApp = MetadataProvider.Application("incident"); var sliced = MetadataProvider.SlicedEntityMetadata(completeApp.ApplyPolicies(new ApplicationMetadataSchemaKey("detail"), InMemoryUser.TestInstance("test"), ClientPlatform.Web)); var attributes = sliced.Attributes(EntityMetadata.AttributesMode.NoCollections); var entityAttributes = attributes as EntityAttribute[] ?? attributes.ToArray(); Assert.IsNull(entityAttributes.FirstOrDefault(a => a.Name == "asset_.eq23")); Assert.IsNotNull(entityAttributes.FirstOrDefault(a => a.Name == "asset_.description")); var incident = JObject.Parse(new StreamReader("jsons\\incident\\test1.json").ReadToEnd()); var entity = EntityBuilder.BuildFromJson <Entity>(typeof(Entity), metadata, null, incident, null); Assert.IsNull(entity.GetAttribute("wonum")); var solution = entity.GetRelationship("solution") as Entity; Assert.IsNotNull(solution); var cause = solution.GetRelationship("cause") as Entity; Assert.IsNotNull(cause); Assert.IsNull(cause.GetAttribute("ldtext")); var symptom = solution.GetRelationship("symptom") as Entity; Assert.IsNotNull(symptom); Assert.IsNotNull(symptom.GetAttribute("ldtext")); }
public SynchronizationResultDto SyncData(SynchronizationRequestDto synchronizationRequest) { //TODO> the method should return only the fields //specified in the metadata, and not all entities //attributes. var user = SecurityFacade.CurrentUser(); if (null == user) { throw new HttpResponseException(HttpStatusCode.Unauthorized); } var syncResult = new SynchronizationResultDto(); foreach (var application in synchronizationRequest.Applications) { var applicationMetadata = MetadataProvider .Application(application.appName) .ApplyPolicies(ApplicationMetadataSchemaKey.GetSyncInstance(), user, ClientPlatform.Mobile); var syncAppData = _dataSetProvider.LookupAsBaseDataSet(application.appName) .Sync(applicationMetadata, application); if (!application.FetchMetadata) { //used to reduce the amount of data sent syncAppData.Metadata = null; } syncResult.SynchronizationData.Add(syncAppData); } return(syncResult); }
public IApplicationResponse Search(string application, string searchFields, string searchText, string schema = "list") { var user = SecurityFacade.CurrentUser(); var app = MetadataProvider.Application(application); var schemas = app.Schemas(); var key = new ApplicationMetadataSchemaKey(schema, SchemaMode.input, ClientPlatform.Web); ApplicationSchemaDefinition appSchema; if (!schemas.TryGetValue(key, out appSchema)) { throw new InvalidOperationException("schema not found"); } var searchRequestDto = PaginatedSearchRequestDto.DefaultInstance(appSchema); searchRequestDto.SetFromSearchString(appSchema, searchFields.Split(','), searchText); var dataResponse = Get(application, new DataRequestAdapter() { Key = key, SearchDTO = searchRequestDto }); //fixing the filter parameters used so that it is applied on next queries ((ApplicationListResult)dataResponse).PageResultDto.BuildFixedWhereClause(searchRequestDto, app.Entity); dataResponse.Title = appSchema.Title; dataResponse.Mode = SchemaMode.input.ToString().ToLower(); return(dataResponse); // return View("Index", new ApplicationModel(application, "list", SchemaMode.input.ToString().ToLower(), appSchema.Title, dataResponse)); }
public void TestAddFk() { var appl = MetadataProvider.Application("attachment"); var schema = appl.Schema(new ApplicationMetadataSchemaKey("list", SchemaMode.input, ClientPlatform.Mobile)); Assert.IsNotNull(schema); var ownerIdField = schema.Fields.FirstOrDefault(f => f.Attribute == "ownerid"); Assert.IsNotNull(ownerIdField); Assert.IsTrue(ownerIdField.IsHidden); var ownerTableField = schema.Fields.FirstOrDefault(f => f.Attribute == "ownertable"); Assert.IsNotNull(ownerTableField); Assert.IsTrue(ownerTableField.IsHidden); schema = appl.Schema(new ApplicationMetadataSchemaKey(ApplicationMetadataConstants.SyncSchema, SchemaMode.input, ClientPlatform.Mobile)); Assert.IsNotNull(schema); ownerIdField = schema.Fields.FirstOrDefault(f => f.Attribute == "ownerid"); Assert.IsNotNull(ownerIdField); Assert.IsTrue(ownerIdField.IsHidden); ownerTableField = schema.Fields.FirstOrDefault(f => f.Attribute == "ownertable"); Assert.IsNotNull(ownerTableField); Assert.IsTrue(ownerTableField.IsHidden); }
public SchemaChoosingDataResponse ListSchemas(string application, string title, string label, string placeholder, [FromUri] ListSchemaFilter filter) { var resultingSchemas = new List <ApplicationSchemaDefinition>(); var schemas = MetadataProvider.Application(application).Schemas(); foreach (var schema in schemas) { var matchesMode = schema.Key.Mode == null || (schema.Key.Mode == filter.Mode); var matchesStereotype = filter.Stereotype == null || filter.Stereotype == schema.Value.Stereotype; var matchesName = filter.NamePattern == null || schema.Key.SchemaId.StartsWith(filter.NamePattern); if (matchesMode && matchesStereotype && matchesName) { if (!schema.Value.Abstract) { resultingSchemas.Add(schema.Value); } else { var fixedTitle = schema.Value.GetProperty(ApplicationSchemaPropertiesCatalog.WindowPopupHeaderTitle); if (fixedTitle != null) { title = fixedTitle; } } } } return(new SchemaChoosingDataResponse(resultingSchemas, label, placeholder) { Title = title }); }
public static void Init(TestContext testContext) { ApplicationConfiguration.TestclientName = "hapag"; MetadataProvider.StubReset(); var schemas = MetadataProvider.Application("asset").Schemas(); _schema = schemas[new ApplicationMetadataSchemaKey("detail", "output", "web")]; }
public static void Init(TestContext testContext) { ApplicationConfiguration.TestclientName = "otb"; MetadataProvider.StubReset(); var schemas = MetadataProvider.Application("invbalances").Schemas(); _schema = schemas[new ApplicationMetadataSchemaKey("list", "input", "web")]; }
public void TestAssetListReportBug() { var schemas = MetadataProvider.Application("asset").Schemas(); var schema = schemas[new ApplicationMetadataSchemaKey("assetlistreport", null, "web")]; var sliced = SlicedEntityMetadataBuilder.GetInstance(MetadataProvider.Entity("asset"), schema); var select = QuerySelectBuilder.BuildSelectAttributesClause(sliced, QueryCacheKey.QueryMode.List); Debug.Write(select); Assert.IsTrue(select.Contains("CASE WHEN LOCATE('@',aucisowner_.PERSONID) > 0 THEN SUBSTR(aucisowner_.PERSONID,1,LOCATE('@',aucisowner_.PERSONID)-1) ELSE aucisowner_.PERSONID END as \"aucisowner_.hlagdisplayname\"")); }
public void TestSelect3() { var schemas = MetadataProvider.Application("change").Schemas(); var schema = schemas[new ApplicationMetadataSchemaKey("detail", null, "web")]; var sliced = SlicedEntityMetadataBuilder.GetInstance(MetadataProvider.Entity("wochange"), schema); var select = QuerySelectBuilder.BuildSelectAttributesClause(sliced, QueryCacheKey.QueryMode.Detail); Debug.Write(select); Assert.IsFalse(select.Contains("sr_asset_.installdate")); Assert.IsTrue(select.Contains("sr_asset_.serialnum")); }
public static void Init(TestContext testContext) { ApplicationConfiguration.TestclientName = "hapag"; MetadataProvider.StubReset(); var schemas = MetadataProvider.Application("servicerequest").Schemas(); _schema = schemas[new ApplicationMetadataSchemaKey("list", "input", "web")]; var asset = MetadataProvider.Application("asset").Schemas(); _assetSchema = asset[new ApplicationMetadataSchemaKey("list", "input", "web")]; }
private static SlicedEntityMetadata GetUnionInstance(string unionSchema) { var appAndSchema = SchemaUtil.ParseApplicationAndKey(unionSchema); var appName = appAndSchema.Item1; var app = MetadataProvider.Application(appName); var entityName = app.Entity; var entity = MetadataProvider.Entity(entityName); var schema = app.Schema(appAndSchema.Item2); return(GetInstance(entity, schema, 300, true)); }
private static void Validate(string applicationName) { try { MetadataProvider.Application(applicationName); } catch (Exception) { try { MetadataProvider.Entity(applicationName); } catch (Exception) { throw new InvalidOperationException(String.Format(AppNotFoundEx, applicationName)); } } }
public void ChangeSRUnionSearch() { var dto = new SearchRequestDto(); var completeOne = MetadataProvider.Application("srforchange"); var metadata = completeOne.ApplyPolicies(new ApplicationMetadataSchemaKey("changeunionschema"), InMemoryUser.TestInstance(), ClientPlatform.Web); ApplicationSchemaDefinition schema; var sliced = SlicedEntityMetadataBuilder.GetInstance(MetadataProvider.Entity("srforchange"), metadata.Schema); var result = QueryFromBuilder.Build(sliced, dto); Assert.AreEqual("from SR as srforchange left join asset as asset_ on (srforchange.assetnum = asset_.assetnum and srforchange.siteid = asset_.siteid)", result); }
public void TestSelectNullAttributes() { var schemas = MetadataProvider.Application("srforchange").Schemas(); var schema = schemas[new ApplicationMetadataSchemaKey("changeunionschema", null, "web")]; var sliced = SlicedEntityMetadataBuilder.GetInstance(MetadataProvider.Entity("srforchange"), schema, 300, true); Assert.AreEqual(15, sliced.Attributes(EntityMetadata.AttributesMode.NoCollections).Count()); var select = QuerySelectBuilder.BuildSelectAttributesClause(sliced, QueryCacheKey.QueryMode.List); Debug.Write(select); Assert.IsTrue(select.Contains("null")); }
public IGenericResponseResult ExpandCompositions(String application, [FromUri] DetailRequest detailRequest, [FromUri] CompositionExpanderHelper.CompositionExpansionOptions options) { var user = SecurityFacade.CurrentUser(); var applicationMetadata = MetadataProvider .Application(application) .ApplyPolicies(detailRequest.Key, user, ClientPlatform.Web); // var result = (ApplicationDetailResult)DataSetProvider.LookupAsBaseDataSet(application).Get(applicationMetadata, user, detailRequest); var compositionSchemas = CompositionBuilder.InitializeCompositionSchemas(applicationMetadata.Schema); return(COMPOSITIONExpander.Expand(SecurityFacade.CurrentUser(), compositionSchemas, options)); }
public void TestAddWorkLogToIncident() { ApplicationConfiguration.TestclientName = "gric"; MetadataProvider.StubReset(); var metadata = MetadataProvider.Entity("SR"); var completeApp = MetadataProvider.Application("servicerequest"); var sliced = MetadataProvider.SlicedEntityMetadata(completeApp.ApplyPolicies( new ApplicationMetadataSchemaKey("editdetail"), InMemoryUser.TestInstance("test"), ClientPlatform.Web)); var attributes = sliced.NonListAssociations(); Assert.IsTrue(attributes.Count(a => a.Qualifier == "asset_") == 1); }
private IApplicationResponse DoExecute(string application, JObject json, string id, string operation, ApplicationMetadataSchemaKey currentschemaKey, bool mockMaximo, ApplicationMetadataSchemaKey nextSchemaKey, ClientPlatform platform) { MockingUtils.EvalMockingErrorModeActive(json, Request); var user = SecurityFacade.CurrentUser(); if (null == user) { throw new HttpResponseException(HttpStatusCode.Unauthorized); } if (Log.IsDebugEnabled) { Log.Debug(json.ToString(Newtonsoft.Json.Formatting.Indented, new StringEnumConverter())); } var applicationMetadata = MetadataProvider .Application(application) .ApplyPolicies(currentschemaKey, user, platform); ContextLookuper.SetInternalQueryExecution(); var maximoResult = new MaximoResult(id, null); if (!mockMaximo) { maximoResult = DataSetProvider.LookupAsBaseDataSet(application) .Execute(applicationMetadata, json, id, operation); } if (currentschemaKey.Platform == ClientPlatform.Mobile) { //mobile requests doesn´t have to handle success messages or redirections return(null); } if (nextSchemaKey == null) { //keep on same schema unless explicetely told otherwise nextSchemaKey = currentschemaKey; } if (nextSchemaKey != null) { var response = _nextSchemaRouter.RedirectToNextSchema(applicationMetadata, operation, maximoResult.Id, platform, currentschemaKey, nextSchemaKey, mockMaximo); response.SuccessMessage = _successMessageHandler.FillSucessMessage(applicationMetadata, maximoResult.Id, operation); return(response); } return(new BlankApplicationResponse() { SuccessMessage = _successMessageHandler.FillSucessMessage(applicationMetadata, maximoResult.Id, operation) }); }
private ApplicationMetadata DetermineSchemaFromAsset(Entity initialValues) { var assetclassstructure = (string)initialValues.GetAttribute("classstructureid"); var completeApplication = MetadataProvider.Application("servicerequest"); if (AssetConstants.PhoneClassStructure.Equals(assetclassstructure)) { return(completeApplication.ApplyPoliciesWeb(new ApplicationMetadataSchemaKey("phone"))); } if (IsPrinterAsset(assetclassstructure)) { return(completeApplication.ApplyPoliciesWeb(new ApplicationMetadataSchemaKey("printer"))); } return(completeApplication.ApplyPoliciesWeb(new ApplicationMetadataSchemaKey("general"))); }
private IApplicationResponse Get(string application, [FromUri] DataRequestAdapter request) { var user = SecurityFacade.CurrentUser(); if (null == user) { throw new HttpResponseException(HttpStatusCode.Unauthorized); } var applicationMetadata = MetadataProvider .Application(application) .ApplyPolicies(request.Key, user, ClientPlatform.Web); return(((BaseApplicationDataSet)_dataSetProvider.LookupDataSet(application)).Get(applicationMetadata, user, request)); }
public void TestSelect4() { var schemas = MetadataProvider.Application("imac").Schemas(); var schema = schemas[new ApplicationMetadataSchemaKey("detail", "output", "web")]; var sliced = SlicedEntityMetadataBuilder.GetInstance(MetadataProvider.Entity("imac"), schema); var select = QuerySelectBuilder.BuildSelectAttributesClause(sliced, QueryCacheKey.QueryMode.Detail); Debug.Write(select); Assert.IsFalse(select.Contains("case when imac.serialnum")); Assert.IsTrue(select.Contains("case when asset_.serialnum")); var from = QueryFromBuilder.Build(sliced, null); // Debug.Write(from); Assert.IsTrue(from.Contains("left join person as asset_aucisowner_person_ on (asset_aucisowner_.personid = asset_aucisowner_person_.personid)")); }
public void ChangeSRUnionSearch() { var dto = new SearchRequestDto(); dto.BuildUnionDTO(dto, MetadataProvider.FindSchemaDefinition("change.list")); var completeOne = MetadataProvider.Application("change"); var metadata = completeOne.ApplyPolicies(new ApplicationMetadataSchemaKey("list"), InMemoryUser.TestInstance(), ClientPlatform.Web); ApplicationSchemaDefinition schema; var sliced = SlicedEntityMetadataBuilder.GetInstance(MetadataProvider.Entity("wochange"), metadata.Schema, 300); var result = QuerySelectBuilder.BuildSelectAttributesClause(sliced.UnionSchema, QueryCacheKey.QueryMode.Union, dto.unionDTO); Assert.AreEqual("select null, null, null, null, '-666' as zeroedattr, srforchange.description as hlagchangesummary, srforchange.ticketid as ticketid, asset_.description as asset_description, null, null, CASE WHEN srforchange.PLUSPCUSTOMER IS NOT NULL AND srforchange.PLUSPCUSTOMER = 'HLC-00' then 'HLAG' WHEN srforchange.PLUSPCUSTOMER IS NOT NULL AND LENGTH(srforchange.PLUSPCUSTOMER) >= 3 THEN SUBSTR(srforchange.PLUSPCUSTOMER, LENGTH(srforchange.PLUSPCUSTOMER) - 2, 3) ELSE '' END as hlagpluspcustomer, CASE WHEN LOCATE('@',srforchange.REPORTEDBY) > 0 THEN SUBSTR(srforchange.REPORTEDBY,1,LOCATE('@',srforchange.REPORTEDBY)-1) ELSE srforchange.REPORTEDBY END as hlagreportedby, srforchange.status as status ", result); }
public void IncidentHardwareReport() { var dto = new SearchRequestDto(); dto.AppendProjectionField(ProjectionField.Default("asset_assetloccomm_commoditiesownedby_.description")); dto.AppendProjectionField(ProjectionField.Default("asset_assetloccomm_.commodity")); var completeOne = MetadataProvider.Application("incident"); var metadata = completeOne.ApplyPolicies(new ApplicationMetadataSchemaKey("hardwarerepair"), InMemoryUser.TestInstance(), ClientPlatform.Web); ApplicationSchemaDefinition schema; var sliced = SlicedEntityMetadataBuilder.GetInstance(MetadataProvider.Entity("incident"), metadata.Schema); var result = QueryFromBuilder.Build(sliced, dto); Assert.AreEqual("from incident as incident left join asset as asset_ on (incident.assetnum = asset_.assetnum and incident.siteid = asset_.siteid)left join assetloccomm as asset_assetloccomm_ on (asset_.assetnum = asset_assetloccomm_.assetnum and asset_.siteid = asset_assetloccomm_.siteid)left join commodities as asset_assetloccomm_commoditiesownedby_ on (asset_assetloccomm_.commodity = asset_assetloccomm_commoditiesownedby_.commodity and asset_assetloccomm_.itemsetid = asset_assetloccomm_commoditiesownedby_.itemsetid and (asset_assetloccomm_commoditiesownedby_.description like 'Asset owened by%'))", result); }
public static ApplicationMetadata GetAssociationApplicationMetadata(ApplicationAssociationDefinition association) { // See if association has a schema defined string optionApplication; string optionSchemaId; association.Schema.RendererParameters.TryGetValue("application", out optionApplication); association.Schema.RendererParameters.TryGetValue("schemaId", out optionSchemaId); if (!String.IsNullOrWhiteSpace(optionApplication) && !String.IsNullOrWhiteSpace(optionSchemaId)) { return(MetadataProvider .Application(optionApplication) .ApplyPolicies(new ApplicationMetadataSchemaKey(optionSchemaId), SecurityFacade.CurrentUser(), ClientPlatform.Web)); } return(null); }