/// <inheritdoc /> public override void PrepareFieldConfiguration <TModel, T>(IFieldGenerator <TModel, T> fieldGenerator, IFieldGeneratorHandler <TModel, T> fieldGeneratorHandler, IFieldConfiguration fieldConfiguration, FieldParent fieldParent) { if (fieldParent == FieldParent.Form) { return; } fieldConfiguration.AddValidationClass("help-block"); var displayType = fieldGeneratorHandler.GetDisplayType(fieldConfiguration.ToReadonly()); if (NormalFieldTypes.Contains(displayType)) { fieldConfiguration.Bag.CanBeInputGroup = true; fieldConfiguration.AddClass("form-control").AddLabelClass("control-label"); } if (displayType == FieldDisplayType.Checkbox) { fieldConfiguration.Bag.IsCheckboxControl = true; // Hide the parent label otherwise it looks weird fieldConfiguration.Label("").WithoutLabel(); } if (displayType == FieldDisplayType.List) { fieldConfiguration.Bag.IsRadioOrCheckboxList = true; } }
public Roulette(IFieldGenerator fieldGenerator, IRandomizer randomizer) { _fieldGenerator = fieldGenerator; _randomizer = randomizer; _fields = _fieldGenerator.CreateFields(); _result = _fields[0]; }
public void AddField(IFieldGenerator field) { if (this.m_fields == null) { this.m_fields = new List <IFieldGenerator>(); } this.m_fields.Add(field); }
public GameField(int width, int height, IFieldGenerator fieldGenerator) { Width = width; Height = height; Cells = new Cell[width, height]; FieldGenerator = fieldGenerator; MinesTotal = fieldGenerator.GenerateField(Cells); CellsToOpen = width * height - MinesTotal; }
public void Init() { bet = Substitute.For <IBet>(); fieldGenerator = Substitute.For <IFieldGenerator>(); fieldGenerator.CreateFields().Returns(new List <Field> { new Field(0, color: Field.Green) }); }
/// <summary> /// Returns the underlying type of the field - unwrapping <see cref="Nullable{T}"/> and <see cref="IEnumerable{T}"/> and IEnumerable<Nullable<T>>. /// </summary> /// <param name="fieldGenerator">The field generator wrapping the field</param> /// <returns>The underlying type of the field</returns> public static Type GetUnderlyingType <TModel, T>(this IFieldGenerator <TModel, T> fieldGenerator) { var type = fieldGenerator.Metadata.ModelType; if (HasEnumerableValues(fieldGenerator)) { type = type.GetGenericArguments()[0]; } return(Nullable.GetUnderlyingType(type) ?? type); }
public FormGenerator(Form form, IDatabase database, IFieldGenerator fieldGenerator) { this.form = form; this.Database = database; this.FieldGenerator = fieldGenerator; this.FieldFactory = new FieldFactory(); this.MenuFactory = new MenuFactory(); this.MenuItemFactory = new MenuItemFactory(); this.StatusStrip = new StatusStrip(); this.MarketButtonsStauStatusLabel = new ToolStripStatusLabel(); this.TimerStatusLabel = new ToolStripStatusLabel(); }
public void Init() { randomizer = Substitute.For <IRandomizer>(); fieldGenerator = Substitute.For <IFieldGenerator>(); randomizer.GetNext(0, 1).Returns((uint)0); fieldGenerator.CreateFields().Returns(new List <Field> { new Field(0, color: Field.Green) }); uut = new Roulette(fieldGenerator, randomizer); }
public void GenerateField(IFieldGenerator generator) { for (int y = 0; y < this.matrixNumber; y++) { for (int x = 0; x < this.matrixNumber; x++) { this.cells[y, x].Clear(); } } Actor.ClearEnemies(); ClearRoom(); generator.Generate(); Broker.Global.Publish(GeneratedField.Get()); }
public async Task<Game> LoadGameAsync(string id) { var gameSave = await DataProvider.LoadGameAsync(id); IFieldGenerator generator = FieldGeneratorFactory.Create(gameSave.GeneratorParams); DateTime startTime = DateTime.UtcNow.Subtract(gameSave.Timer); var game = new Game(generator, gameSave.Width, gameSave.Height, startTime); var moveResults = new List<MoveResult>(); foreach (var move in gameSave.PlayerMoves) { moveResults.Add(game.MakeMove(move)); } return game; }
private static IEnumerable <FieldGeneratorHandler <TModel, T> > GetHandlers(IFieldGenerator <TModel, T> g) { yield return(new PasswordHandler <TModel, T>(g)); yield return(new TextAreaHandler <TModel, T>(g)); yield return(new BooleanHandler <TModel, T>(g)); yield return(new FileHandler <TModel, T>(g)); yield return(new ListHandler <TModel, T>(g)); yield return(new EnumListHandler <TModel, T>(g)); yield return(new DateTimeHandler <TModel, T>(g)); yield return(new DefaultHandler <TModel, T>(g)); }
public IActionResult Start(StartGameModel model) { try { var generatorParams = new FieldGeneratorParams(SeedGenerator.GenerateSeed(), model.MinesCount); IFieldGenerator fieldGenerator = FieldGeneratorFactory.Create(generatorParams); var game = new Game(fieldGenerator, model.Width, model.Height); Guid gameKey = Guid.NewGuid(); GameStorage.AddGame(gameKey, game); return(Ok(new GameModelBase { GameKey = gameKey })); } catch (Exception ex) { Log.Error(ex, "Couldn't create the game with params {@Model}", model); return(Error("An error occured while creating the game")); } }
/// <summary> /// Whether or not the given value is present for the field represented by the field generator. /// </summary> /// <param name="value">The value to check is selected</param> /// <param name="fieldGenerator">The field generator wrapping the field</param> /// <returns>Whether or not the value is selected</returns> public static bool IsSelected <TModel, T>(this IFieldGenerator <TModel, T> fieldGenerator, object value) { if (HasEnumerableValues(fieldGenerator)) { return(GetEnumerableValues(fieldGenerator).Contains(value)); } var val = fieldGenerator.GetValue(); if (val == null) { return(value == null); } if (HasMultipleEnumValues(fieldGenerator)) { return((Convert.ToInt64(fieldGenerator.GetValue()) & Convert.ToInt64(value)) != 0); } return(val.Equals(value)); }
public void Setup() { _fc = Substitute.For<IFieldConfiguration>(); _f = Substitute.For<IForm<TestFieldViewModel, IFormTemplate>>(); _f.Template.BeginField(_label, _field, _validation, _metadata, Arg.Any<IReadonlyFieldConfiguration>(), Arg.Any<bool>()).Returns(_beginHtml); _f.Template.Field(_label, _field, _validation, _metadata, Arg.Any<IReadonlyFieldConfiguration>(), Arg.Any<bool>()).Returns(_html); _f.Template.EndField().Returns(_endHtml); _g = Substitute.For<IFieldGenerator>(); _g.GetLabelHtml(Arg.Any<IReadonlyFieldConfiguration>()).Returns(_label); _g.GetFieldHtml(Arg.Any<IReadonlyFieldConfiguration>()).Returns(_field); _g.GetValidationHtml(Arg.Any<IReadonlyFieldConfiguration>()).Returns(_validation); _g.Metadata.Returns(_metadata); _g.GetFieldId().Returns(FieldId); var autoSubstitute = AutoSubstituteContainer.Create(); var helper = autoSubstitute.Resolve<HtmlHelpers<TestFieldViewModel>>(); _f.HtmlHelper.Returns(helper); _f.GetFieldGenerator(Arg.Any<Expression<Func<TestFieldViewModel, string>>>()).Returns(_g); }
public void Setup() { _fc = Substitute.For <IFieldConfiguration>(); _f = Substitute.For <IForm <TestFieldViewModel, IFormTemplate> >(); _f.Template.BeginField(_label, _field, _validation, _metadata, Arg.Any <IReadonlyFieldConfiguration>(), Arg.Any <bool>()).Returns(_beginHtml); _f.Template.Field(_label, _field, _validation, _metadata, Arg.Any <IReadonlyFieldConfiguration>(), Arg.Any <bool>()).Returns(_html); _f.Template.EndField().Returns(_endHtml); _g = Substitute.For <IFieldGenerator>(); _g.GetLabelHtml(Arg.Any <IReadonlyFieldConfiguration>()).Returns(_label); _g.GetFieldHtml(Arg.Any <IReadonlyFieldConfiguration>()).Returns(_field); _g.GetValidationHtml(Arg.Any <IReadonlyFieldConfiguration>()).Returns(_validation); _g.Metadata.Returns(_metadata); _g.GetFieldId().Returns(FieldId); var autoSubstitute = AutoSubstituteContainer.Create(); var helper = autoSubstitute.Resolve <HtmlHelper <TestFieldViewModel> >(); _f.HtmlHelper.Returns(helper); _f.GetFieldGenerator(Arg.Any <Expression <Func <TestFieldViewModel, string> > >()).Returns(_g); }
public TextAreaHandler(IFieldGenerator <TModel, T> fieldGenerator, IReadonlyFieldConfiguration fieldConfiguration) : base(fieldGenerator, fieldConfiguration) { }
/// <summary> /// Constructor for the DateTime Field Generator Handler. /// </summary> /// <param name="fieldGenerator">The field generator for the field</param> public NglDateTimeHandler(IFieldGenerator <TModel, T> fieldGenerator) : base(fieldGenerator) { }
protected override IFieldGeneratorHandler <TestFieldViewModel, string> GetHandler(IFieldGenerator <TestFieldViewModel, string> handler) { return(new DefaultHandler <TestFieldViewModel, string>(handler)); }
protected override IFieldGeneratorHandler <TestFieldViewModel, TestEnum> GetHandler(IFieldGenerator <TestFieldViewModel, TestEnum> handler) { return(new EnumListHandler <TestFieldViewModel, TestEnum>(handler)); }
/// <summary> /// Constructor for the File Field Generator Handler. /// </summary> /// <param name="fieldGenerator">The field generator for the field</param> public FileHandler(IFieldGenerator <TModel, T> fieldGenerator) : base(fieldGenerator) { }
public EnumListHandler(IFieldGenerator <TModel, T> fieldGenerator, IReadonlyFieldConfiguration fieldConfiguration) : base(fieldGenerator, fieldConfiguration) { }
/// <summary> /// Constructor for the Default Field Generator Handler. /// </summary> /// <param name="fieldGenerator">The field generator for the field</param> public DefaultHandler(IFieldGenerator <TModel, T> fieldGenerator) : base(fieldGenerator) { }
public PasswordHandler(IFieldGenerator <TModel, T> fieldGenerator, IReadonlyFieldConfiguration fieldConfiguration) : base(fieldGenerator, fieldConfiguration) { }
protected override IFieldGeneratorHandler <TestFieldViewModel, int> GetHandler(IFieldGenerator <TestFieldViewModel, int> handler) { return(new NumberHandler <TestFieldViewModel, int>(handler)); }
/// <summary> /// Constructor for the Password Field Generator Handler. /// </summary> /// <param name="fieldGenerator">The field generator for the field</param> public PasswordHandler(IFieldGenerator <TModel, T> fieldGenerator) : base(fieldGenerator) { }
public static IFieldGeneratorHandler <TModel, T> GetHandler(IFieldGenerator <TModel, T> fieldGenerator) { return(GetHandlers(fieldGenerator) .First(h => h.CanHandle())); }
/// <summary> /// Represents a method to generate a game field /// with random position of the numbers [1, 15] and /// one empty cell where the movement of the numbers /// will be held. /// </summary> public void GenerateField(IFieldGenerator fieldGenerator) { this.table = fieldGenerator.GenerateField(this.TableRows, this.TableCols); }
/// <summary> /// Constructor for the Default Field Generator Handler. /// </summary> /// <param name="fieldGenerator">The field generator for the field</param> public NumberHandler(IFieldGenerator <TModel, T> fieldGenerator) : base(fieldGenerator) { }
protected override IFieldGeneratorHandler <TestFieldViewModel, HttpPostedFileBase> GetHandler(IFieldGenerator <TestFieldViewModel, HttpPostedFileBase> handler) { return(new FileHandler <TestFieldViewModel, HttpPostedFileBase>(handler)); }
/// <summary> /// Constructor for the Enum Field Generator Handler. /// </summary> /// <param name="fieldGenerator">The field generator for the field</param> public EnumListHandler(IFieldGenerator <TModel, T> fieldGenerator) : base(fieldGenerator) { }
protected FieldGeneratorHandler(IFieldGenerator <TModel, T> fieldGenerator, IReadonlyFieldConfiguration fieldConfiguration) { FieldGenerator = fieldGenerator; FieldConfiguration = fieldConfiguration; }