public static async Task DeleteCardAsync(DbContextOptions <MemCheckDbContext> db, Guid userId, Guid cardId, DateTime?deletionDate = null) { using var dbContext = new MemCheckDbContext(db); var deleter = new DeleteCards(dbContext.AsCallContext(), deletionDate); var deletionRequest = new DeleteCards.Request(userId, cardId.AsArray()); await deleter.RunAsync(deletionRequest); }
private static async Task DeleteCardAsync(DbContextOptions <MemCheckDbContext> testDB, Guid userId, Guid cardId, DateTime deletionDate) { using var dbContext = new MemCheckDbContext(testDB); var deleter = new DeleteCards(dbContext.AsCallContext(new TestLocalizer(new KeyValuePair <string, string>("Deletion", DeletionDescription).AsArray())), deletionDate); var deletionRequest = new DeleteCards.Request(userId, cardId.AsArray()); await deleter.RunAsync(deletionRequest); }
private async Task CreateCard_WhatAreTheDepartmentsInThisRegionAsync(Region region, MemCheckUser user, Guid regionsAndDepartmentsWithNamesImageId, Guid frenchLanguageId, Guid tagId) { var frontSide = $"Quels départements y a-t-il dans la région {region.Name} ?"; if (dbContext.Cards.Where(card => card.VersionCreator.Id == user.Id && card.FrontSide == frontSide).Any()) { logger.LogInformation($"Card already exists for {region.Name}: {frontSide}"); return; } var backSide = string.Join(Environment.NewLine, region.Departments); var frontSideImages = Array.Empty <Guid>(); var backSideImages = new[] { regionsAndDepartmentsWithNamesImageId }; var additionalInfo = $"La région {region.Name} est constituée de {region.Departments.Length} départements.{Environment.NewLine}En 2017, sa densité était de {region.Density} habitants par km² (la moyenne métropolitaine étant de 168 h/km²)."; var additionalInfoImages = Array.Empty <Guid>(); var request = new CreateCard.Request(user.Id, frontSide, frontSideImages, backSide, backSideImages, additionalInfo, additionalInfoImages, frenchLanguageId, tagId.AsArray(), Array.Empty <Guid>(), CardVersionDescription); await new CreateCard(dbContext.AsCallContext()).RunAsync(request); }
private async Task CreateCard_WhatIsThisRegionAsync(Region region, MemCheckUser user, Guid regionsAndDepartmentsWithNamesImageId, Guid frenchLanguageId, Guid tagId) { var frontSide = "Comment s'appelle cette région française ?"; var backSide = region.Name; if (dbContext.Cards.Where(card => card.VersionCreator.Id == user.Id && card.FrontSide == frontSide && card.BackSide == backSide).Any()) { logger.LogInformation($"Card already exists for {region.Name}: {frontSide}"); return; } var frontSideImages = new[] { region.GetImageDbId(dbContext) }; var backSideImages = new[] { regionsAndDepartmentsWithNamesImageId }; var additionalInfo = $"Elle est constituée de ces {region.Departments.Length} départements :{Environment.NewLine}{string.Join(Environment.NewLine, region.Departments)}{Environment.NewLine}{Environment.NewLine}En 2017, sa densité était de {region.Density} habitants par km² (la moyenne métropolitaine étant de 168 h/km²)."; var request = new CreateCard.Request(user.Id, frontSide, frontSideImages, backSide, backSideImages, additionalInfo, Array.Empty <Guid>(), frenchLanguageId, tagId.AsArray(), Array.Empty <Guid>(), CardVersionDescription); await new CreateCard(dbContext.AsCallContext()).RunAsync(request); }
private async Task CreateCard_HowManyDepartmentsInThisRegionAsync(Region region, MemCheckUser user, Guid regionsAndDepartmentsWithNamesImageId, Guid frenchLanguageId, Guid tagId) { var frontSide = $"Combien y a-t-il de départements dans la région {region.Name} ?"; if (dbContext.Cards.Where(card => card.VersionCreator.Id == user.Id && card.FrontSide == frontSide).Any()) { logger.LogInformation($"Card already exists for {region.Name}: {frontSide}"); return; } var backSide = region.Departments.Length.ToString(); var frontSideImages = Array.Empty <Guid>(); var backSideImages = new[] { regionsAndDepartmentsWithNamesImageId }; var additionalInfo = string.Join(Environment.NewLine, region.Departments); var additionalInfoImages = Array.Empty <Guid>(); var request = new CreateCard.Request(user.Id, frontSide, frontSideImages, backSide, backSideImages, additionalInfo, additionalInfoImages, frenchLanguageId, tagId.AsArray(), Array.Empty <Guid>(), CardVersionDescription); await new CreateCard(dbContext.AsCallContext()).RunAsync(request); }
private async Task GenerateMinSpeedForNameAsync(BeaufortForce f, Guid userId, Guid frenchLanguageId, Guid tagId) { var frontSide = $"Quelle est la plus faible vitesse de vent par force _{f.Name}_ ?{Environment.NewLine}(En nœuds)"; if (dbContext.Cards.Where(card => card.VersionCreator.Id == userId && card.FrontSide == frontSide).Any()) { logger.LogInformation($"Card already exists for {f.Name}: {frontSide}"); return; } var backSide = $"{f.MinWind} nœuds"; var request = new CreateCard.Request(userId, frontSide, Array.Empty <Guid>(), backSide, Array.Empty <Guid>(), additionalInfo, Array.Empty <Guid>(), frenchLanguageId, tagId.AsArray(), Array.Empty <Guid>(), CardVersionDescription); await new CreateCard(dbContext.AsCallContext()).RunAsync(request); }
private async Task GenerateNameOfForceBelowNumberAsync(BeaufortForce f, Guid userId, Guid frenchLanguageId, Guid tagId) { var frontSide = $"Comment s'appelle la force Beaufort juste en-dessous de force {f.Number} ?"; if (dbContext.Cards.Where(card => card.VersionCreator.Id == userId && card.FrontSide == frontSide).Any()) { logger.LogInformation($"Card already exists for {f.Name}: {frontSide}"); return; } if (f.Number - 1 < 0) { return; } var backSide = $"_{forceFromNumber[f.Number - 1].Name}_"; var request = new CreateCard.Request(userId, frontSide, Array.Empty <Guid>(), backSide, Array.Empty <Guid>(), additionalInfo, Array.Empty <Guid>(), frenchLanguageId, tagId.AsArray(), Array.Empty <Guid>(), CardVersionDescription); await new CreateCard(dbContext.AsCallContext()).RunAsync(request); }
private async Task GenerateNumberOfForceAboveNameAsync(BeaufortForce f, Guid userId, Guid frenchLanguageId, Guid tagId) { var frontSide = $"Quel est le numéro de la force juste au-dessus de _{f.Name}_ ?"; if (dbContext.Cards.Where(card => card.VersionCreator.Id == userId && card.FrontSide == frontSide).Any()) { logger.LogInformation($"Card already exists for {f.Name}: {frontSide}"); return; } if (f.Number + 1 >= forceFromNumber.Length) { return; } var backSide = $"{forceFromNumber[f.Number + 1].Number}"; var request = new CreateCard.Request(userId, frontSide, Array.Empty <Guid>(), backSide, Array.Empty <Guid>(), additionalInfo, Array.Empty <Guid>(), frenchLanguageId, tagId.AsArray(), Array.Empty <Guid>(), CardVersionDescription); await new CreateCard(dbContext.AsCallContext()).RunAsync(request); }
private async Task GenerateNumberFromSpeedAsync(int windSpeed, BeaufortForce f, Guid userId, Guid frenchLanguageId, Guid tagId) { var frontSide = $"Quel est le numéro de force Beaufort quand le vent va à {windSpeed} nœuds ?"; if (dbContext.Cards.Where(card => card.VersionCreator.Id == userId && card.FrontSide == frontSide).Any()) { logger.LogInformation($"Card already exists for {f.Name}: {frontSide}"); return; } var request = new CreateCard.Request(userId, frontSide, Array.Empty <Guid>(), $"{f.Number}", Array.Empty <Guid>(), additionalInfo, Array.Empty <Guid>(), frenchLanguageId, tagId.AsArray(), Array.Empty <Guid>(), CardVersionDescription); await new CreateCard(dbContext.AsCallContext()).RunAsync(request); }
private async Task GenerateSpeedMiddleForNumberAsync(BeaufortForce f, Guid userId, Guid frenchLanguageId, Guid tagId) { var frontSide = $"Quelle vitesse de vent est au milieu de l'intervalle par force n°{f.Number} ?{Environment.NewLine}(En nœuds)"; if (dbContext.Cards.Where(card => card.VersionCreator.Id == userId && card.FrontSide == frontSide).Any()) { logger.LogInformation($"Card already exists for {f.Name}: {frontSide}"); return; } var backSide = $"{(f.MinWind + f.MaxWind) / 2} nœuds"; CreateCard.Request request = new(userId, frontSide, Array.Empty <Guid>(), backSide, Array.Empty <Guid>(), additionalInfo, Array.Empty <Guid>(), frenchLanguageId, tagId.AsArray(), Array.Empty <Guid>(), CardVersionDescription); await new CreateCard(dbContext.AsCallContext()).RunAsync(request); }