Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine();
            Console.WriteLine($"Welcome to my record label's interactive client catalogue. Please select one of the following options:");

            var userHasChosenToQuit = false;

            while (userHasChosenToQuit == false)
            {
                Console.WriteLine();
                Console.WriteLine("Choose:");
                Console.WriteLine("(A)dd a new band");
                Console.WriteLine("(V)iew all the bands");
                Console.WriteLine("A(d)d an album for a band");
                Console.WriteLine("(L)et a band go");
                Console.WriteLine("(R)esign a band");
                Console.WriteLine("(E)nter a band's name to view all its albums");
                Console.WriteLine("V(i)ew all albums ordered by release date");
                Console.WriteLine("Vie(w) all bands that are signed");
                Console.WriteLine("View all (b)ands that are not signed");
                Console.WriteLine();

                var choice = PromptForString("Choice: ");
                Console.WriteLine();

                if (choice == "Q")
                {
                    userHasChosenToQuit = true;
                }

                if (choice == "A")
                {
                    var context = new BandDatabaseContext();

                    var newName            = PromptForString("Name: ");
                    var newCountryofOrigin = PromptForString("Country of Origin: ");
                    var newNumberOfMembers = PromptForInteger("Number of Members: ");
                    var newWeb             = PromptForString("Email Address: ");
                    var newStyle           = PromptForString("Musical Style: ");
                    var newIsSigned        = PromptForBool("Is the band signed? (Answer as true or false): ");
                    var newContactName     = PromptForString("Name of Band Contact: ");
                    var newContactPhone    = PromptForString("Band Contact Phone Number: ");

                    var newBandItem = new BandItem
                    {
                        Name            = newName,
                        CountryOfOrigin = newCountryofOrigin,
                        NumberOfMembers = newNumberOfMembers,
                        Web             = newWeb,
                        Style           = newStyle,
                        IsSigned        = newIsSigned,
                        ContactName     = newContactName,
                        ContactPhone    = newContactPhone,
                    };

                    context.Band.Add(newBandItem);
                    context.SaveChanges();
                }

                if (choice == "V")
                {
                    var context     = new BandDatabaseContext();
                    var allTheBands = context.Band;

                    foreach (var band in allTheBands)

                    {
                        Console.WriteLine($"Band ID Number: {band.Id}, Name: {band.Name}, Country of Origin: {band.CountryOfOrigin}, Number of Members: {band.NumberOfMembers}, Email: {band.Web}, Signed?: {band.IsSigned}, Contact Name: {band.ContactName}, Contact Phone Number: {band.ContactPhone}");
                    }
                }

                if (choice == "d")
                {
                    var context = new AlbumDatabaseContext();

                    var newTitle       = PromptForString("Title: ");
                    var newIsExplicit  = PromptForBool("Is the album explicit? (Answer as true or false): ");
                    var newReleaseDate = PromptForDateTime("What is the Album's release date in the format of MM/DD/YYYY?: ");
                    var newBandId      = PromptForInteger("What is the ID number for the band that recorded this album: ");

                    var newAlbumItem = new AlbumItem
                    {
                        Title       = newTitle,
                        IsExplicit  = newIsExplicit,
                        ReleaseDate = newReleaseDate,
                        BandId      = newBandId
                    };

                    context.Album.Add(newAlbumItem);
                    context.SaveChanges();
                }

                if (choice == "L")
                {
                    var context = new BandDatabaseContext();
                    var bandWithNewSignedStatus = PromptForString("Which band would you like to select? ");
                    var retrieveBandItem        = context.Band.FirstOrDefault(entry => entry.Name == $"{bandWithNewSignedStatus}");

                    if (retrieveBandItem == null)
                    {
                        Console.WriteLine("Sorry, that band does not exist in this database.");
                    }
                    else
                    {
                        retrieveBandItem.IsSigned = false;

                        context.SaveChanges();
                    }
                }

                if (choice == "R")
                {
                    var context = new BandDatabaseContext();
                    var bandWithNewSignedStatus = PromptForString("Which band would you like to select? ");
                    var retrieveBandItem        = context.Band.FirstOrDefault(entry => entry.Name == $"{bandWithNewSignedStatus}");

                    if (retrieveBandItem == null)
                    {
                        Console.WriteLine("Sorry, that band does not exist in this database.");
                    }
                    else
                    {
                        retrieveBandItem.IsSigned = true;

                        context.SaveChanges();
                    }
                }

                if (choice == "E")
                {
                    var bandContext      = new BandDatabaseContext();
                    var albumContext     = new AlbumDatabaseContext();
                    var bandToSearchFor  = PromptForString("Enter the name of the band you'd like to search for? ");
                    var retrieveBandItem = bandContext.Band.FirstOrDefault(entry => entry.Name == $"{bandToSearchFor}");

                    if (retrieveBandItem == null)
                    {
                        Console.WriteLine("Sorry, that band does not exist in this database.");
                    }
                    else
                    {
                        var findAlbums = albumContext.Album.Where(entry => entry.BandId == retrieveBandItem.Id);

                        foreach (var album in findAlbums)
                        {
                            Console.WriteLine();
                            Console.WriteLine($"Title: {album.Title}, Is Explicit?: {album.IsExplicit}, Release Date: {album.ReleaseDate}");
                        }
                    }
                }
                if (choice == "i")
                {
                    var context      = new AlbumDatabaseContext();
                    var allTheAlbums = context.Album.OrderBy(entry => entry.ReleaseDate);

                    foreach (var album in allTheAlbums)

                    {
                        Console.WriteLine($"Album Title: {album.Title}, Release Date: {album.ReleaseDate}");
                    }
                }
                if (choice == "w")
                {
                    var context     = new BandDatabaseContext();
                    var allTheBands = context.Band.Where(band => band.IsSigned == true);

                    foreach (var band in allTheBands)

                    {
                        Console.WriteLine(band.Name);
                    }
                }

                if (choice == "b")
                {
                    var context     = new BandDatabaseContext();
                    var allTheBands = context.Band.Where(band => band.IsSigned == false);

                    foreach (var band in allTheBands)

                    {
                        Console.WriteLine(band.Name);
                    }
                }
            }
        }
        static void Main(string[] args)
        {
            List <Users>      users      = new List <Users>();
            List <Categories> categories = new List <Categories>();
            List <Products>   products   = new List <Products>();

            string readstring     = File.ReadAllText("users.xml");
            string categorystring = File.ReadAllText("categories.xml");
            string productstring  = File.ReadAllText("products.xml");


            //  var serializer1 = new XmlSerializer(typeof(UserDto[]),new XmlRootAttribute("users"));
            var serializer2 = new XmlSerializer(typeof(CategoriesDto[]), new XmlRootAttribute("categories"));
            var serializer  = new XmlSerializer(typeof(ProductsDto[]), new XmlRootAttribute("products"));


            // var desirializer1 = (UserDto[])serializer1.Deserialize(new StringReader(readstring));
            var desirializer2 = (CategoriesDto[])serializer2.Deserialize(new StringReader(categorystring));
            var desirializer  = (ProductsDto[])serializer.Deserialize(new StringReader(productstring));


            var config = new MapperConfiguration(cfg => {
                cfg.AddProfile <AutoMapperProfile>();
                cfg.CreateMap <UserDto, Users>();
                cfg.CreateMap <CategoriesDto, Categories>();
                cfg.CreateMap <ProductsDto, Products>();
            });



            var mapper = config.CreateMapper();

            /*    foreach (var user in desirializer1)
             *  {
             *
             *   bool Valid = isValid(user);
             *
             *     if (Valid == false)
             *     {
             *         continue;
             *     }
             *
             *      var currentUser = mapper.Map<Users>(user);
             *
             *     users.Add(currentUser);
             *  }
             *
             *   foreach (var category in desirializer2)
             *   {
             *       bool Valid = isValid(category);
             *
             *     if (Valid == false)
             *     {
             *         continue;
             *     }
             *
             *     var currentCategory = mapper.Map<Categories>(category);
             *
             *
             *       categories.Add(currentCategory);
             *   }
             *
             */
            int counter = 1;

            foreach (var product in desirializer)
            {
                bool Valid = isValid(product);

                if (Valid == false)
                {
                    continue;
                }

                var currentproduct = mapper.Map <Products>(product);

                int boughtId = new Random().Next(57, 87);
                int soldId   = new Random().Next(87, 112);
                currentproduct.Sellerid = soldId;
                currentproduct.BuyerId  = boughtId;

                if (counter == 4)
                {
                    currentproduct.BuyerId = null;
                    counter = 1;
                }


                counter++;
                products.Add(currentproduct);
            }


            var context = new AlbumDatabaseContext();
            List <CategoryProducts> categoryProducts = new List <CategoryProducts>();



            for (int i = 0; i < 11; i++)
            {
                int categoryID = new Random().Next(1, 10);
                int productID  = new Random().Next(3662, 3697);

                var currentCattegoryProducts = new CategoryProducts()
                {
                    CategoryId = categoryID,
                    ProductId  = productID
                };
                categoryProducts.Add(currentCattegoryProducts);
            }


            using (context)
            {
                // context.Users.AddRange(users);
                // context.Products.AddRange(products);
                //  context.Categories.AddRange(categories);

                context.CategoryProducts.AddRange(categoryProducts);

                context.SaveChanges();
            }
        }