public void AddNewTable_InsertTableToEmptyDatabase() { var options = new DbContextOptionsBuilder <AppDbContext>().UseInMemoryDatabase("DatabaseForTesting").Options; using (var context = new AppDbContext(options)) { //Arrange TableRepository tableRepository = new TableRepository(context); MembersRepository memberRepository = new MembersRepository(context); NewTableViewModel model = new NewTableViewModel(); model.TableName = "NewGroup"; model.NumberOfMembers = 3; model.Names = new HashSet <string>() { "Adam", "Wiktor", "Piotr" }; //Act tableRepository.AddNewTable(model); var data = tableRepository.GetTables(); var members = memberRepository.GetAllMembers(data[0].TableInfoId).ToList(); //Assert Assert.AreEqual(1, data.Count); Assert.IsNotNull(data); Assert.AreEqual("NewGroup", data[0].TableName); Assert.AreEqual(1, data[0].TableInfoId); Assert.AreEqual(3, members.Count); Assert.AreEqual("Adam", members[0].Name); } }
public async Task <IActionResult> NewTable(NewTableViewModel model) { var mapped = _mapper.Map <Table>(model); await _tableService.AddNewTable(mapped, User.Identity.Name); return(RedirectToAction(nameof(Tables))); }
public static async Task <string> NewTableAsync(Authentication authentication, ITableCategoryDescriptor descriptor) { var dialog = await NewTableViewModel.CreateInstanceAsync(authentication, descriptor); if (dialog?.ShowDialog() == true) { return(dialog.TableName); } return(null); }
public IActionResult Add(NewTableViewModel model) { if (ModelState.IsValid) { if (_appDbContext.Tables.Any(a => a.TableName == model.TableName)) { ModelState.AddModelError("TableName", "There is already group with this name in the database"); return(View()); } if (model.Names == null || model.Names.Count < 2 || model.Names.Count > 15) { ModelState.AddModelError("Names", "There must be at least 2 members and no more than 15"); return(View()); } if (model.NumberOfMembers > model.Names.Count) { ModelState.AddModelError("Names", "Names must be unique"); return(View()); } if (model.Names.Contains(null)) { ModelState.AddModelError("Names", "Names must be unique and have more than 1 letter"); return(View()); } foreach (var name in model.Names) { name.Trim(); if (name.Length < 1 || name.Length > 20) { ModelState.AddModelError("Names", "The name is too short or too long"); return(View()); } } } else { return(View()); } TableRepository tableRepository = new TableRepository(_appDbContext); tableRepository.AddNewTable(model); return(RedirectToAction("Success")); }
public void AddNewTable(NewTableViewModel model) { byte id = 1; if (appDbContext.Tables.Any()) { id = appDbContext.Tables.Max(x => x.TableInfoId); id++; } byte memberId = 1; if (appDbContext.Members.Any()) { memberId = appDbContext.Members.Max(x => x.MembersInfoId); } List <MembersInfo> ListOfMembers = new List <MembersInfo>(); foreach (var name in model.Names) { memberId++; ListOfMembers.Add(new MembersInfo() { MembersInfoId = memberId, Name = name, TableNumber = id }); } var tabela = new TableInfo() { TableInfoId = id, TableName = model.TableName, Members = ListOfMembers }; appDbContext.Tables.Add(tabela); appDbContext.SaveChanges(); }
private async void Restore(IDataBase dataBase) { if (this.isFirst == true) { return; } this.isFirst = true; var domainContext = dataBase.GetService(typeof(IDomainContext)) as IDomainContext; var items = await dataBase.Dispatcher.InvokeAsync(() => { var restoreList = new List <System.Action>(); var domains = domainContext.Domains.Where(item => item.DataBaseID == dataBase.ID).ToArray(); foreach (var item in domains) { if (item.Users.Contains(this.authenticator.ID) == false) { continue; } var itemPath = item.DomainInfo.ItemPath; var itemType = item.DomainInfo.ItemType; if (item.Host is ITableContent content) { var table = content.Table; var tableDescriptor = this.browser.GetDescriptor(table.Path) as ITableDescriptor; restoreList.Add(new System.Action(() => this.DocumentService.OpenTable(this.authenticator, tableDescriptor))); } else if (item.Host is ITableTemplate template) { if (itemType == "NewTableTemplate") { var category = dataBase.TableContext[itemPath] as ITableCategory; var dialog = new NewTableViewModel(this.authenticator, category, template); restoreList.Add(new System.Action(() => dialog.ShowDialog())); } else if (itemType == "NewChildTableTemplate") { var table = dataBase.TableContext[itemPath] as ITable; var dialog = new NewChildTableViewModel(this.authenticator, table, template); restoreList.Add(new System.Action(() => dialog.ShowDialog())); } else if (itemType == "TableTemplate") { var table = dataBase.TableContext[itemPath] as ITable; var dialog = new EditTemplateViewModel(this.authenticator, table, template); restoreList.Add(new System.Action(() => dialog.ShowDialog())); } } } return(restoreList.ToArray()); }); foreach (var item in items) { if (this.cremaAppHost.IsLoaded == false) { return; } item(); } }
public void AddNewTable_InsertTableToDatabaseWithData() { var options = new DbContextOptionsBuilder <AppDbContext>().UseInMemoryDatabase("DatabaseForTesting2").Options; using (var context = new AppDbContext(options)) { //Arrange TableRepository tableRepository = new TableRepository(context); MembersRepository memberRepository = new MembersRepository(context); context.Tables.Add(new TableInfo() { TableInfoId = 1, TableName = "NewGroup", Members = new List <MembersInfo>() { new MembersInfo { Name = "Adam", MembersInfoId = 1, TableNumber = 1 }, new MembersInfo { Name = "Wiktor", MembersInfoId = 2, TableNumber = 1 } } }); context.Tables.Add(new TableInfo() { TableInfoId = 3, TableName = "NewGroup", Members = new List <MembersInfo>() { new MembersInfo { Name = "Adam", MembersInfoId = 5, TableNumber = 3 }, new MembersInfo { Name = "Wiktor", MembersInfoId = 6, TableNumber = 3 } } }); context.SaveChanges(); NewTableViewModel model = new NewTableViewModel(); model.TableName = "Misiaki"; model.NumberOfMembers = 3; model.Names = new HashSet <string>() { "Heniek", "Olgierd", "Piotr" }; //Act tableRepository.AddNewTable(model); var data = tableRepository.GetTables(); var table = data.First(a => a.TableName == "Misiaki"); var members = memberRepository.GetAllMembers(table.TableInfoId).ToList(); var heniek = members.First(a => a.Name == "Heniek"); //Assert Assert.AreEqual(3, data.Count); Assert.IsNotNull(data); Assert.AreEqual(4, table.TableInfoId); Assert.AreEqual("Misiaki", table.TableName); Assert.AreEqual(3, table.Members.Count); Assert.AreEqual(3, members.Count); Assert.AreEqual("Heniek", heniek.Name); Assert.AreEqual(7, heniek.MembersInfoId); Assert.AreEqual(4, heniek.TableNumber); } }