Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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());
        }
Esempio n. 5
0
        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,
            });
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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"));
        }
Esempio n. 9
0
        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());
        }
Esempio n. 10
0
        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
            });
        }
Esempio n. 11
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);
        }