Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
 public Roulette(IFieldGenerator fieldGenerator, IRandomizer randomizer)
 {
     _fieldGenerator = fieldGenerator;
     _randomizer     = randomizer;
     _fields         = _fieldGenerator.CreateFields();
     _result         = _fields[0];
 }
Ejemplo n.º 3
0
 public void AddField(IFieldGenerator field)
 {
     if (this.m_fields == null)
     {
         this.m_fields = new List <IFieldGenerator>();
     }
     this.m_fields.Add(field);
 }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
        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&lt;Nullable&lt;T&gt;&gt;.
        /// </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);
        }
Ejemplo n.º 7
0
 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();
 }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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());
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 12
0
 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);
        }
Ejemplo n.º 15
0
        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)
 {
 }
Ejemplo n.º 17
0
 /// <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));
 }
Ejemplo n.º 19
0
 protected override IFieldGeneratorHandler <TestFieldViewModel, TestEnum> GetHandler(IFieldGenerator <TestFieldViewModel, TestEnum> handler)
 {
     return(new EnumListHandler <TestFieldViewModel, TestEnum>(handler));
 }
Ejemplo n.º 20
0
 /// <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)
 {
 }
Ejemplo n.º 22
0
 /// <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)
 {
 }
Ejemplo n.º 23
0
 public PasswordHandler(IFieldGenerator <TModel, T> fieldGenerator, IReadonlyFieldConfiguration fieldConfiguration)
     : base(fieldGenerator, fieldConfiguration)
 {
 }
Ejemplo n.º 24
0
 protected override IFieldGeneratorHandler <TestFieldViewModel, int> GetHandler(IFieldGenerator <TestFieldViewModel, int> handler)
 {
     return(new NumberHandler <TestFieldViewModel, int>(handler));
 }
Ejemplo n.º 25
0
 /// <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()));
 }
Ejemplo n.º 27
0
 /// <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);
 }
Ejemplo n.º 28
0
 /// <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)
 {
 }
Ejemplo n.º 29
0
 protected override IFieldGeneratorHandler <TestFieldViewModel, HttpPostedFileBase> GetHandler(IFieldGenerator <TestFieldViewModel, HttpPostedFileBase> handler)
 {
     return(new FileHandler <TestFieldViewModel, HttpPostedFileBase>(handler));
 }
Ejemplo n.º 30
0
 /// <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)
 {
 }
Ejemplo n.º 31
0
 protected FieldGeneratorHandler(IFieldGenerator <TModel, T> fieldGenerator, IReadonlyFieldConfiguration fieldConfiguration)
 {
     FieldGenerator     = fieldGenerator;
     FieldConfiguration = fieldConfiguration;
 }