Exemple #1
0
        public async Task BuildAsync(IEntityBuilder builder)
        {
            var descriptor = this._endpointDescriptorProvider.GetEndpointDescriptor(this._captureExpression, this._claimsPrincipal);

            if (descriptor == null)
            {
                await Task.CompletedTask;

                return;
            }

            if (descriptor.Body != null)
            {
                throw new InvalidOperationException("Cannot add link, body is not null!");
            }

            if (descriptor.Method != "GET")
            {
                throw new InvalidOperationException("Cannot add link, method is not GET!");
            }

            var href = this._hrefFactory.MakeHref(descriptor);

            builder.WithLink(new Link(this._name, href, this._rel));
        }
        /// <summary>
        /// Implemented by the derived class to provide a sprite set used
        /// to draw a preview of this structure on MapView.
        /// </summary>
        protected AlphaBlendSpriteSet createAlphaSprites()
        {
            IEntityBuilder contrib = current.current;

            if (contrib is LandBuilderContribution)
            {
                return(null);
            }
            Sprite[,,] temp;
            if (contrib is VarHeightBuildingContribution)
            {
                VarHeightBuildingContribution vhcontrib = (VarHeightBuildingContribution)contrib;
                Size sz      = vhcontrib.size;
                int  pHeight = 3;
                temp = new Sprite[sz.Width, sz.Height, pHeight];
                for (int z = 0; z < pHeight; z++)
                {
                    for (int y = 0; y < sz.Height; y++)
                    {
                        for (int x = 0; x < sz.Width; x++)
                        {
                            temp[x, y, z] = vhcontrib.getSprites(x, y, z, pHeight)[0];
                        }
                    }
                }
            }
            else
            {
                temp = ((CommercialStructureContribution)contrib).sprites;
            }
            return(new AlphaBlendSpriteSet(temp));
        }
Exemple #3
0
        public static void FillEntityView <T>(this IEntityBuilder entityBuilder
                                              , ref T entityView
                                              , FasterList <KeyValuePair <Type, ActionCast <T> > >
                                              entityViewBlazingFastReflection
                                              , object[] implementors,
#if DEBUG && !PROFILER
                                              Dictionary <Type, ECSTuple <object, int> > implementorsByType
        public object ModifyTargetValue(IEntityBuilder caller, Type SourcePropertyType, object NewValue)
        {
            if (!(NewValue is string))
            {
                throw new ArgumentException(String.Format("Expected NewValue ({0}) to be string", NewValue), "NewValue");
            }

            string strValue = (string)NewValue;

            string tokenPattern    = "(?<TokenMatch>" + Token.GetRegexPattern(null) + "){1}";
            string nontokenPattern = "(?<NontokenMatch>.*)";

            string pattern = (this.Direction == AppendDirection.Postfix) ? (nontokenPattern + tokenPattern) : (tokenPattern + nontokenPattern);

            pattern = "^" + pattern + "$";
            var regex = new Regex(pattern, RegexOptions.Singleline);
            var match = regex.Match(strValue);

            if (!match.Success)
            {
                throw new InvalidOperationException(String.Format("Could not match value {0} with regex {1}", strValue, pattern));
            }

            var grp      = match.Groups["NontokenMatch"];
            var grpValue = grp.Value;

            return(grpValue);
        }
Exemple #5
0
        public Task BuildAsync(IEntityBuilder builder)
        {
            var endpointDescriptor = this._endpointDescriptorProvider.GetEndpointDescriptor(this._captureExpression, this._claimsPrincipal);

            if (endpointDescriptor == null)
            {
                return(Task.CompletedTask);
            }

            var method = endpointDescriptor.Method;
            var href   = this._hrefFactory.MakeHref(endpointDescriptor);
            var fields = this._fieldsFactory.MakeFields(new ActionArgument(endpointDescriptor.BodyArgument.Descriptor, endpointDescriptor.BodyArgument.Value));

            var action = new Actions.Action(this._name, href, method, fields);

            if (this._configureActionBuilder != null)
            {
                var actionBuilder = new ActionBuilder <TBody>(action);

                this._configureActionBuilder(actionBuilder);
            }

            builder.WithAction(action);

            return(Task.CompletedTask);
        }
 public override void ModifyAbnfSyntaxRepresentationFor(IEntityBuilder caller, ref object value, StringBuilder representation)
 {
     if (value == null)
     {
         representation.Clear();
     }
 }
        static int SetupSpecialEntityStruct(IEntityBuilder[] defaultEntities, out IEntityBuilder[] entitiesToBuild,
                                            int extraLenght)
        {
            int length = defaultEntities.Length;
            int index  = -1;

            for (var i = 0; i < length; i++)
            {
                //the special entity already exists
                if (defaultEntities[i].GetEntityType() == EntityBuilderUtilities.ENTITY_STRUCT_INFO_VIEW)
                {
                    index = i;
                    break;
                }
            }

            if (index == -1)
            {
                index           = length + extraLenght;
                entitiesToBuild = new IEntityBuilder[index + 1];
            }
            else
            {
                entitiesToBuild = new IEntityBuilder[length + extraLenght];
            }

            Array.Copy(defaultEntities, 0, entitiesToBuild, 0, length);

            return(index);
        }
Exemple #8
0
        public static T BuildAndPersist <T>(this IEntityBuilder <T> builder, ISession session) where T : SystemEntity
        {
            var entity = builder.Build();

            session.Transact(s => s.Save(entity));
            return(entity);
        }
Exemple #9
0
        public override void ModifyAbnfSyntaxRepresentationFor(IEntityBuilder caller, ref object value, StringBuilder representation)
        {
            if (value == null)
            {
                return;
            }

            string strValue;

            if (value is string)
            {
                strValue = (string)value;
            }
            else
            {
                Type TargetType = value.GetType();
                var  converter  = GetConverterFor(TargetType);

                if (converter == null)
                {
                    converter = caller.DefaultConverter;
                }

                if (converter == null)
                {
                    throw new NullReferenceException(String.Format("Could not find/create an approrpiate converter for type {0}", TargetType.Name));
                }

                strValue = converter.ConvertToString(value);
            }

            representation.Append(strValue);
        }
Exemple #10
0
        /// <summary>
        ///     Sets the partition key, row key, and creates a composite entity key
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <typeparam name="TEntityBuilder"></typeparam>
        /// <param name="builder"></param>
        /// <param name="partitionKeyExpression"></param>
        /// <param name="rowKeyExpression"></param>
        /// <returns></returns>
        public static TEntityBuilder PartitionAndRowKey <TEntity, TEntityBuilder>(
            [NotNull] this IEntityBuilder <TEntity, TEntityBuilder> builder,
            [NotNull] Expression <Func <TEntity, object> > partitionKeyExpression,
            [NotNull] Expression <Func <TEntity, object> > rowKeyExpression)
            where TEntityBuilder : IEntityBuilder <TEntity, TEntityBuilder>
        {
            Check.NotNull(builder, "builder");
            Check.NotNull(partitionKeyExpression, "partitionKeyExpression");
            Check.NotNull(rowKeyExpression, "rowKeyExpression");

            var entityType = builder.Metadata;

            var partitionKeyInfo = partitionKeyExpression.GetPropertyAccess();
            var rowKeyInfo       = rowKeyExpression.GetPropertyAccess();

            var partitionKey = entityType.GetOrAddProperty(partitionKeyInfo);
            var rowKey       = entityType.GetOrAddProperty(rowKeyInfo);

            partitionKey.SetColumnName("PartitionKey");
            rowKey.SetColumnName("RowKey");

            entityType.GetOrSetPrimaryKey(new[] { partitionKey, rowKey });

            return((TEntityBuilder)builder);
        }
Exemple #11
0
        public override void ModifyAbnfSyntaxRepresentationFor(IEntityBuilder caller, ref object memberValue, StringBuilder representation)
        {
            if (memberValue == null)
            {
                return;
            }

            Type objType = memberValue.GetType();

            if (!this.Types.Contains(objType))
            {
                throw new InvalidOperationException(String.Format("Encountered unknown object type {0}", objType.Name));
            }

            var builder = caller.OwningSyntax.Entity(objType);

            if (builder == null)
            {
                throw new InvalidOperationException(String.Format("No AbnfSyntaxBuilder-type registered for {0}", objType.Name));
            }

            string abnfSyntax = builder.ToAbnfSyntax(memberValue);

            representation.Append(abnfSyntax);
        }
        static (int indexSerial, int indexDynamic) SetupSpecialEntityStruct(IEntityBuilder[] defaultEntities,
                                                                            out IEntityBuilder[] entitiesToBuild)
        {
            int length    = defaultEntities.Length;
            int newLenght = length + 1;

            int indexSerial  = -1;
            int indexDynamic = -1;

            for (var i = 0; i < length; ++i)
            {
                if (defaultEntities[i].GetEntityType() == _serializableStructType)
                {
                    indexSerial = i;
                    --newLenght;
                }

                if (defaultEntities[i].GetEntityType() == EntityBuilderUtilities.ENTITY_STRUCT_INFO_VIEW)
                {
                    indexDynamic = i;
                }
            }

            entitiesToBuild = new IEntityBuilder[newLenght];

            Array.Copy(defaultEntities, 0, entitiesToBuild, 0, length);

            return(indexSerial, indexDynamic);
        }
        public static SqlServerEntityBuilder ForSqlServer <TEntity, TEntityBuilder>(
            [NotNull] this IEntityBuilder <TEntity, TEntityBuilder> entityBuilder)
            where TEntityBuilder : IEntityBuilder <TEntity, TEntityBuilder>
        {
            Check.NotNull(entityBuilder, "entityBuilder");

            return(new SqlServerEntityBuilder(entityBuilder.Metadata));
        }
 public EntityFacade(IEntityDataService entityDataSrv, IEntityBuilder <Entity, Category> entityBuilder, IEntitySchemeDataService schemesDataSrvcade, IUnitOfWork unitOfWork, ICategoryDataService categoryDataService)
 {
     _entityDataSrv       = entityDataSrv;
     _entityBuilder       = entityBuilder;
     _schemesDataSrv      = schemesDataSrvcade;
     _unitOfWork          = unitOfWork;
     _categoryDataService = categoryDataService;
 }
Exemple #15
0
 public ActionBuilderStub(IEntityBuilder source, IEntityBuilder target, string stringRepresentation,
                          Resolver <IActionBuilder> resolver)
     : base(stringRepresentation)
 {
     Source    = source;
     Target    = target;
     _resolver = resolver;
 }
Exemple #16
0
        public static AtsEntityBuilder <TEntity> ForAzureTableStorage <TEntity, TEntityBuilder>(
            [NotNull] this IEntityBuilder <TEntity, TEntityBuilder> entityBuilder)
            where TEntityBuilder : IEntityBuilder <TEntity, TEntityBuilder>
        {
            Check.NotNull(entityBuilder, "entityBuilder");

            return(new AtsEntityBuilder <TEntity>(entityBuilder.Metadata));
        }
Exemple #17
0
 public IEnumerable <TIEntity> ExecuteReader <TIEntity>(IDbCommand command, IEntityBuilder <TIEntity> builder)
     where TIEntity : class
 {
     builder.EntityCache = Cache ?? new EntitiesCache();
     // Need for VS2008 compilation
     // ReSharper disable once RedundantTypeArgumentsOfMethod
     return(ExecuteCommandReader <TIEntity>(command, builder.Deserialize, builder.Offset));
 }
Exemple #18
0
        public IBuffBuilderCollection Buffs(IEntityBuilder source = null, params IEntityBuilder[] targets)
        {
            var allEntitiesBuilder = EntityBuilder.AllEntities;
            var sourceEntity       = source ?? allEntitiesBuilder;
            var targetEntity       = targets.Any() ? new CompositeEntityBuilder(targets) : allEntitiesBuilder;

            return(new BuffBuilderCollection(_statFactory, _allBuffs, sourceEntity, targetEntity));
        }
        public IStatBuilder EffectOn(IEntityBuilder target)
        {
            return(new StatBuilder(StatFactory, FromStatFactory(BuildStats)));

            IEnumerable <IStat> BuildStats(BuildParameters parameters, Entity source, string identity)
            => target.Build(parameters.ModifierSourceEntity)
            .Select(t => BuildEffectStat(source, t, identity));
        }
        public static RelationalEntityBuilder ForRelational <TEntity, TEntityBuilder>(
            [NotNull] this IEntityBuilder <TEntity, TEntityBuilder> entityBuilder)
            where TEntityBuilder : IEntityBuilder <TEntity, TEntityBuilder>
        {
            Check.NotNull(entityBuilder, "entityBuilder");

            return(new RelationalEntityBuilder(entityBuilder.Metadata));
        }
 public CoreStatBuilderFromCoreBuilder(
     ICoreBuilder <T> coreBuilder,
     StatFactory statFactory,
     IEntityBuilder entityBuilder = null)
 {
     _coreBuilder   = coreBuilder;
     _statFactory   = statFactory;
     _entityBuilder = entityBuilder ?? new ModifierSourceEntityBuilder();
 }
 public PatchEntityFromModelCommandHandler(
     ILogger <PatchEntityFromModelCommandHandler <TModel, TEntity, TKey, TContext> > logger,
     IEntityRepository <TContext> repository,
     IEntityBuilder <TEntity, TKey> entityBuilder)
 {
     this.logger        = logger;
     this.repository    = repository;
     this.entityBuilder = entityBuilder;
 }
        public IStatBuilder AddStatForSource(IStatBuilder stat, IEntityBuilder source)
        {
            var baseCoreBuilder = new StatBuilderAdapter(base.AddStat(stat));
            var coreBuilder     = new StatBuilderWithValueConverter(baseCoreBuilder,
                                                                    target => CreateAddStatMultiplier(source, target),
                                                                    (l, r) => l.Multiply(r));

            return(new StatBuilder(StatFactory, coreBuilder));
        }
Exemple #24
0
        private IStatBuilder MultiplyValueByEffectModifier(
            IStatBuilder gainedStat, string buffIdentity, IEntityBuilder targetEntities)
        {
            var coreStatBuilder = new StatBuilderWithValueConverter(new StatBuilderAdapter(gainedStat),
                                                                    (ps, target) => new StatValue(_statFactory.BuffEffect(ps.ModifierSourceEntity, target, buffIdentity)),
                                                                    (l, r) => l.Multiply(r));

            return(new StatBuilder(_statFactory, coreStatBuilder).For(targetEntities));
        }
Exemple #25
0
        public IStatBuilder ApplyToEntity(IEntityBuilder target)
        {
            var coreStats = _buffs
                            .Select(b => ApplyToEntity(b.Buff, target))
                            .Select(b => new StatBuilderAdapter(b))
                            .ToList();

            return(new StatBuilder(_statFactory, new ConcatCompositeCoreStatBuilder(coreStats)));
        }
        public override string DecorateRegexPattern(IEntityBuilder caller, MemberInfo Source, string InitialPattern)
        {
            if (String.IsNullOrEmpty(InitialPattern))
            {
                throw new ArgumentException("Expected InitialPattern not to be null or empty", "InitialPattern");
            }

            return("(" + InitialPattern + ")?");
        }
 private StatBuilderWithValueConverter(
     ICoreStatBuilder inner, IEntityBuilder entity, Func <BuildParameters, Entity, IValue> buildValue,
     Func <IValueBuilder, IValueBuilder, IValueBuilder> combineValues)
 {
     _inner         = inner;
     _entity        = entity;
     _buildValue    = buildValue;
     _combineValues = combineValues;
 }
        public static TBuilder SharedNameExtension <TEntity, TBuilder>(this IEntityBuilder <TEntity, TBuilder> builder, string value)
            where TBuilder : IEntityBuilder <TEntity, TBuilder>
        {
            builder.Annotation("Annotation", value + ".Annotation");
            builder.Metadata["Metadata"] = value + ".Metadata";
            builder.Model["Model"]       = value + ".Model";

            return((TBuilder)builder);
        }
 private StatBuilderWithValueConverter(
     ICoreStatBuilder inner, IEntityBuilder entity, Func <Entity, IValueBuilder> createValue,
     Func <IValueBuilder, IValueBuilder, IValueBuilder> combineValues)
 {
     _inner         = inner;
     _entity        = entity;
     _createValue   = createValue;
     _combineValues = combineValues;
 }
Exemple #30
0
        public IStatBuilder AddStatForSource(IStatBuilder stat, IEntityBuilder source)
        {
            var baseCoreBuilder = new StatBuilderAdapter(base.AddStat(stat));
            var coreBuilder     = new StatBuilderWithValueConverter(baseCoreBuilder,
                                                                    (ps, target) => BuildAddStatMultiplier(source.Build(ps.ModifierSourceEntity), target),
                                                                    (l, r) => l.Multiply(r));

            return(new StatBuilder(StatFactory, coreBuilder));
        }
Exemple #31
0
		public MainViewModel(IViewModelServices services, IEntityBuilder entityBuilder)
			: base(services)
		{
			if (entityBuilder == null) throw new ArgumentNullException("entityBuilder");
			_entityBuilder = entityBuilder;
		}