private async Task <Guid> CopyClub(Guid copyFromClubId, ClubRequest request, bool test) { var targetClub = new Core.Model.Club { Name = request.ClubName, Initials = request.ClubInitials + (test ? "TEST" : ""), IsHidden = test, Url = request.ClubWebsite, }; return(await _coreClubService.CopyClubAsync( copyFromClubId, targetClub)); }
public async Task ProcessRequest( Guid id, bool test, Guid?copyFromClubId) { var request = await _coreClubRequestService.GetRequest(id); request.ClubInitials = request.ClubInitials.ToUpperInvariant(); Guid newClubId; if (copyFromClubId.HasValue && copyFromClubId.Value != Guid.Empty) { newClubId = await CopyClub(copyFromClubId.Value, request, test); request.TestClubId = newClubId; request.RequestApproved ??= DateTime.UtcNow; await _coreClubRequestService.UpdateRequest(request); } else { var baseScoringSystem = await _coreScoringService.GetSiteDefaultSystemAsync(); ScoringSystem newScoringSystem = new ScoringSystem { ParentSystemId = baseScoringSystem.Id, Name = $"{request.ClubInitials} scoring based on App. A Rule 5.3", DiscardPattern = "0,1" }; var initialsToUse = request.ClubInitials + (test ? "TEST" : ""); var club = new Core.Model.Club { Id = Guid.Empty, Name = request.ClubName, Initials = initialsToUse, IsHidden = true, Url = request.ClubWebsite, DefaultScoringSystem = newScoringSystem, Description = (String.IsNullOrWhiteSpace(request.ClubLocation) ? (string)null : "_" + request.ClubLocation + "_"), ScoringSystems = new List <ScoringSystem> { newScoringSystem } }; newClubId = await _coreClubService.SaveNewClub(club); ClearClubMemoryCache(); if (club.IsHidden) { request.TestClubId = newClubId; } else { request.VisibleClubId = newClubId; } request.RequestApproved ??= DateTime.UtcNow; await _coreClubRequestService.UpdateRequest(request); } #pragma warning disable CA1308 // Normalize strings to uppercase // we are storing email in lowercase, and not round-tripping back to upper case. await _coreUserService.AddPermission(newClubId, request.ContactEmail.ToLowerInvariant()); #pragma warning restore CA1308 // Normalize strings to uppercase }