示例#1
0
        public SpeakerViewModel ToSpeakerViewModel(Speaker speaker)
        {
            var result = new SpeakerViewModel
            {
                SpeakerId          = speaker.SpeakerId,
                CodecampUserId     = speaker.CodecampUserId,
                FirstName          = speaker.CodecampUser.FirstName,
                LastName           = speaker.CodecampUser.LastName,
                FullName           = speaker.CodecampUser.FullName,
                CompanyName        = speaker.CompanyName,
                Bio                = speaker.Bio,
                WebsiteUrl         = speaker.WebsiteUrl,
                BlogUrl            = speaker.BlogUrl,
                GeographicLocation = speaker.CodecampUser.GeographicLocation,
                TwitterHandle      = speaker.CodecampUser.TwitterHandle,
                LinkedIn           = speaker.LinkedIn,
                IsVolunteer        = speaker.CodecampUser.IsVolunteer,
                IsMvp              = speaker.IsMvp,
                NoteToOrganizers   = speaker.NoteToOrganizers,
                Email              = speaker.CodecampUser.Email,
                PhoneNumber        = speaker.CodecampUser.PhoneNumber,
                IsApproved         = speaker.IsApproved,
            };

            return(result);
        }
示例#2
0
 public SpeakerView()
 {
     InitializeComponent();
     vm = new SpeakerViewModel();
     //listSpeakers.ItemsSource = vm.Speakers;
     BindingContext = vm;
 }
示例#3
0
        public virtual ActionResult NextContestantsList(long tournamentId, int roundNo)
        {
            var tourney = TournamentService.GetTournamentGuarded(tournamentId);
            var model   = new SpeakerViewModel(tourney, roundNo);

            return(PartialView(model));
        }
示例#4
0
        //public async Task<IActionResult> Index()
        //{
        //    return View(await db.Speakers.ToListAsync());
        //}

        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var speaker = await db.Speakers
                          .FirstOrDefaultAsync(m => m.Id == id);

            var speakerViewModel = new SpeakerViewModel()
            {
                Id            = speaker.Id,
                SpeakerName   = speaker.SpeakerName,
                Qualification = speaker.Qualification,
                Experience    = speaker.Experience,
                SpeakingDate  = speaker.SpeakingDate,
                SpeakingTime  = speaker.SpeakingTime,
                Venue         = speaker.Venue,
                ExistingImage = speaker.ProfilePicture
            };

            if (speaker == null)
            {
                return(NotFound());
            }

            return(View(speaker));
        }
        public async void Init_DataLoadsSuccessfully_LoadsSpeakerAndSessions()
        {
            var speaker = new Speaker {
                Id = 314
            };
            var session = new Session {
                Id = 42, SpeakerId = speaker.Id
            };
            var data = new CampData {
                Sessions = new List <Session> {
                    session
                }, Speakers = new List <Speaker> {
                    speaker
                }
            };

            DataClient.GetDataBody = () => Task.FromResult(data);
            var viewModel = new SpeakerViewModel(Messenger, CodeCampService, ComposeEmailTask);

            Assert.True(viewModel.IsLoading);

            await viewModel.Init(new SpeakerViewModel.NavigationParameters(speaker.Id));

            Assert.False(viewModel.IsLoading);
            Assert.AreEqual(speaker, viewModel.Speaker);
            Assert.AreEqual(1, viewModel.Sessions.Count);
            Assert.AreEqual(session, viewModel.Sessions.First());
        }
示例#6
0
        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            SpeakerViewModel speaker = item as SpeakerViewModel;

            if (speaker != null)
            {
                if (speaker.DeviceName.Contains("Pro"))
                {
                    return(NommoProTemplate);
                }
                else
                {
                    return(NommoTemplate);
                }
            }

            MonitorViewModel monitor = item as MonitorViewModel;

            if (monitor != null)
            {
                if (monitor.DeviceName == "AW3420DW")
                {
                    return(AW3420DWTemplate);
                }
                else
                {
                    return(AW3418DWTemplate);
                }
            }

            return(null);;
        }
示例#7
0
        public async Task <IActionResult> Edit(int id, SpeakerViewModel model)
        {
            if (ModelState.IsValid)
            {
                var speaker = await db.Speakers.FindAsync(model.Id);

                speaker.SpeakerName = model.SpeakerName;

                speaker.SpeakingDate = model.SpeakingDate;


                if (model.SpeakerPicture != null)
                {
                    if (model.ExistingImage != null)
                    {
                        string filePath = Path.Combine(webHostEnvironment.WebRootPath, "Uploads", model.ExistingImage);
                        System.IO.File.Delete(filePath);
                    }

                    speaker.ProfilePicture = ProcessUploadedFile(model);
                }
                db.Update(speaker);
                await db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View());
        }
 /// <summary>
 /// Provides a deterministic way to create the Speaker property.
 /// </summary>
 public static void CreateSpeaker()
 {
     if (_speaker == null)
     {
         _speaker = new SpeakerViewModel();
     }
 }
示例#9
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var speaker = await db.Speakers.FindAsync(id);

            var speakerViewModel = new SpeakerViewModel()
            {
                Id          = speaker.Id,
                SpeakerName = speaker.SpeakerName,

                SpeakingDate = speaker.SpeakingDate,

                ExistingImage = speaker.ProfilePicture
            };

            if (speaker == null)
            {
                return(NotFound());
            }
            return(View(speakerViewModel));
        }
        public async Task <IActionResult> PutSpeaker(int id, SpeakerViewModel speakerVM)
        {
            var existingSpeaker = _context.Speakers.Where(s => s.id == id).FirstOrDefault();

            if (existingSpeaker != null)
            {
                existingSpeaker.name = speakerVM.name;
            }
            else
            {
                return(BadRequest());
            }

            _context.Entry(existingSpeaker).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SpeakerExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#11
0
        public ActionResult Edit(int id, SpeakerViewModel SpeakerViewModel)
        {
            var imageInfo       = SpeakerViewModel.Name + " Photo";
            var imageValidation = SpeakerViewModel.Photo.ValidateImage();

            if (SpeakerViewModel.Photo.ValidateImageUpload().ContainsKey("ModelError"))
            {
                ModelState.AddModelError("ImageUpload", imageValidation["ModelError"]);
            }

            if (ModelState.IsValid)
            {
                var url   = SpeakerViewModel.Photo.SaveImageUpload(_serverMapPathProvider, Constants.SponsorUploadDir);
                var Photo = new Image {
                    Title = imageInfo, AltText = imageInfo, ImageType = ImageType.Profile, ImageUrl = url
                };
                var speaker = _repository.Find(new GetSpeakerById(id));

                speaker.Email      = SpeakerViewModel.Email;
                speaker.Name       = SpeakerViewModel.Name;
                speaker.Phone      = SpeakerViewModel.Phone;
                speaker.WebSiteUrl = SpeakerViewModel.WebSiteUrl;
                speaker.Photo      = Photo;

                _repository.Context.Commit();

                return(RedirectToAction("Index"));
            }
            return(View(SpeakerViewModel));
        }
示例#12
0
        public ActionResult Edit(int id, SpeakerViewModel speakerViewModel)
        {
            var imageInfo = speakerViewModel.Name + " Photo";

            if (speakerViewModel.Photo != null)
            {
                var imageValidation = speakerViewModel.Photo.ValidateImageUpload();
                if (imageValidation.ContainsKey("ModelError"))
                {
                    ModelState.AddModelError("ImageUpload", imageValidation["ModelError"]);
                }
            }

            if (ModelState.IsValid)
            {
                var speaker = _repository.Find(new GetSpeakerById(id));

                speaker.Email      = speakerViewModel.Email;
                speaker.Name       = speakerViewModel.Name;
                speaker.Phone      = speakerViewModel.Phone;
                speaker.WebSiteUrl = speakerViewModel.WebSiteUrl;
                speaker.Bio        = speakerViewModel.Bio;

                // Get existing image from database.
                var image = _repository.Find(new GetById <int, Image>(speakerViewModel.PhotoId));

                // If image is cleared then we delete the image from the image store and set the speaker photo to null
                if (speakerViewModel.ImageIsCleared)
                {
                    if (image != null)
                    {
                        image.DeleteImage(_serverMapPathProvider, Constants.SpeakerUploadDir);
                    }
                    image = null;
                }

                // Set image from viewModel. If the photo on the viewModel is not null then the user
                // has changed the image from the screen so we overwrite the image retrieved from the database
                if (speakerViewModel.Photo != null)
                {
                    var url      = speakerViewModel.Photo.SaveImageUpload(_serverMapPathProvider, Constants.SpeakerUploadDir);
                    var newImage = new Image {
                        Title = imageInfo, AltText = imageInfo, ImageType = ImageType.Profile, ImageUrl = url
                    };
                    if (image != null)
                    {
                        image.DeleteImage(_serverMapPathProvider, Constants.SpeakerUploadDir);
                    }
                    image = newImage;
                }

                // Set speaker photo to the existing image, no image, or the new image
                speaker.Photo = image;

                _repository.Context.Commit();

                return(RedirectToAction("Index"));
            }
            return(View(speakerViewModel));
        }
示例#13
0
        public ActionResult Create(SpeakerViewModel SpeakerViewModel)
        {
            var imageInfo       = SpeakerViewModel.Name + " Photo";
            var imageValidation = SpeakerViewModel.Photo.ValidateImageUpload();

            if (imageValidation.ContainsKey("ModelError"))
            {
                ModelState.AddModelError("ImageUpload", imageValidation["ModelError"]);
            }

            if (ModelState.IsValid)
            {
                var speaker = new Speaker
                {
                    Email      = SpeakerViewModel.Email,
                    Name       = SpeakerViewModel.Name,
                    Phone      = SpeakerViewModel.Phone,
                    WebSiteUrl = SpeakerViewModel.WebSiteUrl,
                    Bio        = SpeakerViewModel.Bio
                };
                var url   = SpeakerViewModel.Photo.SaveImageUpload(_serverMapPathProvider, Constants.SponsorUploadDir);
                var Photo = new Image {
                    Title = imageInfo, AltText = imageInfo, ImageType = ImageType.Profile, ImageUrl = url
                };
                speaker.Photo = Photo;
                _repository.Context.Add(speaker);
                _repository.Context.Commit();

                return(RedirectToAction("Index"));
            }
            return(View(SpeakerViewModel));
        }
示例#14
0
        public void SpeakerViewModelCtor_4Contestants2Heats_2ContestantsReturned()
        {
            var tourney = Factory.CreateStartedTournament(4, 1, 2);

            var result = new SpeakerViewModel(tourney, 1);

            Assert.AreEqual(2, result.CurrentContestants.Count);
        }
        // GET: Talk/Details/5
        public ActionResult Details(int id)
        {
            var getTalkById        = talk.GetById(id);
            SpeakerViewModel model = new SpeakerViewModel();

            model.InjectFrom(getTalkById);
            return(View(model));
        }
示例#16
0
 protected async override void OnAppearing()
 {
     Analytics.TrackEvent("SpeakerPage");
     base.OnAppearing();
     //Workaround here
     BindingContext = viewModel = Startup.ServiceProvider?.GetService <SpeakerViewModel>() ?? new SpeakerViewModel();
     await Refresh();
 }
        public void Post([FromBody] SpeakerViewModel speakerVM)
        {
            var speaker = new Speaker {
                name = speakerVM.name
            };

            _context.Speakers.Add(speaker);
            _context.SaveChanges();
        }
        public ActionResult Delete(int id, SpeakerViewModel model)
        {
            Speakers deleteSpeaker = new Speakers();

            deleteSpeaker = speaker.GetById(id);
            model.InjectFrom(deleteSpeaker);
            speaker.DeleteSpeakers(deleteSpeaker);
            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Edit(int id, SpeakerViewModel model)
        {
            if (ModelState.IsValid)
            {
                var speaker = await db.Speakers.FindAsync(model.Id);

                speaker.SpeakerName   = model.SpeakerName;
                speaker.Qualification = model.Qualification;
                speaker.Experience    = model.Experience;
                speaker.SpeakingDate  = model.SpeakingDate;
                speaker.SpeakingTime  = model.SpeakingTime;
                speaker.Venue         = model.Venue;

                if (model.SpeakerPicture != null)
                {
                    if (model.ExistingImage != null)
                    {
                        string filePath = Path.Combine(webHostEnvironment.WebRootPath, "Uploads", model.ExistingImage);
                        System.IO.File.Delete(filePath);
                    }

                    speaker.ProfilePicture = ProcessUploadedFile(model);
                }
                db.Update(speaker);
                await db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View());

            //if (id != model.Id)
            //{
            //    return NotFound();
            //}

            //if (ModelState.IsValid)
            //{
            //    try
            //    {
            //        _context.Update(speaker);
            //        await _context.SaveChangesAsync();
            //    }
            //    catch (DbUpdateConcurrencyException)
            //    {
            //        if (!SpeakerExists(speaker.Id))
            //        {
            //            return NotFound();
            //        }
            //        else
            //        {
            //            throw;
            //        }
            //    }
            //    return RedirectToAction(nameof(Index));
            //}
            //return View(speaker);
        }
        public ActionResult Edit(int id, SpeakerViewModel model)
        {
            Speakers edit = new Speakers();

            edit.InjectFrom(model);
            var createNewSpeaker = speaker.Update(edit);

            return(RedirectToAction(nameof(Index)));
        }
        // GET: Speakers/Edit/5
        public ActionResult Edit(int id)
        {
            var edit = speaker.GetById(id);
            SpeakerViewModel model = new SpeakerViewModel();

            model.InjectFrom(edit);

            return(View(model));
        }
示例#22
0
        public void SpeakerViewModelCtor_BasicProperties()
        {
            var tournament = Factory.CreateStartedTournament(6, 1, 3);
            var target     = new SpeakerViewModel(tournament);

            Assert.AreEqual(1, target.Round.RoundNo, "roundNo");
            Assert.AreEqual(6, target.Round.ContestantEntries.Count, "entris in first round");
            Assert.AreEqual(1, target.CurrentRunNo, "runNo");
            Assert.AreEqual(1, target.CurrentHeatNo, "heatNo");
        }
示例#23
0
        public void SpeakerViewModelCtor_Heats()
        {
            var tournament = Factory.CreateStartedTournament(6, 1, 3);
            var target     = new SpeakerViewModel(tournament);

            Assert.AreEqual(2, target.Heats.Count);
            Assert.AreEqual(3, target.Heats[0].Contestants.Count, "contestants in heat 1");
            Assert.AreEqual(3, target.Heats[1].Contestants.Count, "contestants in heat 2");
            // Assert.AreSame(target.CurrentContestant.Contestant, target.Heats[0].Contestants[0], "Current is first in heat 1");
        }
        // GET: Speakers/Delete/5
        public ActionResult Delete(int id)
        {
            var delete = speaker.GetById(id);

            SpeakerViewModel model = new SpeakerViewModel();

            model.InjectFrom(delete);

            return(View(model));
        }
 private Speaker Map(SpeakerViewModel speaker) =>
 new Speaker
 {
     IdSpeaker      = speaker.IdSpeaker,
     IdConference   = speaker.IdConference,
     FirstName      = speaker.FirstName,
     LastName       = speaker.LastName,
     SpeechDateTime = speaker.SpeechDateTime,
     SpeechName     = speaker.SpeechName,
 };
示例#26
0
        public void SpeakerViewModelCtor_PreStart_StartButtonDisabled()
        {
            var tournament = Factory.CreateStartedTournament(2, 2, 1);

            tournament.Rounds.FirstOrDefault().Status = TournamentStatus.Prestart;

            var result = new SpeakerViewModel(tournament, 1);

            Assert.AreEqual(true, result.DisableStartButton);
        }
示例#27
0
        public void SpeakerViewModelCtor_PrestartRound_NoExceptions()
        {
            var tournament = Factory.CreateInitializedTourney();

            tournament.Status = TournamentStatus.Running;
            tournament.GetRoundNo(1).Status = TournamentStatus.Prestart;
            tournament.GetRoundNo(1).EnsureListsAreInitialized();

            var target = new SpeakerViewModel(tournament);

            Assert.AreEqual(0, target.Heats.Count);
        }
示例#28
0
        public virtual ActionResult SpeakerIndex(long tournamentId, int?roundNo = null)
        {
            var tourney = TournamentService.GetTournamentGuarded(tournamentId);

            if (tourney.Status != TournamentStatus.Running)
            {
                return(this.View(MVC.Speaker.TournamentSpeaker.Views.ViewNames.TournamentNotRunning, new _LayoutViewModel()));
            }
            var model = new SpeakerViewModel(tourney, roundNo);

            return(View(model));
        }
示例#29
0
        // GET: Speakers/Edit/5
        public ActionResult Edit(int id)
        {
            var speaker   = _repository.Find(new GetSpeakerById(id));
            var viewModel = new SpeakerViewModel
            {
                Email      = speaker.Email,
                Name       = speaker.Name,
                Phone      = speaker.Phone,
                WebSiteUrl = speaker.WebSiteUrl,
                PhotoUrl   = speaker.Photo.ImageUrl
            };

            return(View(viewModel));
        }
示例#30
0
        // GET: /Speaker/
        public async Task <ActionResult> Index()
        {
            SpeakerViewModel speaker = new SpeakerViewModel();

            try
            {
                speaker = await speakerManager.GetSpeakerAsync();
            }
            catch (Exception ex)
            {
                //Add logging code here
            }
            return(View(speaker));
        }
示例#31
0
 /// <summary>
 /// Provides a deterministic way to create the Speaker property.
 /// </summary>
 public static void CreateSpeaker()
 {
     if (_speaker == null)
     {
         _speaker = new SpeakerViewModel();
     }
 }
示例#32
0
 /// <summary>
 /// Provides a deterministic way to delete the Speaker property.
 /// </summary>
 public static void ClearSpeaker()
 {
     _speaker.Cleanup();
     _speaker = null;
 }