Ok, here is my story.
I have a ASP.Net MVC Web Application which works fine. But it needs some .resx file (some translated culture/language) file which comes by making an API Call to a third party end point
. These .resx file needs to be brought in the application's corresponding folder everytime my web project builds
. Because these resx file may change at the third party location so I need to get fresh file every time I run a build on my web application.
Project 1: So till now I have a MVC Web application which runs just fine. (Main Application)
Project 2: I have created another small console application (just a basic one) which has one end point which makes call to third party and gets the .resx file and saves to a location.
Question 1:
In order to accomplish what I want do I need to have a separate Project 2, which will make an third party call and copy the file to the Project 1 corresponding directory.
Question 2:
Project 2 which calls the third party needs to be console application or mvc application or what? I am not sure
Question 3:
Am I going in the right direction. All I want it when my project 1 builds, I want to call a third party API and download some files to a particular folder.
Question 4:
Do I need to play with MS-Build to execute Project 2. exe and then Project 1.exe. so that files are there when project 1.exe starts building?
Question 5:
Do I really needan altogether separate project just to make the API CALL to get the resx file?
Please guide me.
Project 2 Code:
class Program
{
static void Main(string[] args)
{
Task.Run(() => CallHttp());
System.Console.ReadLine();
}
// Simple async function returning a string...
static public async void CallHttp()
{
var client = new HttpClient();
client.BaseAddress = new Uri("https://api.crowdin.com/");
HttpResponseMessage response = await client.GetAsync("api/project/refele/download/all.zip?key=f23e2c91833c0de737");
using (Stream stream = await response.Content.ReadAsStreamAsync())
using (FileStream fs = new FileStream(@".\..\..\alpha\test.zip", FileMode.Create))
await stream.CopyToAsync(fs);
System.IO.Compression.ZipFile.ExtractToDirectory(@".\..\..\alpha\test.zip", @".\..\..\beta");
}
}