public void Verify_Update_Should_SetTheEntityStateToModified()
        {
            // Arrange
            Mock <IDbSet <Team> > mockSetTeams;
            var mockContext = TeamsMockingSetup.DoMockingSetupForContext(true, out mockSetTeams);
            var repository  = new TeamsRepository(mockContext.Object);
            var teams       = repository.Get(1);

            teams.ApiDetailUrl = "/TEST";
            // Act
            repository.Update(teams);
            // Assert
            mockContext.Verify(x => x.SetModified(It.IsAny <object>()), Times.Once);
        }
示例#2
0
        public ActionResult Edit(TeamsEditViewModel viewModel)
        {
            ValidateTeam(viewModel.Team);

            if (ModelState.IsValid)
            {
                var team = viewModel.Team;

                _teamsRepository.Update(team);

                TempData["Message"] = "Your team was successfully updated!";

                return(RedirectToAction("Detail", new { id = team.Id }));
            }

            viewModel.Init(Repository, _eventsRepository, _teamMembersRepository);

            return(View(viewModel));
        }
示例#3
0
        public async Task UpdatesTeam()
        {
            var teamName  = "Team";
            var teamName2 = "Team1";

            var mockTeams = new List <Team>
            {
                new Team {
                    Id = 1, Name = teamName
                },
                new Team {
                    Id = 2
                },
                new Team {
                    Id = 3
                }
            };

            using (var context = new ApplicationDbContext(_options))
            {
                context.Teams.AddRange(mockTeams);

                context.SaveChanges();
            }

            using (var context = new ApplicationDbContext(_options))
            {
                var teamsRepository = new TeamsRepository(context);
                var existingTeam    = mockTeams[0];
                var updatedTeam     = mockTeams[0];
                updatedTeam.Name = teamName2;
                await teamsRepository.Update(existingTeam, updatedTeam);
            }

            using (var context = new ApplicationDbContext(_options))
            {
                Assert.NotNull(context.Teams.SingleOrDefault(x => x.Id == 1));
                Assert.Equal(teamName2, context.Teams.Single(x => x.Id == 1).Name);
            }
        }
示例#4
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (HttpContext.Session.GetString("EventId") == null)
            {
                string returnUrl = HttpContext.Request.Path.ToString();
                return(RedirectToPage("/Account/Login", new { area = "Identity", returnUrl }));
            }

            ViewData["IsParticipating"] = HttpContext.Session.GetString("IsParticipating");
            int         eventId     = int.Parse(HttpContext.Session.GetString("EventId"), CultureInfo.CurrentCulture);
            DinnerEvent dinnerEvent = DinnerEventsRepository.GetById(eventId);

            if (dinnerEvent != null)
            {
                // Values are passed-through to layout page
                ViewData["EventName"]        = dinnerEvent.EventName;
                ViewData["EventDate"]        = dinnerEvent.EventDate.ToShortDateString();
                ViewData["EventCity"]        = dinnerEvent.City;
                ViewData["EventPictureLink"] = dinnerEvent.EventPictureLink;
            }

            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = await UserManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{UserManager.GetUserId(User)}'.");
            }

            // Load Team
            Team team = TeamsRepository.SearchFor(x => x.Event.Id == dinnerEvent.Id && (x.Partner1.Id == user.Id || x.Partner2.Id == user.Id)).Include("Partner1").Include("Partner2").Include("Event").FirstOrDefault();

            if (team != null)
            {
                team.DinnerSaver      = Input.DinnerSaver;
                team.SelectedCourse   = Input.SelectedCourse;
                team.AddressStreet    = Input.AddressStreet;
                team.AddressAdditions = Input.AddressAdditions;
                team.AddressNumber    = Input.AddressNumber;
                team.FullAddress      = Input.AddressStreet + " " + Input.AddressNumber;
                TeamsRepository.Update(team);
                TeamsRepository.SaveChanges();
                TempData["StatusMessage"] = @"Die Einstellungen für dein Team wurden gespeichert.";
            }

            else
            {
                EventParticipation participation = EventParticipationsRepository.SearchFor(x => x.User.Id == user.Id && x.Event.Id == eventId).FirstOrDefault();
                if (participation == null)
                {
                    participation = new EventParticipation
                    {
                        InvitationMailSent = true,
                        User                 = user,
                        Event                = dinnerEvent,
                        PartnerName          = Input.PartnerFirstName,
                        PartnerLastName      = Input.PartnerLastName,
                        PartnerEmail         = Input.PartnerEmail,
                        Address              = Input.AddressStreet,
                        AddressNumber        = Input.AddressNumber,
                        AddressAdditions     = Input.AddressAdditions,
                        Phone                = Input.Phone,
                        Allergies            = Input.Allergies,
                        SelectedCourse       = Input.SelectedCourse,
                        IsWithoutPartner     = Input.IsWithoutPartner,
                        DinnerSaver          = Input.DinnerSaver,
                        RegistrationComplete = true
                    };

                    EventParticipationsRepository.Insert(participation);
                    EventParticipationsRepository.SaveChanges();
                    // Add contact to Mailjet Contacts, save ContactId
                    string apiKey          = Configuration?.GetEmailSettings("apiKey");
                    string apiSecret       = Configuration?.GetEmailSettings("apiSecret");
                    long   listRecipientId = await EmailSender.AddContactToContactListAsync(apiKey, apiSecret, user.ContactId.ToString(CultureInfo.InvariantCulture), dinnerEvent.ContactList.ToString(CultureInfo.InvariantCulture));

                    user.ListRecipientId = listRecipientId;
                    await UserManager.UpdateAsync(user);
                }

                else
                {
                    participation.Phone                = Input.Phone;
                    participation.Allergies            = Input.Allergies;
                    participation.Address              = Input.AddressStreet;
                    participation.AddressNumber        = Input.AddressNumber;
                    participation.AddressAdditions     = Input.AddressAdditions;
                    participation.PartnerName          = Input.PartnerFirstName;
                    participation.PartnerLastName      = Input.PartnerLastName;
                    participation.PartnerEmail         = Input.PartnerEmail;
                    participation.SelectedCourse       = Input.SelectedCourse;
                    participation.IsWithoutPartner     = Input.IsWithoutPartner;
                    participation.DinnerSaver          = Input.DinnerSaver;
                    participation.RegistrationComplete = true;
                    EventParticipationsRepository.Update(participation);
                    EventParticipationsRepository.SaveChanges();
                }

                await OnPostSendPartnerInvitation(eventId, Input.PartnerFirstName, Input.PartnerLastName, Input.PartnerEmail, user.Id);

                TempData["StatusMessage"] = "Deine Anmeldung wurde gespeichert. Eine Einladung wurde an " + Input.PartnerEmail +
                                            " geschickt. Die Anmeldung ist vollständig sobald dein Partner bestätigt hat.";
            }

            return(RedirectToPage("./RegistrationData", eventId));
        }
示例#5
0
        public MainViewModel()
        {
            Instance = this;
            LabDbContext cntxt = new LabDbContext();

            //PlayersRepository = new Repository<Player>(cntxt);
            //TeamsRepository = new Repository<Team>(cntxt);

            TeamsCollection = new List <Team>();

            AddTeamCommand = new RelayCommand(() =>
            {
                NewTeamWindow newTeamWindow = new NewTeamWindow();

                // Show window modally
                // NOTE: Returns only when window is closed
                bool?dialogResult = newTeamWindow.ShowDialog();

                if (dialogResult == true)
                {
                    Team t = new Team()
                    {
                        Name   = newTeamWindow.TeamName.Text,
                        Region = newTeamWindow.TeamRegion.Text
                    };
                    TeamsRepository.Create(t);
                    UpdateTeamsList();
                    //TeamsRepository.Update(t);

                    SelectedTeam = t;
                }
            });

            RemoveTeamCommand = new RelayCommand(() =>
            {
                if (SelectedTeam != null)
                {
                    TeamsRepository.Remove(SelectedTeam);
                    CurrentPage = null;
                    UpdateTeamsList();
                }
            });

            EditTeamCommand = new RelayCommand(() =>
            {
                Team teamToChange = SelectedTeam;
                // Instantiate window
                NewTeamWindow newTeamWindow = new NewTeamWindow();

                newTeamWindow.TeamName.Text   = SelectedTeam.Name;
                newTeamWindow.TeamRegion.Text = SelectedTeam.Region;

                // Show window modally
                // NOTE: Returns only when window is closed
                bool?dialogResult = newTeamWindow.ShowDialog();

                if (dialogResult == true)
                {
                    SelectedTeam.Name   = newTeamWindow.TeamName.Text;
                    SelectedTeam.Region = newTeamWindow.TeamRegion.Text;

                    TeamsRepository.Update(SelectedTeam);
                    UpdateTeamsList();
                    CurrentPage = new TeamPage(SelectedTeam);
                }
            });

            UpdateTeamsList();
        }
 public void Verify_Update_Should_SetTheEntityStateToModified()
 {
     // Arrange
     Mock<IDbSet<Team>> mockSetTeams;
     var mockContext = TeamsMockingSetup.DoMockingSetupForContext(true, out mockSetTeams);
     var repository = new TeamsRepository(mockContext.Object);
     var teams = repository.Get(1);
     teams.ApiDetailUrl = "/TEST";
     // Act
     repository.Update(teams);
     // Assert
     mockContext.Verify(x => x.SetModified(It.IsAny<object>()), Times.Once);
 }