コード例 #1
0
ファイル: ExtensionsTests.cs プロジェクト: Orl4ne/MusicAgora
        public void ToEF_Successful()
        {
            //ARRANGE
            var instrument = new InstrumentTO {
                Id = 4, Name = "Saxophone"
            };
            var libUser = new LibUserTO {
                Id = 1, IdentityUserId = 24
            };
            var category = new CategoryTO {
                Id = 2, Name = "Jazz"
            };
            var sheet = new SheetTO {
                Id = 3, Name = "Sam's Dixie", Category = category, IsCurrent = true, IsIndependance = true, IsGarde = false,
            };
            var sheetPart = new SheetPartTO {
                Id = 2, Instrument = instrument, Sheet = sheet, Path = "Path"
            };
            //ACT
            var instrumentEF = instrument.ToEF();
            var libUserEF    = libUser.ToEF();
            var categoryEF   = category.ToEF();
            var sheetEF      = sheet.ToEF();
            var sheetPartEF  = sheetPart.ToEF();

            //Assert
            Assert.AreEqual(instrument.Name, instrumentEF.Name);
            Assert.AreEqual(libUser.IdentityUserId, libUserEF.IdentityUserId);
            Assert.AreEqual(category.Name, categoryEF.Name);
            Assert.AreEqual(sheet.Name, sheetEF.Name);
            Assert.AreEqual(sheetPart.Sheet.Name, sheetPartEF.Sheet.Name);
        }
コード例 #2
0
        public CategoryTO Update(CategoryTO entity)
        {
            if (entity is null)
            {
                throw new ArgumentNullException(nameof(entity));
            }
            if (entity.Id <= 0)
            {
                throw new ArgumentException("Category To Update Invalid Id");
            }
            if (!libraryContext.Categories.Any(x => x.Id == entity.Id))
            {
                throw new KeyNotFoundException($"Update(CategoryTO) Can't find category to update.");
            }

            var editedEntity = libraryContext.Categories.FirstOrDefault(e => e.Id == entity.Id);

            if (editedEntity != default)
            {
                editedEntity.UpdateFromDetached(entity.ToEF());
            }
            var tracking = libraryContext.Categories.Update(editedEntity);

            tracking.State = EntityState.Detached;
            libraryContext.SaveChanges();

            return(tracking.Entity.ToTransferObject());
        }
コード例 #3
0
        public void DeleteSheet_ProvidingNull_ThrowException()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ISheetRepository    sheetRepository    = new SheetRepository(context);
            ICategoryRepository categoryRepository = new CategoryRepository(context);

            var category = new CategoryTO {
                Name = "Musique de films"
            };
            var addedCategory = categoryRepository.Add(category);
            var category2     = new CategoryTO {
                Name = "Musique de classique"
            };
            var addedCategory2 = categoryRepository.Add(category2);

            context.SaveChanges();

            var sheet = new SheetTO {
                Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true
            };
            var sheet2 = new SheetTO {
                Name = "Young Amadeus", Arranger = "Jan de Haan", Category = addedCategory2, Composer = "Mozart", IsCurrent = true, IsGarde = false, IsIndependance = true
            };

            //Act & Assert
            Assert.ThrowsException <ArgumentException>(() => sheetRepository.Delete(sheet));
        }
コード例 #4
0
        public void UpdateCategory_Successful()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ICategoryRepository categoryRepository = new CategoryRepository(context);

            var category = new CategoryTO {
                Name = "Musiq de flims"
            };
            var category2 = new CategoryTO {
                Name = "Musique Classique"
            };
            var category3 = new CategoryTO {
                Name = "Musique Contemporaine"
            };
            var AddedCategory  = categoryRepository.Add(category);
            var AddedCategory2 = categoryRepository.Add(category2);
            var AddedCategory3 = categoryRepository.Add(category3);

            context.SaveChanges();

            //Act
            AddedCategory.Name = "Musique de films";
            var test = categoryRepository.Update(AddedCategory);

            context.SaveChanges();

            //Assert
            Assert.AreEqual(3, categoryRepository.GetAll().Count());
            Assert.AreEqual("Musique de films", test.Name);
        }
コード例 #5
0
        public IActionResult CreateNewCategory(CategoryTO category)
        {
            var cat = _librarianUC.AddNewCategory(category);

            // TODO popup that says that the catery is added.
            return(RedirectToAction("AllCategories"));
        }
コード例 #6
0
        public void GetCategoryById_Successful()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ICategoryRepository categoryRepository = new CategoryRepository(context);

            var category = new CategoryTO {
                Name = "Musique de films"
            };
            var category2 = new CategoryTO {
                Name = "Musique Classique"
            };
            var category3 = new CategoryTO {
                Name = "Musique Contemporaine"
            };
            var AddedCategory  = categoryRepository.Add(category);
            var AddedCategory2 = categoryRepository.Add(category2);
            var AddedCategory3 = categoryRepository.Add(category3);

            context.SaveChanges();

            //Act
            var result  = categoryRepository.GetById(1);
            var result2 = categoryRepository.GetById(2);
            var result3 = categoryRepository.GetById(3);

            //Assert
            Assert.AreEqual("Musique de films", result.Name);
            Assert.AreEqual("Musique Classique", result2.Name);
            Assert.AreEqual("Musique Contemporaine", result3.Name);
        }
コード例 #7
0
        public void AddCategory_AddExistingCategory_DoNotInsertTwiceInDb()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ICategoryRepository categoryRepository = new CategoryRepository(context);

            //Act
            var category = new CategoryTO {
                Name = "Musique de films"
            };
            var result    = categoryRepository.Add(category);
            var category2 = new CategoryTO {
                Name = "Musique de films", Id = 1
            };
            var result2 = categoryRepository.Add(category2);

            context.SaveChanges();

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(1, categoryRepository.GetAll().Count());
        }
コード例 #8
0
ファイル: LibrarianUC.cs プロジェクト: Orl4ne/MusicAgora
        public CategoryTO AddNewCategory(CategoryTO category)
        {
            if (category == null || category.Name.Trim().Length < 1)
            {
                throw new ArgumentNullException();
            }
            ;
            var addedCategory = unitOfWork.CategoryRepository.Add(category);

            return(addedCategory);
        }
コード例 #9
0
        public static CategoryEF ToEF(this CategoryTO Category)
        {
            if (Category is null)
            {
                throw new ArgumentNullException(nameof(Category));
            }

            return(new CategoryEF
            {
                Id = Category.Id,
                Name = Category.Name,
            });
        }
コード例 #10
0
ファイル: ExtensionsTests.cs プロジェクト: Orl4ne/MusicAgora
        public void ToTEF_ProvidingNull_ThrowException()
        {
            InstrumentTO instrument = null;
            LibUserTO    libUser    = null;
            CategoryTO   category   = null;
            SheetTO      sheet      = null;
            SheetPartTO  sheetPart  = null;

            //ACT
            Assert.ThrowsException <ArgumentNullException>(() => instrument.ToEF());
            Assert.ThrowsException <ArgumentNullException>(() => libUser.ToEF());
            Assert.ThrowsException <ArgumentNullException>(() => category.ToEF());
            Assert.ThrowsException <ArgumentNullException>(() => sheet.ToEF());
            Assert.ThrowsException <ArgumentNullException>(() => sheetPart.ToEF());
        }
コード例 #11
0
        public void UpdateCategory_ProvidingNonExistingCategory_ThrowException()
        {
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ICategoryRepository categoryRepository = new CategoryRepository(context);

            var category = new CategoryTO {
                Name = "Musique de films"
            };

            //Act & Assert
            Assert.ThrowsException <ArgumentException>(() => categoryRepository.Update(category));
        }
コード例 #12
0
ファイル: Category.cs プロジェクト: hytdadmin/OA
        /// <summary>
        /// 获取实体分页
        /// </summary>
        public DataTable GetCategoryList(CategoryTO TO, int pageIndex, int pageSize, string orderBy, out int rowCount)
        {
            string table  = " [Category] ";
            string pk     = " ID ";
            string fields = " * ";
            string filter = "";// string.Format(" Status={0} ", ConstantsManager.JiLuZhuangTai.Normal);

            #region 组织查询条件


            //if (!string.IsNullOrEmpty(TO.MC))
            //{
            //	filter += string.Format(" and MC like '%{0}%' ", StringHelper.SQLFilter(TO.MC));
            //}

            #endregion

            string sort = " ID DESC ";//排序
            if (!string.IsNullOrEmpty(orderBy))
            {
                sort = orderBy;
            }

            SqlParameter[] parameters =
            {
                new SqlParameter("@Tables",    SqlDbType.VarChar, 1000),
                new SqlParameter("@PK",        SqlDbType.VarChar,  100),
                new SqlParameter("@Fields",    SqlDbType.VarChar, 1000),
                new SqlParameter("@Pageindex", SqlDbType.Int),
                new SqlParameter("@PageSize",  SqlDbType.Int),
                new SqlParameter("@Filter",    SqlDbType.VarChar, 1000),
                new SqlParameter("@Sort",      SqlDbType.VarChar,  200),
                new SqlParameter("@RowCount",  SqlDbType.Int)
            };
            parameters[0].Value     = table;
            parameters[1].Value     = pk;
            parameters[2].Value     = fields;
            parameters[3].Value     = pageIndex;
            parameters[4].Value     = pageSize;
            parameters[5].Value     = filter;
            parameters[6].Value     = sort;
            parameters[7].Direction = ParameterDirection.Output;

            DataSet ds = SqlHelper.RunProcedure("SP_DividePage", parameters, "CategoryList");
            rowCount = (int)parameters[7].Value;
            return(ds.Tables[0]);
        }
コード例 #13
0
        public bool Delete(CategoryTO entity)
        {
            if (entity is null)
            {
                throw new KeyNotFoundException();
            }
            if (entity.Id <= 0)
            {
                throw new ArgumentException("Category To Delete Invalid Id");
            }

            var category = libraryContext.Categories.FirstOrDefault(x => x.Id == entity.Id);

            libraryContext.Categories.Remove(category);
            libraryContext.SaveChanges();
            return(true);
        }
コード例 #14
0
        public CategoryTO Add(CategoryTO entity)
        {
            if (entity is null)
            {
                throw new ArgumentNullException();
            }
            if (entity.Id != 0)
            {
                return(entity);
            }

            var entityEF = entity.ToEF();
            var result   = libraryContext.Categories.Add(entityEF);

            libraryContext.SaveChanges();

            return(result.Entity.ToTransferObject());
        }
コード例 #15
0
        public void UpdateSheet_Successful()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ISheetRepository    sheetRepository    = new SheetRepository(context);
            ICategoryRepository categoryRepository = new CategoryRepository(context);

            //Act
            var category = new CategoryTO {
                Name = "Musique de films"
            };
            var addedCategory = categoryRepository.Add(category);
            var category2     = new CategoryTO {
                Name = "Musique de classique"
            };
            var addedCategory2 = categoryRepository.Add(category2);

            context.SaveChanges();

            var sheet = new SheetTO {
                Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true
            };
            var sheet2 = new SheetTO {
                Name = "Young Amadeus", Arranger = "Jan de Haan", Category = addedCategory2, Composer = "Mozart", IsCurrent = true, IsGarde = false, IsIndependance = true
            };
            var addedSheet  = sheetRepository.Add(sheet);
            var addedSheet2 = sheetRepository.Add(sheet2);

            context.SaveChanges();

            //Act
            addedSheet.Category = addedCategory2;
            var test = sheetRepository.Update(addedSheet);

            context.SaveChanges();

            //Assert
            Assert.AreEqual(2, sheetRepository.GetAll().Count());
            Assert.AreEqual("Musique de classique", test.Category.Name);
        }
コード例 #16
0
        public void AddCategory_Successful()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ICategoryRepository categoryRepository = new CategoryRepository(context);

            //Act
            var category = new CategoryTO {
                Name = "Musique de films"
            };
            var result = categoryRepository.Add(category);

            context.SaveChanges();

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Name, "Musique de films");
        }
コード例 #17
0
        public void AddSheet_AddExistingSheet_DoNotInsertTwiceInDb()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ISheetRepository    sheetRepository    = new SheetRepository(context);
            ICategoryRepository categoryRepository = new CategoryRepository(context);

            //Act
            var category = new CategoryTO {
                Name = "Musique de films"
            };
            var addedCategory = categoryRepository.Add(category);
            var category2     = new CategoryTO {
                Name = "Musique de classique"
            };
            var addedCategory2 = categoryRepository.Add(category2);

            context.SaveChanges();

            var sheet = new SheetTO {
                Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true
            };
            var sheet2 = new SheetTO {
                Id = 1, Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory2, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true
            };
            var addedSheet  = sheetRepository.Add(sheet);
            var addedSheet2 = sheetRepository.Add(sheet2);

            context.SaveChanges();

            //Assert
            Assert.IsNotNull(sheet);
            Assert.AreEqual(1, sheetRepository.GetAll().Count());
        }
コード例 #18
0
        public void UpdateSheetPart_Successful()
        {
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new LibraryContext(options);
            ISheetRepository      sheetRepository      = new SheetRepository(context);
            ICategoryRepository   categoryRepository   = new CategoryRepository(context);
            ISheetPartRepository  sheetPartRepository  = new SheetPartRepository(context);
            IInstrumentRepository instrumentRepository = new InstrumentRepository(context);

            //Act
            var category = new CategoryTO {
                Name = "Musique de films"
            };
            var addedCategory = categoryRepository.Add(category);
            var category2     = new CategoryTO {
                Name = "Musique de classique"
            };
            var addedCategory2 = categoryRepository.Add(category2);

            context.SaveChanges();

            var sheet = new SheetTO {
                Name = "BestOf", Arranger = "Jean-Luc", Category = addedCategory, Composer = "Morricone", IsCurrent = false, IsGarde = false, IsIndependance = true
            };
            var sheet2 = new SheetTO {
                Name = "Youg Amadeus", Arranger = "Jan de Haan", Category = addedCategory2, Composer = "Mozart", IsCurrent = true, IsGarde = false, IsIndependance = true
            };
            var addedSheet  = sheetRepository.Add(sheet);
            var addedSheet2 = sheetRepository.Add(sheet2);

            context.SaveChanges();

            var instru = new InstrumentTO {
                Name = "Saxophone"
            };
            var instru2 = new InstrumentTO {
                Name = "Trumpet"
            };
            var instru3 = new InstrumentTO {
                Name = "Flute"
            };
            var addedInstru  = instrumentRepository.Add(instru);
            var addedInstru2 = instrumentRepository.Add(instru2);
            var addedInstru3 = instrumentRepository.Add(instru3);

            context.SaveChanges();
            var sheetPart = new SheetPartTO {
                Instrument = addedInstru, Sheet = addedSheet, Path = @"C:\sheet"
            };
            var sheetPart2 = new SheetPartTO {
                Instrument = addedInstru2, Sheet = addedSheet
            };
            var sheetPart3 = new SheetPartTO {
                Instrument = addedInstru, Sheet = addedSheet2
            };
            var addedSheetPart  = sheetPartRepository.Add(sheetPart);
            var addedSheetPart2 = sheetPartRepository.Add(sheetPart2);
            var addedSheetPart3 = sheetPartRepository.Add(sheetPart3);

            context.SaveChanges();

            //ACT
            addedSheetPart.Instrument = addedInstru3;
            var test = sheetPartRepository.Update(addedSheetPart);

            context.SaveChanges();

            //Assert
            Assert.AreEqual(3, sheetPartRepository.GetAll().Count());
            Assert.AreEqual("Flute", test.Instrument.Name);
        }
コード例 #19
0
ファイル: Category.cs プロジェクト: banmabanm/OA
 /// <summary>
 /// 获得数据列表分页
 /// </summary>
 /// <returns></returns>
 public DataTable GetCategoryList(CategoryTO TO, int pageIndex, int pageSize, string orderBy, out int rowCount)
 {
     return(service.GetCategoryList(TO, pageIndex, pageSize, orderBy, out rowCount));
 }
コード例 #20
0
 public IActionResult DeleteCategory(int id, CategoryTO category)
 {
     _libraryUnitOfWork.CategoryRepository.Delete(category);
     return(RedirectToAction("AllCategories"));
 }