示例#1
0
        public IEnumerable <DVD> Search(string searchCategory, string searchTerm)
        {
            var        repository = new DVDLibraryEntities();
            List <DVD> result     = new List <DVD>();

            switch (searchCategory)
            {
            case "title":
                var selectedTitle = repository.Dvd.Where(d => d.Title.Contains(searchTerm)).ToList();
                result = ConvertEFDvdListtoAPIDVDList(selectedTitle);
                return(result);

            case "year":
                var selectedYear = repository.Dvd.Where(d => d.RealeaseYear.ToString().Contains(searchTerm)).ToList();
                result = ConvertEFDvdListtoAPIDVDList(selectedYear);
                return(result);

            case "rating":
                var selectedRating = repository.Dvd.Where(d => d.Rating.RatingName == searchTerm).ToList();
                result = ConvertEFDvdListtoAPIDVDList(selectedRating);
                return(result);

            case "director":
                var selectedDirector = repository.Dvd.Where(d => (d.Director.DirectorFirstName + " " + d.Director.DirectorLastName).Contains(searchTerm)).ToList();
                result = ConvertEFDvdListtoAPIDVDList(selectedDirector);
                return(result);

            default:
                throw new Exception("Invalid search category.");
            }
        }
示例#2
0
        public DVD GetById(int dvdId)
        {
            {
                var repository = new DVDLibraryEntities();
                DVD dvd        = new DVD();

                var result = repository.Dvd.SingleOrDefault(d => d.DvdId == dvdId);

                dvd.DvdId        = result.DvdId;
                dvd.Title        = result.Title;
                dvd.RealeaseYear = result.RealeaseYear;
                dvd.Notes        = result.Notes;

                if (result.RatingId == null)
                {
                    dvd.Rating = null;
                }
                else
                {
                    dvd.Rating = result.Rating.RatingName;
                }

                if (result.DirectorId == null)
                {
                    dvd.Director = "";
                }
                else
                {
                    dvd.Director = result.Director.DirectorFirstName + " " + result.Director.DirectorLastName;
                }

                return(dvd);
            }
        }
示例#3
0
        public void DeleteDirector(int?directorId)
        {
            var repository = new DVDLibraryEntities();

            var dir = repository.Director.FirstOrDefault(d => d.DirectorID == directorId);

            repository.Director.Remove(dir);
            repository.SaveChanges();
        }
示例#4
0
        public int?FindDirectorID(DirectorIdRequest request)
        {
            var repository = new DVDLibraryEntities();

            Director director = new Director();

            if (repository.Director.Any(dir => (dir.DirectorFirstName == request.FirstName && dir.DirectorLastName == request.LastName)))
            {
                director = repository.Director.FirstOrDefault(dir => (dir.DirectorFirstName == request.FirstName && dir.DirectorLastName == request.LastName));
                return(director.DirectorID);
            }
            else
            {
                director = AddDirector(request);
                return(director.DirectorID);
            }
        }
示例#5
0
        public void DirectorTableCleanUp(string director)
        {
            var repository = new DVDLibraryEntities();

            DirectorIdRequest request = new DirectorIdRequest();

            request = Helpers.SplitDirectorName(director);

            var directorRecord = repository.Director.FirstOrDefault(dir => (dir.DirectorFirstName == request.FirstName && dir.DirectorLastName == request.LastName));
            int?ID             = directorRecord.DirectorID;

            var count = repository.Dvd.Count(d => d.DirectorId == ID);

            if (count == 0)
            {
                DeleteDirector(ID);
            }
        }
示例#6
0
        public Director AddDirector(DirectorIdRequest newDirector)
        {
            var repository    = new DVDLibraryEntities();
            var directorToAdd = new Director();

            directorToAdd.DirectorFirstName = newDirector.FirstName;
            directorToAdd.DirectorLastName  = newDirector.LastName;

            repository.Director.Add(directorToAdd);
            repository.SaveChanges();

            Director addedDirector = new Director();

            addedDirector.DirectorFirstName = newDirector.FirstName;
            addedDirector.DirectorLastName  = newDirector.LastName;
            addedDirector.DirectorID        = directorToAdd.DirectorID;
            return(addedDirector);
        }
示例#7
0
        public void Delete(int dvdId)
        {
            var repository = new DVDLibraryEntities();

            string director = GetById(dvdId).Director;

            var dvd = repository.Dvd.FirstOrDefault(d => d.DvdId == dvdId);

            if (dvd != null)
            {
                repository.Dvd.Remove(dvd);
                repository.SaveChanges();
            }

            if (!string.IsNullOrEmpty(director))
            {
                DirectorTableCleanUp(director);
            }
        }
示例#8
0
        public IEnumerable <DVD> GetAll()
        {
            List <DVD> dvds = new List <DVD>();

            var repository = new DVDLibraryEntities();

            var list = from dvd in repository.Dvd
                       select new DVD
            {
                DvdId        = dvd.DvdId,
                Title        = dvd.Title,
                RealeaseYear = dvd.RealeaseYear,
                Notes        = dvd.Notes,
                Director     = dvd.Director.DirectorFirstName + " " + dvd.Director.DirectorLastName,
                Rating       = dvd.Rating.RatingName,
            };

            dvds = list.ToList();
            return(dvds);
        }
示例#9
0
        public void Edit(DVD dvd)
        {
            var repository = new DVDLibraryEntities();
            Dvd dvdToEdit  = new Dvd();

            dvdToEdit.DvdId        = dvd.DvdId;
            dvdToEdit.Title        = dvd.Title;
            dvdToEdit.RealeaseYear = dvd.RealeaseYear;
            dvdToEdit.Notes        = dvd.Notes;

            int?ratingId = Helpers.GetRatingId(dvd.Rating);

            if (ratingId == null)
            {
                dvdToEdit.RatingId = null;
            }
            else
            {
                dvdToEdit.RatingId = ratingId;
            }

            int?directorId = GetDirectorId(dvd.Director);

            if (directorId == null)
            {
                dvdToEdit.DirectorId = null;
            }
            else
            {
                dvdToEdit.DirectorId = directorId;
            }

            repository.Entry(dvdToEdit).State = System.Data.Entity.EntityState.Modified;
            repository.SaveChanges();

            if (!string.IsNullOrEmpty(dvd.Director))
            {
                DirectorTableCleanUp(dvd.Director);
            }
        }
示例#10
0
        public void Add(DVD dvd)
        {
            var repository = new DVDLibraryEntities();
            Dvd dvdToAdd   = new Dvd();

            dvdToAdd.Title        = dvd.Title;
            dvdToAdd.RealeaseYear = dvd.RealeaseYear;
            dvdToAdd.Notes        = dvd.Notes;

            int?ratingId = Helpers.GetRatingId(dvd.Rating);

            if (ratingId == null)
            {
                dvdToAdd.RatingId = null;
            }
            else
            {
                dvdToAdd.RatingId = ratingId;
            }

            int?directorId = GetDirectorId(dvd.Director);

            if (directorId == null)
            {
                dvdToAdd.DirectorId = null;
            }
            else
            {
                dvdToAdd.DirectorId = directorId;
            }

            repository.Dvd.Add(dvdToAdd);
            repository.SaveChanges();

            dvd.DvdId = dvdToAdd.DvdId;
        }