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); }
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)); }
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); }
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); }
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))); }
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); }
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); }
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; }
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); }
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); }
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; }