コード例 #1
0
        /// <summary>
        /// Create a new team.
        /// </summary>
        /// <param name="teamEditorVm">Team editor instance that contains information about the team that needs to be created.</param>
        public async Task <TeamDetailVm> CreateAsync(TeamEditorVm teamEditorVm)
        {
            // Create the team object and save it into the database
            var team = new Team
            {
                Name        = teamEditorVm.Name,
                Code        = teamEditorVm.Code,
                Description = teamEditorVm.Description,
                Status      = TeamStatus.Pending,
                DateCreated = DateTime.Now,
                OwnerId     = CurrentUser.Id
            };

            Repositories.Team.Create(team);

            var teamDivision = new TeamDivision
            {
                Team    = team,
                Name    = team.Name,
                SportId = teamEditorVm.SportId
            };

            // Set team owner
            var ownerRoleId = await Repositories.TeamDivisionRole.GetOneAsync(x => x.Name == TeamDivisionRole.NAME_OWNER);

            var ownerTeamMembership = new TeamDivisionMembership
            {
                TeamDivision = teamDivision,
                UserId       = CurrentUser.Id,
                TeamRoleId   = ownerRoleId.Id
            };

            teamDivision.TeamDivisionMemberships = new List <TeamDivisionMembership>
            {
                ownerTeamMembership
            };

            Repositories.TeamDivision.Create(teamDivision);

            // Save changes
            Repositories.SaveChanges();

            // Upload the logo and the banner
            var logoTask = await SetTeamLogoAsync(team.Id, teamEditorVm);

            var bannerTask = await SetTeamBannerAsync(team.Id, teamEditorVm);

            team.LogoImageUrl   = logoTask.Value;
            team.BannerImageUrl = bannerTask.Value;

            // Save changes to the team model (logo/banner)
            Repositories.SaveChanges();

            return(new TeamDetailVm(team));
        }
コード例 #2
0
        public async Task <ActionResult> Register(TeamEditorVm teamRegisterVm)
        {
            if (ModelState.IsValid)
            {
                var teamDetailVm = await Managers.TeamManager.CreateAsync(teamRegisterVm);

                return(RedirectToAction("Details", new { id = teamDetailVm.Id }));
            }

            ViewBag.SportsList = GetSportSelectList();
            return(View(teamRegisterVm));
        }
コード例 #3
0
        /// <summary>
        /// Save the team banner.
        /// </summary>
        /// <param name="teamId">Team Id.</param>
        /// <param name="teamEditorVm">Editor instance.</param>
        public async Task <StggResult <string> > SetTeamBannerAsync(int teamId, TeamEditorVm teamEditorVm)
        {
            var bannerPath = await Managers.ContentManager.SaveFileAsync(GetTeamContentFolder(teamId), "banner.jpg", teamEditorVm.BannerFile.InputStream);

            return(new StggResult <string>(bannerPath));
        }
コード例 #4
0
        /// <summary>
        /// Save the team logo.
        /// </summary>
        /// <param name="teamId">Team Id.</param>
        /// <param name="teamEditorVm">Editor instance.</param>
        public async Task <StggResult <string> > SetTeamLogoAsync(int teamId, TeamEditorVm teamEditorVm)
        {
            var logoPath = await Managers.ContentManager.SaveFileAsync(GetTeamContentFolder(teamId), "logo.jpg", teamEditorVm.LogoFile.InputStream);

            return(new StggResult <string>(logoPath));
        }