// private string ApplySpecificDetailClauses(string entity, string baseWhereClause) { // var user = SecurityFacade.CurrentUser(); // if (user.IsInRole("tom") || user.IsInRole("itom") && entity.EqualsAny("servicerequest", "asset", "incident")) { // return Default; // } // if (IsWWUser(user)) { // return Default; // } // // return baseWhereClause; // } private string DoBuildBaseWhereClause(string entityName, SearchRequestDto searchDto) { if (searchDto != null && searchDto.IgnoreWhereClause) { return(Default); } var nameToLookup = GetNameToLookup(entityName); if (nameToLookup == null) { return(Default); } var context = searchDto == null ? null : searchDto.Context; var whereClauseResult = _whereClauseFacade.Lookup(nameToLookup, context); if (whereClauseResult == null || whereClauseResult.IsEmpty()) { return(Default); } var user = SecurityFacade.CurrentUser(); if (!String.IsNullOrEmpty(whereClauseResult.Query)) { return(DefaultValuesBuilder.ConvertAllValues(whereClauseResult.Query, user)); } if (!String.IsNullOrEmpty(whereClauseResult.ServiceName)) { var ob = SimpleInjectorGenericFactory.Instance.GetObject <object>(whereClauseResult.ServiceName); if (ob != null) { var result = ReflectionUtil.Invoke(ob, whereClauseResult.MethodName, new object[] { }); if (!(result is String)) { return(Default); } return(DefaultValuesBuilder.ConvertAllValues((string)result, user)); } } return(Default); }
protected virtual ApplicationDetailResult GetApplicationDetail(ApplicationMetadata application, InMemoryUser user, DetailRequest request) { var id = request.Id; var entityMetadata = MetadataProvider.SlicedEntityMetadata(application); var applicationCompositionSchemas = CompositionBuilder.InitializeCompositionSchemas(application.Schema); DataMap datamap; if (id == null) { datamap = DefaultValuesBuilder.BuildDefaultValuesDataMap(application, request.InitialValues); } else { datamap = (DataMap) _maximoConnectorEngine.FindById(application.Schema, entityMetadata, id); if (datamap == null) { throw new InvalidOperationException("You don´t have enough permissions to see that register. contact your administrator"); } var prefetchCompositions = "true".EqualsIc(application.Schema.GetProperty(ApplicationSchemaPropertiesCatalog.PreFetchCompositions)) || "#all".Equals(request.CompositionsToFetch); var compostionsToUse = new Dictionary <string, ApplicationCompositionSchema>(); foreach (var compositionEntry in applicationCompositionSchemas) { if (prefetchCompositions || FetchType.Eager.Equals(compositionEntry.Value.FetchType) || compositionEntry.Value.INLINE) { compostionsToUse.Add(compositionEntry.Key, compositionEntry.Value); } } if (compostionsToUse.Any()) { GetCompositionData(application, new PreFetchedCompositionFetchRequest(new List <AttributeHolder> { datamap }), null); } } var associationResults = BuildAssociationOptions(datamap, application, request); var detailResult = new ApplicationDetailResult(datamap, associationResults, application.Schema, applicationCompositionSchemas, id); return(detailResult); }
public static IDictionary <String, object> GetParameters(SearchRequestDto listDto) { IDictionary <String, object> resultDictionary = new Dictionary <string, object>(); var searchParameters = listDto.GetParameters(); if (searchParameters == null) { return(resultDictionary); } foreach (var searchParameter in searchParameters) { var parameter = searchParameter.Value; if (parameter.IsDate) { var dt = parameter.GetAsDate; HandleDateParameter(parameter, resultDictionary, searchParameter, dt); } else if (parameter.IsNumber && (parameter.Value is string)) { try { var int32 = Convert.ToInt32(parameter.Value); resultDictionary.Add(searchParameter.Key, int32); } catch { //its declared as a number, but the client passed a string like %10%, for contains, or even SR123 resultDictionary.Add(searchParameter.Key, parameter.Value); } } else if (parameter.Value != null && parameter.Value.ToString().StartsWith("@")) { resultDictionary.Add(searchParameter.Key, DefaultValuesBuilder.GetDefaultValue(parameter.Value.ToString(), null, DefaultValuesBuilder.DBDateTimeFormat)); } else { resultDictionary.Add(searchParameter.Key, parameter.Value); } } return(resultDictionary); }