public IActionResult Create(PodcastCreateViewModel model)
        {
            if (!TryValidateModel(model))
            {
                return(View(model));
            }

            var currentUserId = this._signInManager.UserManager.GetUserId(HttpContext.User);

            Podcast newPodcast = new Podcast()
            {
                Name            = model.Name,
                ConversationMP3 = model.PodcastLink,
                Titel           = model.Titel,
                MediaUser       = _currentMediaUser,
                MediaUserId     = currentUserId
            };

            _mediaService.InsertPodcast(newPodcast);
            _mediaService.SaveChanges();
            Podcast podcastFromDb = _mediaService.GetAllPodcasts().FirstOrDefault(z => z.Id == newPodcast.Id);

            if (model.Photo != null)
            {
                using var memoryStream = new MemoryStream();
                model.Photo.CopyTo(memoryStream);
                podcastFromDb.Photo = memoryStream.ToArray();
            }

            _mediaService.SaveChanges();
            return(RedirectToAction("Details", new { podcastFromDb.Id }));
        }
示例#2
0
        public async Task <IActionResult> Create(PodcastEpisode podcastepisode)
        {
            //Ignore user from model state
            ModelState.Remove("podcastepisode.User");

            //This creates a new variable to hold our current instance of the ActiveCustomer class and then sets the active customer's id to the CustomerId property on the product being created so that a valid model is sent to the database
            var user = await GetCurrentUserAsync();

            if (podcastepisode.PodcastChannelId == 0)
            {
                return(RedirectToAction("Create"));
            }

            if (podcastepisode.PodcastChannelId == 1)
            {
                return(RedirectToAction("ChannelCreate"));
            }

            if (ModelState.IsValid)
            {
                podcastepisode.User = user;
                context.Add(podcastepisode);
                await context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            PodcastCreateViewModel model = new PodcastCreateViewModel(context, user);

            return(View(model));
        }
示例#3
0
        public async Task <IActionResult> Create()
        {
            var user = await GetCurrentUserAsync();

            PodcastCreateViewModel model = new PodcastCreateViewModel(context, user);

            return(View(model));
        }
示例#4
0
 public IActionResult Create(PodcastCreateViewModel model)
 {
     _context.Podcasts.Add(new Podcast()
     {
         Titel = model.Titel, Host = model.Host
     });
     _context.SaveChanges();
     return(RedirectToAction("Index"));
 }
示例#5
0
        public async Task <IActionResult> Create(PodcastCreateViewModel vm)
        {
            var podcast = new Podcast
            {
                Name           = vm.Name,
                NormalizedName = vm.Name.ToUpper(),
                Description    = vm.Description,
            };

            await _applicationDbContext.Podcasts.AddAsync(podcast);

            await _applicationDbContext.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Create(PodcastCreateViewModel createModel)
        {
            List <string> podcastTitlesFromDb = await _mediaWebDbContext.PodCasts.Select(p => p.Title).ToListAsync();

            if (podcastTitlesFromDb.Contains(StringEdits.FirstLettterToUpper(createModel.Title)))
            {
                return(RedirectToAction("Index"));
            }

            PodCast newPodcast = new PodCast()
            {
                Title       = StringEdits.FirstLettterToUpper(createModel.Title),
                ReleaseDate = createModel.ReleaseDate,
                Description = createModel.Description,
                File        = createModel.PodcastLink
            };

            //add guests to podcast
            var podcastGuests = new List <PodcastGuest>();

            //create only if new guests
            if (createModel.createdGuests != null)
            {
                var createdGuests      = StringEdits.FirstLettterToUpper(createModel.createdGuests);
                var createdGuestsArray = createdGuests.Split(", ");

                var newGuests    = new List <Guest>();
                var guestsFromDb = await _mediaWebDbContext.Guests.ToListAsync();

                foreach (var createdGuest in createdGuestsArray)
                {
                    if (!guestsFromDb.Select(g => g.Name).Contains(createdGuest))
                    {
                        newGuests.Add(new Guest()
                        {
                            Name = createdGuest
                        });
                    }
                    else
                    {
                        podcastGuests.Add(new PodcastGuest()
                        {
                            Guest = guestsFromDb.Find(g => g.Name == createdGuest)
                        });
                    }
                }

                foreach (var newGuest in newGuests)
                {
                    podcastGuests.Add(new PodcastGuest()
                    {
                        Guest = newGuest
                    });
                }
            }

            newPodcast.PodCastGuests = podcastGuests;

            //add hosts to podcast
            var podcastHosts = new List <PodcastHost>();

            //create only if new hosts
            if (createModel.createdHosts != null)
            {
                var createdHosts      = StringEdits.FirstLettterToUpper(createModel.createdHosts);
                var createdHostsArray = createdHosts.Split(", ");

                var newHosts    = new List <Host>();
                var hostsFromDb = await _mediaWebDbContext.Hosts.ToListAsync();

                foreach (var createdHost in createdHostsArray)
                {
                    if (!hostsFromDb.Select(g => g.Name).Contains(createdHost))
                    {
                        newHosts.Add(new Host()
                        {
                            Name = createdHost
                        });
                    }
                    else
                    {
                        podcastHosts.Add(new PodcastHost()
                        {
                            Host = hostsFromDb.Find(g => g.Name == createdHost)
                        });
                    }
                }

                foreach (var newHost in newHosts)
                {
                    podcastHosts.Add(new PodcastHost()
                    {
                        Host = newHost
                    });
                }
            }

            newPodcast.PodCastHosts = podcastHosts;

            _mediaWebDbContext.Update(newPodcast);
            await _mediaWebDbContext.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public IActionResult Create()
        {
            PodcastCreateViewModel model = new PodcastCreateViewModel();

            return(View(model));
        }