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); }
public SheetPartTO Update(SheetPartTO entity) { if (entity is null) { throw new ArgumentNullException(nameof(entity)); } if (entity.Id <= 0) { throw new ArgumentException("SheetPart To Update Invalid Id"); } if (!libraryContext.SheetParts.Any(x => x.Id == entity.Id)) { throw new KeyNotFoundException($"Update(SheetPartTO) Can't find sheetPart to update."); } var editedEntity = libraryContext.SheetParts.FirstOrDefault(e => e.Id == entity.Id); if (editedEntity != default) { editedEntity.UpdateFromDetached(entity.ToEF()); } var tracking = libraryContext.SheetParts.Update(editedEntity); tracking.State = EntityState.Detached; libraryContext.SaveChanges(); //return editedEntity.ToTransferObject(); return(tracking.Entity.ToTransferObject()); //return editedEntity.ToTransferObject(); }
public void UpdateSheetPart_ProvidingNonExistingSheetPart_ThrowException() { var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ISheetPartRepository sheetPartRepository = new SheetPartRepository(context); var sheetPart = new SheetPartTO { }; //Act & Assert Assert.ThrowsException <ArgumentException>(() => sheetPartRepository.Update(sheetPart)); }
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()); }
public static SheetPartEF ToEF(this SheetPartTO SheetPart) { if (SheetPart is null) { throw new ArgumentNullException(nameof(SheetPart)); } return(new SheetPartEF { Id = SheetPart.Id, Path = SheetPart.Path, Sheet = SheetPart.Sheet.ToEF(), Instrument = SheetPart.Instrument.ToEF(), Part = SheetPart.Part, }); }
public bool Delete(SheetPartTO entity) { if (entity is null) { throw new KeyNotFoundException(); } if (entity.Id <= 0) { throw new ArgumentException("SheetPart To Delete Invalid Id"); } var sheetPart = libraryContext.SheetParts.FirstOrDefault(x => x.Id == entity.Id); libraryContext.SheetParts.Remove(sheetPart); libraryContext.SaveChanges(); return(true); }
public SheetPartTO UploadSheetPartInSheet(SheetPartTO SheetPart, Stream file) { var root = config.GetValue <string>("DataPath"); var reg = new Regex("\\W"); var path = $@"{reg.Replace(SheetPart.Sheet.Name, "_")}\\{reg.Replace(SheetPart.Sheet.Name, "_")}-{reg.Replace(SheetPart.Part, "_")}.pdf"; var completePath = $@"{root}{path}"; if (File.Exists(completePath) == false) { using (FileStream fs = new FileStream(completePath, FileMode.OpenOrCreate)) { file.CopyTo(fs); fs.Flush(); } } SheetPart.Path = path; unitOfWork.SheetPartRepository.Add(SheetPart); return(SheetPart); }
public IActionResult UploadSheetPartToSheet(LibraryVM libraryVM) { var selectedInstruments = libraryVM.AllInstruments.Where(inst => inst.IsSelected == true).ToList(); var sheet = _chiefUC.GetAllSheets().FirstOrDefault(x => x.Name == libraryVM.SelectedSheet); var file = libraryVM.SheetPartFile; var stream = file.OpenReadStream(); foreach (var selectedInstru in selectedInstruments) { var instru = _libraryUnitOfWork.InstrumentRepository.GetAll().FirstOrDefault(x => x.Id == selectedInstru.Id); var sheetPart = new SheetPartTO { Instrument = instru, Part = libraryVM.SheetPart.Part, Sheet = sheet }; var uploadedSheetPart = _librarianUC.UploadSheetPartInSheet(sheetPart, stream); } return(RedirectToAction("LibraryIndex")); }
public SheetPartTO Add(SheetPartTO entity) { if (entity is null) { throw new ArgumentNullException(); } if (entity.Id != 0) { return(entity); } var entityEF = entity.ToEF(); entityEF.Instrument = libraryContext.Instruments.First(x => x.Id == entity.Instrument.Id); entityEF.Sheet = libraryContext.Sheets.First(x => x.Id == entity.Sheet.Id); var result = libraryContext.SheetParts.Add(entityEF); libraryContext.SaveChanges(); return(result.Entity.ToTransferObject()); }
public List <SheetPartTO> MockSheetParts() { var instruments = MockInstruments(); var sheets = MockSheets(); var sheetPart = new SheetPartTO { Id = 1, Instrument = instruments.First(i => i.Id == 1), Sheet = sheets.First(s => s.Id == 1), Path = $@"\Files\BestOf\Saxophone" }; var sheetPart2 = new SheetPartTO { Id = 2, Instrument = instruments.First(i => i.Id == 1), Sheet = sheets.First(s => s.Id == 2), Path = @"\Files\Young Amadeus\Saxophone" }; var sheetPart3 = new SheetPartTO { Id = 3, Instrument = instruments.First(i => i.Id == 1), Sheet = sheets.First(s => s.Id == 3), Path = @"\Files\Daft Punk Medley\Saxophone" }; var sheetPart4 = new SheetPartTO { Id = 4, Instrument = instruments.First(i => i.Id == 2), Sheet = sheets.First(s => s.Id == 1), Path = @"\Files\BestOf\Trumpet" }; var sheetPart5 = new SheetPartTO { Id = 5, Instrument = instruments.First(i => i.Id == 2), Sheet = sheets.First(s => s.Id == 2), Path = @"\Files\Young Amadeus\Trumpet" }; var sheetPart6 = new SheetPartTO { Id = 5, Instrument = instruments.First(i => i.Id == 2), Sheet = sheets.First(s => s.Id == 3), Path = @"\Files\Daft Punk Medley\Trumpet" }; var sheetPart7 = new SheetPartTO { Id = 5, Instrument = instruments.First(i => i.Id == 3), Sheet = sheets.First(s => s.Id == 1), Path = @"\Files\BestOf\Flute" }; var sheetPart8 = new SheetPartTO { Id = 5, Instrument = instruments.First(i => i.Id == 3), Sheet = sheets.First(s => s.Id == 2), Path = @"\Files\Young Amadeus\Flute" }; var sheetPart9 = new SheetPartTO { Id = 5, Instrument = instruments.First(i => i.Id == 3), Sheet = sheets.First(s => s.Id == 3), Path = @"\Files\Daft Punk Medley\Flute" }; return(new List <SheetPartTO> { sheetPart, sheetPart2, sheetPart3, sheetPart4, sheetPart5, sheetPart6, sheetPart7, sheetPart8, sheetPart9 }); }
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); }