Esempio n. 1
0
        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)));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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"));
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 7
0
        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);
            }
        }