Exemplo n.º 1
0
    public async Task GetResourceAsyncFetchesLocalization()
    {
        ResetCounters();

        DataMetaWrapper <TranslationData> resource = await _service.GetResourceAsync <TranslationData>(LanguageLocale, NStackPlatform.Web, "1.0.0");

        Assert.AreEqual(_danish, resource);
    }
Exemplo n.º 2
0
    public async Task GetResourceAsyncDoesntFetchLocalizationOnSecondCall()
    {
        ResetCounters();

        DataMetaWrapper <TranslationData> resource = await _service.GetResourceAsync <TranslationData>(LanguageLocale, NStackPlatform.Web, "1.0.0");

        DataMetaWrapper <TranslationData> resource2 = await _service.GetResourceAsync <TranslationData>(LanguageLocale, NStackPlatform.Web, "1.0.0");

        _repository.Verify(s => s.DoRequestAsync <DataAppOpenWrapper>(It.IsAny <RestRequest>(), It.IsAny <Action <HttpStatusCode> >()), Times.Once());
        _localizeService.Verify(s => s.GetResourceAsync <TranslationData>(LanguageId), Times.Once());
    }
Exemplo n.º 3
0
    public async Task GetDefaultResourceAsyncFetchLocalizationOnSecondCallOnExpiry()
    {
        ResetCounters();

        DataMetaWrapper <TranslationData> resource = await _service.GetDefaultResourceAsync <TranslationData>(NStackPlatform.Web, "1.0.0");

        _memoryCache.Set <DateTime>("nstack-last-updated", DateTime.UtcNow.AddHours(-2));

        DataMetaWrapper <TranslationData> resource2 = await _service.GetDefaultResourceAsync <TranslationData>(NStackPlatform.Web, "1.0.0");

        _repository.Verify(s => s.DoRequestAsync <DataAppOpenWrapper>(It.IsAny <RestRequest>(), It.IsAny <Action <HttpStatusCode> >()), Times.Exactly(2));
        _localizeService.Verify(s => s.GetResourceAsync <TranslationData>(LanguageId), Times.Exactly(2));
    }
Exemplo n.º 4
0
    public void Initialize()
    {
        _repository = new Mock <INStackRepository>(MockBehavior.Strict);
        _repository.Setup(r => r.DoRequestAsync <DataAppOpenWrapper>(It.Is <RestRequest>(s => s.Resource.EndsWith("api/v2/open")), It.IsAny <Action <HttpStatusCode> >()))
        .Returns(GetAppOpenMock);

        var danish         = new TranslationData();
        var defaultSection = new DefaultSection();

        defaultSection.TryAdd("text", "Jeg er på dansk");
        danish.TryAdd("default", defaultSection);

        _danish = new DataMetaWrapper <TranslationData>
        {
            Data = danish,
            Meta = new MetaData
            {
                Language = new Language
                {
                    Direction = LanguageDirection.LRM,
                    Id        = LanguageId,
                    IsBestFit = true,
                    IsDefault = true,
                    Locale    = LanguageLocale,
                    Name      = "Danish"
                },
                Platform = new ResourcePlatform
                {
                    Id   = LanguageId,
                    Slug = NStackPlatform.Web
                }
            }
        };

        _localizeService = new Mock <INStackLocalizeService>(MockBehavior.Strict);
        _localizeService.Setup(r => r.GetResourceAsync <TranslationData>(It.Is <int>(id => id == LanguageId)))
        .Returns(Task.FromResult(_danish));

        var services = new ServiceCollection();

        services.AddMemoryCache();
        var serviceProvider = services.BuildServiceProvider();

        _memoryCache = serviceProvider?.GetService <IMemoryCache>() ?? throw new ArgumentNullException();

        _service = new NStackAppService(_repository.Object, _localizeService.Object, _memoryCache);
    }
Exemplo n.º 5
0
    public async Task <IActionResult> Index()
    {
        Guid userId = GetUserId();

        TermsWithContent newestTerms = await GetNewestTerms(userId, Request.GetCurrentLanguage());

        DataMetaWrapper <Translation> translations = await GetTranslations();

        var viewModel = new TermsViewModel
        {
            Content           = newestTerms.Content.Data,
            HasApproved       = newestTerms.HasViewed,
            Headline          = translations.Data.Terms.Headline,
            ApproveButton     = translations.Data.Terms.Approve,
            HasApprovedString = translations.Data.Terms.HasApproved
        };

        return(View(viewModel));
    }
Exemplo n.º 6
0
    public async Task <IActionResult> Index()
    {
        DataMetaWrapper <Translation> res = await GetTranslations();

        return(View(res.Data.Default));
    }