public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
                                                           ILogger log)
        {
            HttpResponseMessage response = req.CreateResponse(HttpStatusCode.InternalServerError);

            try {
                // Get passed argument (from query if present, if from JSON posted in body if not)
                log.LogInformation($"GetProviderByPRN starting");
                string PRN = req.RequestUri.ParseQueryString()["PRN"]?.ToString()
                             ?? (await req.Content.ReadAsAsync <PostData>())?.PRN;

                if (PRN == null)
                {
                    response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing PRN argument"));
                }
                else if (!int.TryParse(PRN, out int parsed))
                {
                    response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Invalid PRN argument"));
                }
                else
                {
                    // Get data
                    Providers.Provider p = new ProviderStorage().GetByPRN(PRN, log);
                    log.LogInformation($"GetProviderByPRN returning { p?.ProviderName }");

                    // Return results
                    response         = req.CreateResponse(p == null ? HttpStatusCode.NoContent : HttpStatusCode.OK);
                    response.Content = new StringContent(JsonConvert.SerializeObject(p), Encoding.UTF8, "application/json");
                }
            } catch (Exception ex) {
                throw ex;
            }
            return(response);
        }
Exemplo n.º 2
0
        public async Task ShouldReloadAllStuffFromBlobCache()
        {
            var identity = Guid.NewGuid();

            _blobCache.GetAllObjects <ProviderModel>().Returns(Observable.Return(new[]
            {
                new ProviderModel
                {
                    Id    = identity,
                    Token = "12345",
                    Type  = typeof(LocalProvider).Name
                }
            }));

            var provider = new ProviderStorage(new Dictionary <string, Func <Guid, IProvider> >
            {
                [typeof(LocalProvider).Name] = id => new LocalProvider(id),
            }, _blobCache);

            await provider.Refresh();

            var providers = provider.Providers().AsAggregator();

            Assert.Equal(1, providers.Data.Count);
            Assert.Contains(providers.Data.Items, x => x is LocalProvider);
            Assert.DoesNotContain(providers.Data.Items, x => x is VkDocsProvider);
            Assert.DoesNotContain(providers.Data.Items, x => x is YandexDiskProvider);
            Assert.Equal(identity, providers.Data.Items.First().Id);
        }
        public static IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
                                        ILogger log)
        {
            log.LogInformation("SetProviderDefaultDateUpdated HTTP trigger function processed a request.");
            var output = new ProviderStorage().SetDefaultDateUpdatedAsync(log); //, out long rowcount);

            output.Wait();
            return(new JsonResult(output.Result));
        }
Exemplo n.º 4
0
        public async Task ShouldResolveAllSupportedProviders()
        {
            var provider = new ProviderStorage();
            var sequence = await provider.LoadProviders();

            var providers = sequence.ToList();

            Assert.Contains(providers, x => x is LocalFileSystemProvider);
            Assert.Contains(providers, x => x is VkontakteFileSystemProvider);
            Assert.Contains(providers, x => x is YandexFileSystemProvider);
        }
Exemplo n.º 5
0
        public async Task ShouldResolveOnlySpecifiedProvidersIfNeeded()
        {
            var provider = new ProviderStorage(new LocalFileSystemProvider());
            var sequence = await provider.LoadProviders();

            var providers = sequence.ToList();

            Assert.Contains(providers, x => x is LocalFileSystemProvider);
            Assert.DoesNotContain(providers, x => x is VkontakteFileSystemProvider);
            Assert.DoesNotContain(providers, x => x is YandexFileSystemProvider);
        }
        public static void Run([TimerTrigger("0 0 0 */1 * *")] TimerInfo myTimer, ILogger log)       // Every 24 hrs normally
        //public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger log) {   // Every minute for debug

        {
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

            ProviderSynchronise ps = new ProviderSynchronise();
            List <ProviderService.ProviderRecordStructure> output = ps.SynchroniseProviders(log);

            log.LogInformation($"Inserting {output.Count} providers to CosmosDB providers collection");
            Task <bool> task = new ProviderStorage().InsertDocs(output, log);
        }
Exemplo n.º 7
0
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
                                                           ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");
            ProviderSynchronise ps = new ProviderSynchronise();
            List <ProviderService.ProviderRecordStructure> output = ps.SynchroniseProviders(DateTime.MinValue, log);

            log.LogInformation($"Inserting {output.Count} providers to CosmosDB providers collection");
            Task <bool> task = new ProviderStorage().InsertDocs(output, log, true);  // Truncate collection first

            task.Wait();
            return(req.CreateResponse <string>(HttpStatusCode.OK, JsonConvert.SerializeObject(output)));
        }
Exemplo n.º 8
0
        public async Task ShouldResolveOnlySpecifiedProvidersIfNeeded()
        {
            var provider = new ProviderStorage(new Dictionary <string, Func <Guid, IProvider> >
            {
                [typeof(LocalProvider).Name] = id => new LocalProvider(id),
            }, _blobCache);

            await provider.Add(typeof(LocalProvider).Name);

            var providers = provider.Providers().AsAggregator();

            Assert.Equal(1, providers.Data.Count);
            Assert.Contains(providers.Data.Items, x => x is LocalProvider);
            Assert.DoesNotContain(providers.Data.Items, x => x is VkDocsProvider);
            Assert.DoesNotContain(providers.Data.Items, x => x is YandexDiskProvider);
        }
Exemplo n.º 9
0
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
                                                           ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed GetAllProviders request");
            Task <IEnumerable <Providers.Provider> > task = new ProviderStorage().GetAll(log);

            task.Wait();

            // Return results
            log.LogInformation($"GetAllProviders returning results");
            //return req.CreateResponse<string>(HttpStatusCode.OK, JsonConvert.SerializeObject(task.Result));
            HttpResponseMessage response = req.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(task.Result), Encoding.UTF8, "application/json");
            return(response);
        }
Exemplo n.º 10
0
        public async Task ShouldRemoveProviders()
        {
            var provider = new ProviderStorage(new Dictionary <string, Func <Guid, IProvider> >
            {
                [typeof(LocalProvider).Name] = id => new LocalProvider(id),
            }, _blobCache);

            await provider.Add(typeof(LocalProvider).Name);

            var providers = provider.Providers().AsAggregator();

            Assert.Equal(1, providers.Data.Count);

            await provider.Remove(providers.Data.Items.First().Id);

            Assert.Equal(0, providers.Data.Count);
        }
        public async Task <IEnumerable <Provider> > GetProviderData()
        {
            //ILoggerFactory loggerFactory = new LoggerFactory();
            //ILogger logger = loggerFactory.CreateLogger<Program>();
            var                    logger = new TraceWriterStub(TraceLevel.Verbose);
            ProviderStorage        ps     = new ProviderStorage();
            IEnumerable <Provider> task   = await ps.GetAll(logger);

            return(task);


            // below needs sorting as getting a 500 on this atm so using above (add as project references)
            //var url = $"{UrlGetAllProviders}?code={UrlCode}";
            //var response = await _client.GetAsync(url);
            //var result = await response.Content.ReadAsAsync<IEnumerable<Provider>>();
            //return result;
        }
Exemplo n.º 12
0
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
                                                           ILogger log)
        {
            HttpResponseMessage response = req.CreateResponse(HttpStatusCode.InternalServerError);

            try {
                // Get data (only required fields to speed retrieval)
                log.LogInformation($"GetLiveProvidersForAzureSearch starting");
                IEnumerable <AzureSearchProviderModel> results = new ProviderStorage().GetLiveProvidersForAzureSearch(log, out long count);

                // Return results
                log.LogInformation($"GetLiveProvidersForAzureSearch returning {count} providers");
                response         = req.CreateResponse(HttpStatusCode.OK);
                response.Content = new StringContent(JsonConvert.SerializeObject(results), Encoding.UTF8, "application/json");
                return(response);
            } catch (Exception ex) {
                throw ex;
            }
            return(response);
        }
Exemplo n.º 13
0
        public async Task ShouldResolveAllSupportedProviders()
        {
            var provider = new ProviderStorage(new Dictionary <string, Func <Guid, IProvider> >
            {
                [typeof(LocalProvider).Name]      = id => new LocalProvider(id),
                [typeof(VkDocsProvider).Name]     = id => new VkDocsProvider(id, _blobCache),
                [typeof(YandexDiskProvider).Name] = id => new YandexDiskProvider(id, _authenticator, _blobCache),
            }, _blobCache);

            await provider.Add(typeof(LocalProvider).Name);

            await provider.Add(typeof(VkDocsProvider).Name);

            await provider.Add(typeof(YandexDiskProvider).Name);

            var providers = provider.Providers().AsAggregator();

            Assert.Equal(3, providers.Data.Count);
            Assert.Contains(providers.Data.Items, x => x is LocalProvider);
            Assert.Contains(providers.Data.Items, x => x is VkDocsProvider);
            Assert.Contains(providers.Data.Items, x => x is YandexDiskProvider);
        }
Exemplo n.º 14
0
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
                                                           ILogger log)
        {
            // Get passed argument (from query if present, if from JSON posted in body if not)
            string name = req.RequestUri.ParseQueryString()["Name"]?.ToString()
                          ?? (await req.Content.ReadAsAsync <PostData>())?.Name;

            if (name == null)
            {
                throw new FunctionException("Missing name argument", "GetProviderByName", null);
            }

            // Find matching providers
            log.LogInformation($"C# HTTP trigger function processed GetProviderByName request for '{name}'");
            IEnumerable <Providers.Provider> p = new ProviderStorage().GetByName(name, log, out long count);

            // Return results
            log.LogInformation($"GetProviderByName returning {count} matching providers");
            //return req.CreateResponse<string>(HttpStatusCode.OK, JsonConvert.SerializeObject(p));
            HttpResponseMessage response = req.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(p), Encoding.UTF8, "application/json");
            return(response);
        }
 public RegistrationForm(ProviderStorage logicP, CustomerStorage logicC)
 {
     InitializeComponent();
     this.logicP = logicP;
     this.logicC = logicC;
 }