/// <summary> /// Initializes a new instance of the <see cref="CubeProperty" /> class. /// </summary> /// <param name="property">The property.</param> /// <param name="cube">The cube.</param> /// <param name="de">The de.</param> /// <exception cref="Exception"></exception> public CubeProperty(object property, CubeBase cube, Entity de) { _Property = property; if (property != null) { IsSet = true; } KeyValuePair <string, object> p = (KeyValuePair <string, object>)property; if (p.Value is EntityReference) { EntityReference er = (EntityReference)p.Value; Name = er.Name; LogicalName = er.LogicalName; ValueString = er.Id.ToString(); ValueObject = er.Id; } else if (p.Value is OptionSetValue) { OptionSetValue osv = (OptionSetValue)p.Value; Result mdResult = cube.MetadataRetrieveActions.GetOptionSetText(de.LogicalName, p.Key, osv.Value); if (mdResult.isError) { throw new Exception(mdResult.Message); } Name = mdResult.BusinessObject.ToString(); LogicalName = p.Key; ValueString = osv.Value.ToString(); ValueObject = osv.Value; } else if (p.Value is Money) { Money money = (Money)p.Value; Name = money.Value.ToString(); LogicalName = p.Key; ValueString = money.Value.ToString(); ValueObject = money.Value; } else { Name = p.Value.ToString(); LogicalName = p.Key; ValueString = p.Value.ToString(); ValueObject = p.Value; } }
/// <summary> /// Parses the entities. /// </summary> /// <param name="de">The de.</param> /// <param name="Schema">The schema.</param> /// <param name="cube">The cube.</param> /// <returns>Result.</returns> public static Result ParseEntities(Entity de, string[] Schema, CubeBase cube) { try { Hashtable parsedEntities = new Hashtable(); if (Schema != null && Schema.Length > 0) { ArrayList listSchema = new ArrayList(Schema); foreach (KeyValuePair <string, object> p in de.Attributes) { for (int i = 0; i < listSchema.Count; i++) { if (p.Key == (string)listSchema[i]) { parsedEntities.Add(p.Key, new CubeProperty(p, cube, de)); listSchema.RemoveAt(i); break; } } } if (listSchema.Count > 0) { foreach (string s in listSchema) { parsedEntities.Add(s, new CubeProperty(null)); } } } else { foreach (KeyValuePair <string, object> p in de.Attributes) { parsedEntities.Add(p.Key, new CubeProperty(p, cube, de)); } } CubeEntity cubeE = new CubeEntity(); cubeE.TableCubeEntity = parsedEntities; return(new Result(false, string.Empty, cubeE, cube.LogSystem)); } catch (Exception ex) { return(new Result(true, ex.Message, null, cube.LogSystem)); } }
/// <summary> /// Clones the specified cube. /// </summary> /// <param name="entity">The entity.</param> /// <param name="cube">The cube.</param> /// <returns>Result.</returns> public static Result Clone(this Entity entity, CubeBase cube) { try { var result = new Entity(entity.LogicalName, entity.Id) { EntityState = entity.EntityState, RowVersion = entity.RowVersion }; result.KeyAttributes.AddRange(entity.KeyAttributes.Select(k => new KeyValuePair <string, object>(k.Key, k.Value))); result.Attributes.AddRange(entity.Attributes.Select(a => new KeyValuePair <string, object>(a.Key, a.Value))); return(new Result(false, null, entity, null)); } catch (Exception ex) { return(new Result(true, ex.Message, null, cube.LogSystem)); } }
/// <summary> /// Merges the specified entity. /// </summary> /// <param name="baseEntity">The base entity.</param> /// <param name="entity">The entity.</param> /// <param name="cube">The cube.</param> /// <returns>Result.</returns> public static Result Merge(this Entity baseEntity, Entity entity, CubeBase cube) { try { if (baseEntity == null) { return(new Result(false, null, entity, null)); } if (entity != null) { baseEntity.Attributes.AddRange(entity.Attributes.Where(a => !baseEntity.Contains(a.Key)).Select(b => new KeyValuePair <string, object>(b.Key, b.Value))); } return(new Result(false, null, baseEntity, null)); } catch (Exception ex) { return(new Result(true, ex.Message, null, cube.LogSystem)); } }
public CubeEntity() { cube = ObjectCarrier.GetValue <CubeBase>("cube"); }
/// <summary> /// Initializes a new instance of the <see cref="CubeEntity" /> class. /// </summary> /// <param name="Cube">The cube.</param> public CubeEntity(CubeBase Cube) { cube = Cube; }