示例#1
0
 public ModifierController(POSContext context, IMapper mapper, POSService POSService)
     : base(context, new ModifierDataTableConfig(), mapper)
 {
     _POSService      = POSService;
     _modifierService = new ModifierService(context);
 }
示例#2
0
 public sealed override string ToString()
 {
     return($"{Die}d{Sides}({ModifierService.ModifierSymbol(RollModifier)}{RollModifier}/die){ModifierService.ModifierSymbol(TotalModifier)+TotalModifier}");
 }
示例#3
0
        public void TestAddUpdateDeleteInsertRelatedEntities()
        {
            TestHandler.Handle((DbContextOptions <POSContext> options) => {
                // Create the schema in the database
                using (var context = new POSContext(options))
                {
                    //create database
                    context.Database.EnsureCreated();
                }

                // Run the test against one instance of the context
                using (var context = new POSContext(options))
                {
                    context.CreateModifierData(totalItemModifier: 3);
                    context.SaveChanges();

                    var modClient = new Modifier()
                    {
                        Id           = 1,
                        Name         = "mod1.1",
                        ItemModifier = new HashSet <ItemModifier>()
                        {
                            new ItemModifier {
                                Id = 1, Name = "item1.1", ModifierId = 1
                            },
                            new ItemModifier {
                                Id = 2, Name = "item2.1", ModifierId = 1
                            },
                            new ItemModifier {
                                Name = "item3.1", ModifierId = 1
                            }                                                     //new
                        }
                    };

                    var modifierService = new ModifierService(context);
                    modifierService.UpsertDeleteModiferAndItemModifier(modClient);
                    context.SaveChanges();

                    Assert.AreEqual(context.Modifier.First().Name, "mod1.1");

                    Assert.AreEqual(context.ItemModifier.Count(), 3);
                    var listNameServer = context.ItemModifier
                                         .Select(_ => _.Name)
                                         .ToList()
                                         .Aggregate((cur, next) => $"{cur};{next}");

                    var listNameClient = modClient.ItemModifier
                                         .Select(_ => _.Name)
                                         .ToList()
                                         .Aggregate((cur, next) => $"{cur};{next}");

                    Assert.AreEqual(listNameServer, listNameClient);

                    var itemModifier3 = context.ItemModifier.Find(3);
                    Assert.AreEqual(null, itemModifier3);

                    var itemModifier4 = context.ItemModifier.Find(4);
                    Assert.IsNotNull(itemModifier4);
                }

                using (var context = new POSContext(options))
                {
                    var totalChilds = 1;
                    var modClient   = DataFactory.BuildModifierData(name: "hello1", totalItemModifier: totalChilds);

                    var modifierService = new ModifierService(context);
                    modifierService.UpsertDeleteModiferAndItemModifier(modClient);
                    context.SaveChanges();

                    Assert.AreEqual(
                        context.Modifier
                        .Include(_ => _.ItemModifier)
                        .FirstOrDefault(_ => _.Name == "hello1")
                        .ItemModifier.Count(), totalChilds);
                }
            });
        }