コード例 #1
0
        public JsonResult UpdateSettings(int id, TeamSettingsViewModel teamSettings)
        {
            var activeUser = this.GetActiveUser(this.Request);

            if (activeUser == null || !_teamService.CanEdit(id, activeUser.Id))
            {
                throw new HttpException((int)HttpStatusCode.Unauthorized, "Not authorized to edit this team's settings");
            }

            if (id != teamSettings.TeamId)
            {
                throw new HttpException((int)HttpStatusCode.Unauthorized, "Team ID mismatch");
            }

            teamSettings = _teamService.UpdateSettings(teamSettings);
            return(Json(teamSettings));
        }
コード例 #2
0
        public TeamSettingsViewModel UpdateSettings(TeamSettingsViewModel teamSettings)
        {
            using (var entities = Database.GetEntities())
            {
                var teamData = entities.TeamDatas.Single(x => x.Id == teamSettings.TeamId);

                if (!string.IsNullOrEmpty(teamSettings.Name))
                {
                    teamData.Name = teamSettings.Name;
                }

                // Update settings
                if (teamSettings.Settings != null)
                {
                    var settingsData = entities.TeamSettingsDatas.Single(x => x.TeamId == teamSettings.TeamId);
                    settingsData.ResultsView    = teamSettings.Settings.ResultsView;
                    settingsData.ArenaColumn    = teamSettings.Settings.ArenaColumn;
                    settingsData.LastNameColumn = teamSettings.Settings.LastNameColumn;
                    settingsData.PositionColumn = teamSettings.Settings.PositionColumn;
                    settingsData.PhoneColumn    = teamSettings.Settings.PhoneColumn;
                    settingsData.EmailColumn    = teamSettings.Settings.EmailColumn;
                }

                // Update privacy
                if (teamSettings.Privacy != null)
                {
                    var privacyData = entities.TeamPrivacyDatas.Single(x => x.TeamId == teamSettings.TeamId);
                    privacyData.HomePage = teamSettings.Privacy.HomePage;
                    privacyData.Roster   = teamSettings.Privacy.Roster;
                }

                entities.SaveChanges();

                return(teamSettings);
            }
        }
コード例 #3
0
        public JsonResult Create(Team team)
        {
            var activeUser = this.GetActiveUser(this.Request);

            if (activeUser == null)
            {
                throw new HttpException((int)HttpStatusCode.Unauthorized, "Invalid user");
            }

            var type        = team.Type;
            var prepopulate = team.Prepopulate;
            var makePublic  = team.MakePublic;

            if (prepopulate)
            {
                // User asked us to prepoplate the team with a sample schedule and roster
                team = new OrchestrationService().CreateSampleTeam(team.Name, activeUser);
            }
            else
            {
                // Normal, empty team
                team = _teamService.AddTeam(team, activeUser);
            }

            // Set settings
            var settings = new TeamSettingsViewModel
            {
                TeamId  = team.Id,
                Name    = team.Name,
                Privacy = new TeamPrivacyData {
                    HomePage = makePublic, Roster = true
                },
                Settings = new TeamSettingsData {
                    EmailColumn = true
                }                                                      // Defined below
            };

            switch (type)
            {
            case "online":
                settings.Settings.ArenaColumn    = false;
                settings.Settings.LastNameColumn = false;
                settings.Settings.PositionColumn = true;
                settings.Settings.PhoneColumn    = false;
                settings.Settings.ResultsView    = 1;
                break;

            case "club":
                settings.Settings.ArenaColumn    = false;
                settings.Settings.LastNameColumn = true;
                settings.Settings.PositionColumn = false;
                settings.Settings.PhoneColumn    = true;
                settings.Settings.ResultsView    = 3;
                break;

            default:     // & "sports"
                settings.Settings.ArenaColumn    = true;
                settings.Settings.LastNameColumn = true;
                settings.Settings.PositionColumn = true;
                settings.Settings.PhoneColumn    = true;
                settings.Settings.ResultsView    = 0;
                break;
            }
            _teamService.UpdateSettings(settings);

            return(Json(team));
        }
コード例 #4
0
 public TeamSettingsView()
 {
     InitializeComponent();
     DataContext = new TeamSettingsViewModel();
 }