/// <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)); }
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)); }
/// <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)); }
/// <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)); }