コード例 #1
0
    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));
    }
コード例 #2
0
    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
    }