From 223931a90af2eb0e8a9122e338be316e1436cee3 Mon Sep 17 00:00:00 2001 From: Palagesiu Alexandru-Bogdan Date: Sun, 3 Oct 2021 16:24:40 +0300 Subject: [PATCH 1/6] Am adaugat fisierul cu tema --- Palagesiu Bogdan/L01/Tema.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Palagesiu Bogdan/L01/Tema.txt diff --git a/Palagesiu Bogdan/L01/Tema.txt b/Palagesiu Bogdan/L01/Tema.txt new file mode 100644 index 00000000..8dca8807 --- /dev/null +++ b/Palagesiu Bogdan/L01/Tema.txt @@ -0,0 +1 @@ +Niste servicii SAAS (software-as-a-service) pe care le folosesc foarte des sunt cele de streaming muzical si vizual fiind vorba de Netflix, Spotify si HBO Go. \ No newline at end of file From cc239e78281f45eb368cb377b5e0b4eff77ef16c Mon Sep 17 00:00:00 2001 From: Palagesiu Alexandru-Bogdan Date: Sun, 17 Oct 2021 17:48:13 +0300 Subject: [PATCH 2/6] Tema DATC 2 --- .../L02/Controllers/StudentsController.cs | 29 +++++++++++ .../Controllers/WeatherForecastController.cs | 39 ++++++++++++++ Palagesiu Bogdan/L02/L02.csproj | 8 +++ Palagesiu Bogdan/L02/Models/Students.cs | 13 +++++ Palagesiu Bogdan/L02/Program.cs | 26 ++++++++++ .../L02/Properties/launchSettings.json | 30 +++++++++++ .../L02/Repositories/StudentsRepo.cs | 11 ++++ Palagesiu Bogdan/L02/Startup.cs | 51 +++++++++++++++++++ Palagesiu Bogdan/L02/WeatherForecast.cs | 15 ++++++ .../L02/appsettings.Development.json | 9 ++++ Palagesiu Bogdan/L02/appsettings.json | 10 ++++ 11 files changed, 241 insertions(+) create mode 100644 Palagesiu Bogdan/L02/Controllers/StudentsController.cs create mode 100644 Palagesiu Bogdan/L02/Controllers/WeatherForecastController.cs create mode 100644 Palagesiu Bogdan/L02/L02.csproj create mode 100644 Palagesiu Bogdan/L02/Models/Students.cs create mode 100644 Palagesiu Bogdan/L02/Program.cs create mode 100644 Palagesiu Bogdan/L02/Properties/launchSettings.json create mode 100644 Palagesiu Bogdan/L02/Repositories/StudentsRepo.cs create mode 100644 Palagesiu Bogdan/L02/Startup.cs create mode 100644 Palagesiu Bogdan/L02/WeatherForecast.cs create mode 100644 Palagesiu Bogdan/L02/appsettings.Development.json create mode 100644 Palagesiu Bogdan/L02/appsettings.json diff --git a/Palagesiu Bogdan/L02/Controllers/StudentsController.cs b/Palagesiu Bogdan/L02/Controllers/StudentsController.cs new file mode 100644 index 00000000..b30f6308 --- /dev/null +++ b/Palagesiu Bogdan/L02/Controllers/StudentsController.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Repositories; +using Models; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; + +namespace L02.Controllers +{ + [ApiController] + [Route("[controller]")] + public class StudentsController : ControllerBase + { + public StudentsController() + { + } + + public IEnumerable Get(){ + return StudentsRepo.Students; + } + + [HttpGet("{id}")] + public Students GetStudent(int id) + { + return StudentsRepo.Students.FirstOrDefault(s=>s.Id == id); + } + } +} \ No newline at end of file diff --git a/Palagesiu Bogdan/L02/Controllers/WeatherForecastController.cs b/Palagesiu Bogdan/L02/Controllers/WeatherForecastController.cs new file mode 100644 index 00000000..4ee7aa34 --- /dev/null +++ b/Palagesiu Bogdan/L02/Controllers/WeatherForecastController.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; + +namespace L02.Controllers +{ + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet] + public IEnumerable Get() + { + var rng = new Random(); + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateTime.Now.AddDays(index), + TemperatureC = rng.Next(-20, 55), + Summary = Summaries[rng.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} diff --git a/Palagesiu Bogdan/L02/L02.csproj b/Palagesiu Bogdan/L02/L02.csproj new file mode 100644 index 00000000..d12c450b --- /dev/null +++ b/Palagesiu Bogdan/L02/L02.csproj @@ -0,0 +1,8 @@ + + + + netcoreapp3.1 + + + + diff --git a/Palagesiu Bogdan/L02/Models/Students.cs b/Palagesiu Bogdan/L02/Models/Students.cs new file mode 100644 index 00000000..bd248248 --- /dev/null +++ b/Palagesiu Bogdan/L02/Models/Students.cs @@ -0,0 +1,13 @@ +namespace Models +{ + public class Students + { + public int Id { get; set; } + + public string Faculty { get; set; } + + public string Name { get; set; } + + public int Year { get; set; } + } +} diff --git a/Palagesiu Bogdan/L02/Program.cs b/Palagesiu Bogdan/L02/Program.cs new file mode 100644 index 00000000..4b6626d7 --- /dev/null +++ b/Palagesiu Bogdan/L02/Program.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace L02 +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); + } +} diff --git a/Palagesiu Bogdan/L02/Properties/launchSettings.json b/Palagesiu Bogdan/L02/Properties/launchSettings.json new file mode 100644 index 00000000..6ec2572b --- /dev/null +++ b/Palagesiu Bogdan/L02/Properties/launchSettings.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:35418", + "sslPort": 44344 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "weatherforecast", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "L02": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "weatherforecast", + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/Palagesiu Bogdan/L02/Repositories/StudentsRepo.cs b/Palagesiu Bogdan/L02/Repositories/StudentsRepo.cs new file mode 100644 index 00000000..403b89d5 --- /dev/null +++ b/Palagesiu Bogdan/L02/Repositories/StudentsRepo.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Models; +namespace Repositories{ + public static class StudentsRepo{ + + public static List Students = new List(){ + new Students(){Id=1, Faculty="AC", Name = "Cristi", Year = 4}, + new Students(){Id=2, Faculty="Sport", Name = "Florin", Year = 2} + }; + } +} \ No newline at end of file diff --git a/Palagesiu Bogdan/L02/Startup.cs b/Palagesiu Bogdan/L02/Startup.cs new file mode 100644 index 00000000..ff5c05f1 --- /dev/null +++ b/Palagesiu Bogdan/L02/Startup.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace L02 +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + services.AddControllers(); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseHttpsRedirection(); + + app.UseRouting(); + + app.UseAuthorization(); + + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + }); + } + } +} diff --git a/Palagesiu Bogdan/L02/WeatherForecast.cs b/Palagesiu Bogdan/L02/WeatherForecast.cs new file mode 100644 index 00000000..0c25b27d --- /dev/null +++ b/Palagesiu Bogdan/L02/WeatherForecast.cs @@ -0,0 +1,15 @@ +using System; + +namespace L02 +{ + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string Summary { get; set; } + } +} diff --git a/Palagesiu Bogdan/L02/appsettings.Development.json b/Palagesiu Bogdan/L02/appsettings.Development.json new file mode 100644 index 00000000..8983e0fc --- /dev/null +++ b/Palagesiu Bogdan/L02/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/Palagesiu Bogdan/L02/appsettings.json b/Palagesiu Bogdan/L02/appsettings.json new file mode 100644 index 00000000..d9d9a9bf --- /dev/null +++ b/Palagesiu Bogdan/L02/appsettings.json @@ -0,0 +1,10 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "AllowedHosts": "*" +} From 35758342c661904caa059a8b055711b409502bf2 Mon Sep 17 00:00:00 2001 From: Palagesiu Alexandru-Bogdan Date: Thu, 28 Oct 2021 18:23:43 +0300 Subject: [PATCH 3/6] Tema DATC 3 --- Palagesiu Bogdan/L03/L03.csproj | 12 ++++ Palagesiu Bogdan/L03/Program.cs | 99 +++++++++++++++++++++++++++++++++ Palagesiu Bogdan/L03/test.txt | 1 + 3 files changed, 112 insertions(+) create mode 100644 Palagesiu Bogdan/L03/L03.csproj create mode 100644 Palagesiu Bogdan/L03/Program.cs create mode 100644 Palagesiu Bogdan/L03/test.txt diff --git a/Palagesiu Bogdan/L03/L03.csproj b/Palagesiu Bogdan/L03/L03.csproj new file mode 100644 index 00000000..d71c1d78 --- /dev/null +++ b/Palagesiu Bogdan/L03/L03.csproj @@ -0,0 +1,12 @@ + + + + Exe + netcoreapp3.1 + + + + + + + diff --git a/Palagesiu Bogdan/L03/Program.cs b/Palagesiu Bogdan/L03/Program.cs new file mode 100644 index 00000000..706afbbb --- /dev/null +++ b/Palagesiu Bogdan/L03/Program.cs @@ -0,0 +1,99 @@ +using System; +using System.IO; +using System.Net; +using System.Text; +using System.Threading; +using Google.Apis.Auth.OAuth2; +using Google.Apis.Drive.v3; +using Google.Apis.Util.Store; +using Newtonsoft.Json.Linq; + +namespace L03 +{ + class Program + { + + private static DriveService _service; + + private static string _token; + static void Main(string[] args) + { + Initialize(); + } + + static void Initialize() + { + string[] scopes = new string[]{ + DriveService.Scope.Drive, + DriveService.Scope.DriveFile + }; + var clientId = "560379851209-tjdtmhj12akvv3ebh5hjnpmpq8cubudn.apps.googleusercontent.com"; + var clientSecret = "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"; + var credential = GoogleWebAuthorizationBroker.AuthorizeAsync( + new ClientSecrets + { + ClientId = clientId, + ClientSecret = clientSecret + }, + scopes, + Environment.UserName, + CancellationToken.None, + new FileDataStore("Dainto.GoogleDrive.Auth.Store") + ).Result; + _service = new DriveService(new Google.Apis.Services.BaseClientService.Initializer(){ + HttpClientInitializer = credential + }); + _token = credential.Token.AccessToken; + Console.WriteLine(_token); + GetAllFiles(); + UploadTxtFile(); + } + + static void GetAllFiles() + { + var request = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/drive/v3/files?q='root'%20in%20parents"); + request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + _token); + using (var response = request.GetResponse()) + { + using (Stream data = response.GetResponseStream()) + using (var reader = new StreamReader(data)) + { + string text = reader.ReadToEnd(); + var myData = JObject.Parse(text); + foreach(var file in myData["files"]) + { + if(file["mimeType"].ToString() != "application/vnd.google-apps.folder") + { + Console.WriteLine("File name: " + file["name"]); + } + } + } + } + } + static void UploadTxtFile() + { + string path; + byte[] text; + Console.Write("Dati calea fisierului txt pe care doriti sa il incarcati pe drive: "); + path = Console.ReadLine(); + text = Encoding.ASCII.GetBytes("--not_so_random_boundary\nContent-Type: application/json; charset = utf-8\nContent-Disposition: form-data; name=\"metadata\"\n\n{\"name\":\""+Path.GetFileName(path)+"\",\"mimeType\":\"text/plain\"}\n--not_so_random_boundary\nContent-Type: text/plain\nContent-Disposition: form-data; name=\"file\"\n\n"+ File.ReadAllText(path) + "\n--not_so_random_boundary--"); + var request = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"); + request.Method = WebRequestMethods.Http.Post; + request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + _token); + request.Headers.Add(HttpRequestHeader.ContentType, "multipart/related; boundary=not_so_random_boundary"); + request.Headers.Add(HttpRequestHeader.ContentLength, text.Length.ToString()); + Stream body = request.GetRequestStream(); + body.Write(text, 0, text.Length); + using (var response = request.GetResponse()) + { + using (Stream data = response.GetResponseStream()) + using (var reader = new StreamReader(data)) + { + string info = reader.ReadToEnd(); + var myData = JObject.Parse(info); + Console.WriteLine(myData); + } + } + } + } +} diff --git a/Palagesiu Bogdan/L03/test.txt b/Palagesiu Bogdan/L03/test.txt new file mode 100644 index 00000000..2c418a63 --- /dev/null +++ b/Palagesiu Bogdan/L03/test.txt @@ -0,0 +1 @@ +Fisier test pentru DATC JOI ora 18:15 \ No newline at end of file From 94fa7d78e600849ea39cc9876566f49254d28c68 Mon Sep 17 00:00:00 2001 From: Palagesiu Alexandru-Bogdan Date: Wed, 3 Nov 2021 21:15:41 +0200 Subject: [PATCH 4/6] Tema lab 4 --- Palagesiu Bogdan/L04/L04.csproj | 12 ++++++ Palagesiu Bogdan/L04/Program.cs | 71 +++++++++++++++++++++++++++++++++ Palagesiu Bogdan/L04/Student.cs | 28 +++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 Palagesiu Bogdan/L04/L04.csproj create mode 100644 Palagesiu Bogdan/L04/Program.cs create mode 100644 Palagesiu Bogdan/L04/Student.cs diff --git a/Palagesiu Bogdan/L04/L04.csproj b/Palagesiu Bogdan/L04/L04.csproj new file mode 100644 index 00000000..5a6157cd --- /dev/null +++ b/Palagesiu Bogdan/L04/L04.csproj @@ -0,0 +1,12 @@ + + + + Exe + netcoreapp3.1 + + + + + + + diff --git a/Palagesiu Bogdan/L04/Program.cs b/Palagesiu Bogdan/L04/Program.cs new file mode 100644 index 00000000..4f1be3b7 --- /dev/null +++ b/Palagesiu Bogdan/L04/Program.cs @@ -0,0 +1,71 @@ +using System; +using System.Threading.Tasks; +using Microsoft.WindowsAzure.Storage; +using Microsoft.WindowsAzure.Storage.Table; +using Models; + +namespace L04 +{ + class Program + { + private static CloudTableClient tableClient; + + private static CloudTable studentsTable; + + static void Main(string[] args) + { + Task.Run(async () => { await Initialize(); }) + .GetAwaiter() + .GetResult(); + } + + static async Task Initialize() + { + string storageConnectionString = "DefaultEndpointsProtocol=https;AccountName=tema4pala;AccountKey=3VTefCba//yX6EJVvFEc8TdA55sx7OAVWgPXq5gAKt89gqW4NVxE/qeV3NJkPcdt/NddAjjbDbqjG8BOC1NpKA==;EndpointSuffix=core.windows.net"; + var account = CloudStorageAccount.Parse(storageConnectionString); + tableClient = account.CreateCloudTableClient(); + + studentsTable = tableClient.GetTableReference("studenti"); + + await studentsTable.CreateIfNotExistsAsync(); + + await AddNewStudent(); + await GetAllStudents(); + } + + private static async Task GetAllStudents() + { + Console.WriteLine("Universitate\tCNP\tNume\tEmail\tNumar telefon\tAn"); + TableQuery query = new TableQuery(); + + TableContinuationToken token = null; + do + { + TableQuerySegment resultSegment = await studentsTable.ExecuteQuerySegmentedAsync(query, token); + token = resultSegment.ContinuationToken; + + foreach (StudentEntity entity in resultSegment.Results) + { + Console.WriteLine("{0}\t{1}\t{2} {3}\t{4}\t{5}\t{6}", entity.PartitionKey, entity.RowKey, entity.FirstName, entity.LastName, + entity.Email, entity.PhoneNumber, entity.Year); + } + } while (token != null); + } + + private static async Task AddNewStudent() + { + var student = new StudentEntity("UPT", "1990809350012"); + + student.FirstName = "Marcus"; + student.LastName = "Streltov"; + student.Email = "marcusstreltov@gmail.com"; + student.Year = 3; + student.PhoneNumber = "0728000000"; + student.Faculty = "Kineto"; + + var insertOperation = TableOperation.Insert(student); + + await studentsTable.ExecuteAsync(insertOperation); + } + } +} diff --git a/Palagesiu Bogdan/L04/Student.cs b/Palagesiu Bogdan/L04/Student.cs new file mode 100644 index 00000000..89306788 --- /dev/null +++ b/Palagesiu Bogdan/L04/Student.cs @@ -0,0 +1,28 @@ +using Microsoft.WindowsAzure.Storage.Table; + +namespace Models +{ + public class StudentEntity : TableEntity + { + public StudentEntity(string university, string cnp) + { + this.PartitionKey = university; + this.RowKey = cnp; + } + + public StudentEntity() { } + + public string FirstName { get; set; } + + public string LastName { get; set; } + + public string Email { get; set; } + + public int Year { get; set; } + + public string PhoneNumber { get; set; } + + public string Faculty { get; set; } + + } +} \ No newline at end of file From 7e856dba9f12a05e9cead70cad219bd9be1927f5 Mon Sep 17 00:00:00 2001 From: Palagesiu Alexandru-Bogdan Date: Sun, 14 Nov 2021 23:50:56 +0200 Subject: [PATCH 5/6] Tema 5 --- Palagesiu Bogdan/L05/IMetricRepository.cs | 8 ++ Palagesiu Bogdan/L05/IStudentsRepository.cs | 11 +++ Palagesiu Bogdan/L05/L05.csproj | 12 +++ Palagesiu Bogdan/L05/L05.sln | 25 ++++++ Palagesiu Bogdan/L05/Models/MetricEntity.cs | 16 ++++ Palagesiu Bogdan/L05/Models/StudentEntity.cs | 21 +++++ Palagesiu Bogdan/L05/Program.cs | 18 +++++ .../L05/Repository/MetricRepository.cs | 72 ++++++++++++++++++ .../L05/Repository/StudentsRepository.cs | 45 +++++++++++ Palagesiu Bogdan/L05/ss1.png | Bin 0 -> 27202 bytes 10 files changed, 228 insertions(+) create mode 100644 Palagesiu Bogdan/L05/IMetricRepository.cs create mode 100644 Palagesiu Bogdan/L05/IStudentsRepository.cs create mode 100644 Palagesiu Bogdan/L05/L05.csproj create mode 100644 Palagesiu Bogdan/L05/L05.sln create mode 100644 Palagesiu Bogdan/L05/Models/MetricEntity.cs create mode 100644 Palagesiu Bogdan/L05/Models/StudentEntity.cs create mode 100644 Palagesiu Bogdan/L05/Program.cs create mode 100644 Palagesiu Bogdan/L05/Repository/MetricRepository.cs create mode 100644 Palagesiu Bogdan/L05/Repository/StudentsRepository.cs create mode 100644 Palagesiu Bogdan/L05/ss1.png diff --git a/Palagesiu Bogdan/L05/IMetricRepository.cs b/Palagesiu Bogdan/L05/IMetricRepository.cs new file mode 100644 index 00000000..f8784086 --- /dev/null +++ b/Palagesiu Bogdan/L05/IMetricRepository.cs @@ -0,0 +1,8 @@ + +namespace L05 +{ + interface IMetricRepository + { + public void GenerateMetric(); + } +} diff --git a/Palagesiu Bogdan/L05/IStudentsRepository.cs b/Palagesiu Bogdan/L05/IStudentsRepository.cs new file mode 100644 index 00000000..72d97432 --- /dev/null +++ b/Palagesiu Bogdan/L05/IStudentsRepository.cs @@ -0,0 +1,11 @@ +using L05.Models; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace L05 +{ + public interface IStudentsRepository + { + Task> GetAllStudents(); + } +} diff --git a/Palagesiu Bogdan/L05/L05.csproj b/Palagesiu Bogdan/L05/L05.csproj new file mode 100644 index 00000000..380508ed --- /dev/null +++ b/Palagesiu Bogdan/L05/L05.csproj @@ -0,0 +1,12 @@ + + + + Exe + net5.0 + + + + + + + diff --git a/Palagesiu Bogdan/L05/L05.sln b/Palagesiu Bogdan/L05/L05.sln new file mode 100644 index 00000000..a3463475 --- /dev/null +++ b/Palagesiu Bogdan/L05/L05.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31112.23 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "L05", "L05.csproj", "{BBC33372-C4A6-434B-A6EC-EAFD5B066EA0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BBC33372-C4A6-434B-A6EC-EAFD5B066EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBC33372-C4A6-434B-A6EC-EAFD5B066EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBC33372-C4A6-434B-A6EC-EAFD5B066EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBC33372-C4A6-434B-A6EC-EAFD5B066EA0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F6C5DE1E-929C-4EDE-9FC9-2F7ED5674221} + EndGlobalSection +EndGlobal diff --git a/Palagesiu Bogdan/L05/Models/MetricEntity.cs b/Palagesiu Bogdan/L05/Models/MetricEntity.cs new file mode 100644 index 00000000..fdba0400 --- /dev/null +++ b/Palagesiu Bogdan/L05/Models/MetricEntity.cs @@ -0,0 +1,16 @@ +using Microsoft.WindowsAzure.Storage.Table; + +namespace L05.Models +{ + class MetricEntity:TableEntity + { + public MetricEntity(string university, string timestamp) + { + this.PartitionKey = university; + this.RowKey = timestamp; + } + public MetricEntity() { } + public int Count { get; set; } + + } +} diff --git a/Palagesiu Bogdan/L05/Models/StudentEntity.cs b/Palagesiu Bogdan/L05/Models/StudentEntity.cs new file mode 100644 index 00000000..3881e3b0 --- /dev/null +++ b/Palagesiu Bogdan/L05/Models/StudentEntity.cs @@ -0,0 +1,21 @@ +using Microsoft.WindowsAzure.Storage.Table; + +namespace L05.Models +{ + public class StudentEntity: TableEntity + { + public StudentEntity(string university, string cnp) + { + this.PartitionKey = university; + this.RowKey = cnp; + } + public StudentEntity() { } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Email { get; set; } + public int Year { get; set; } + public string PhoneNumber { get; set; } + public string Faculty { get; set; } + + } +} diff --git a/Palagesiu Bogdan/L05/Program.cs b/Palagesiu Bogdan/L05/Program.cs new file mode 100644 index 00000000..6151ad56 --- /dev/null +++ b/Palagesiu Bogdan/L05/Program.cs @@ -0,0 +1,18 @@ +using L05.Repository; + +namespace L05 +{ + class Program + { + private static IStudentsRepository _studentsRepository; + private static IMetricRepository _metricRepository; + + static void Main() + { + _studentsRepository = new StudentsRepository(); + _metricRepository = new MetricRepository(_studentsRepository.GetAllStudents().Result); + _metricRepository.GenerateMetric(); + + } + } +} diff --git a/Palagesiu Bogdan/L05/Repository/MetricRepository.cs b/Palagesiu Bogdan/L05/Repository/MetricRepository.cs new file mode 100644 index 00000000..2538aab3 --- /dev/null +++ b/Palagesiu Bogdan/L05/Repository/MetricRepository.cs @@ -0,0 +1,72 @@ +using L05.Models; +using Microsoft.WindowsAzure.Storage; +using Microsoft.WindowsAzure.Storage.Table; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace L05.Repository +{ + class MetricRepository:IMetricRepository + { + private CloudTableClient _tableClient; + private CloudTable _metricTable; + private string _connectionString; + private List students; + private async Task InitializeTable() + { + var account = CloudStorageAccount.Parse(_connectionString); + _tableClient = account.CreateCloudTableClient(); + _metricTable = _tableClient.GetTableReference("metric"); + await _metricTable.CreateIfNotExistsAsync(); + } + private async Task InsertMetric(MetricEntity metric) + { + var insertOperation = TableOperation.Insert(metric); + await _metricTable.ExecuteAsync(insertOperation); + } + public MetricRepository(List _students) + { + students = _students; + _connectionString = "DefaultEndpointsProtocol=https;AccountName=laborator4danmircea;AccountKey=jnnBmoGcigMef3GK85zPFcnuDE7x5kC4KnzZqRYGzj1RvU6Tmk3QgxekDCR9aZDVilKFrVood2R/Tr1Zrg1jwQ==;EndpointSuffix=core.windows.net"; + Task.Run(async () => { await InitializeTable(); }) + .GetAwaiter() + .GetResult(); + } + public void GenerateMetric() + { + MetricEntity metric; + int count; + List facultati = new List(); + foreach (var student in students) + { + if (!facultati.Contains(student.PartitionKey)) + facultati.Add(student.PartitionKey); + } + foreach (var facultate in facultati) + { + count = 0; + foreach (var student in students) + { + if (student.PartitionKey == facultate) + count++; + } + metric = new MetricEntity(facultate, DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); + metric.Count = count; + Task.Run(async () => { await InsertMetric(metric); }) + .GetAwaiter() + .GetResult(); + } + count = 0; + foreach(var student in students) + { + count++; + } + metric = new MetricEntity("General", DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); + metric.Count = count; + Task.Run(async () => { await InsertMetric(metric); }) + .GetAwaiter() + .GetResult(); + } + } +} diff --git a/Palagesiu Bogdan/L05/Repository/StudentsRepository.cs b/Palagesiu Bogdan/L05/Repository/StudentsRepository.cs new file mode 100644 index 00000000..2b8a7bd4 --- /dev/null +++ b/Palagesiu Bogdan/L05/Repository/StudentsRepository.cs @@ -0,0 +1,45 @@ +using L05.Models; +using Microsoft.WindowsAzure.Storage; +using Microsoft.WindowsAzure.Storage.Table; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace L05.Repository +{ + public class StudentsRepository:IStudentsRepository + { + private CloudTableClient _tableClient; + private CloudTable _studentsTable; + private string _connectionString; + + private async Task InitializeTable() + { + var account = CloudStorageAccount.Parse(_connectionString); + _tableClient = account.CreateCloudTableClient(); + _studentsTable = _tableClient.GetTableReference("studenti"); + await _studentsTable.CreateIfNotExistsAsync(); + } + + public StudentsRepository() + { + _connectionString = "DefaultEndpointsProtocol=https;AccountName=tema4pala;AccountKey=3VTefCba//yX6EJVvFEc8TdA55sx7OAVWgPXq5gAKt89gqW4NVxE/qeV3NJkPcdt/NddAjjbDbqjG8BOC1NpKA==;EndpointSuffix=core.windows.net"; + Task.Run(async () => { await InitializeTable(); }) + .GetAwaiter() + .GetResult(); + } + + public async Task> GetAllStudents() + { + var students = new List(); + TableQuery query = new TableQuery(); + TableContinuationToken token = null; + do + { + TableQuerySegment resultSegment = await _studentsTable.ExecuteQuerySegmentedAsync(query, token); + token = resultSegment.ContinuationToken; + students.AddRange(resultSegment); + } while (token != null); + return students; + } + } +} diff --git a/Palagesiu Bogdan/L05/ss1.png b/Palagesiu Bogdan/L05/ss1.png new file mode 100644 index 0000000000000000000000000000000000000000..9fa20e316e4b9371941e5c76649319f7c996462e GIT binary patch literal 27202 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 UdBtGx-KPVWFB)nUXdnas3xxC{fB*mh literal 0 HcmV?d00001 From 23c1542cbc61251d4397b9ec30a1c2bd847930e2 Mon Sep 17 00:00:00 2001 From: Palagesiu Alexandru-Bogdan Date: Sun, 21 Nov 2021 21:57:48 +0200 Subject: [PATCH 6/6] Tema 6 --- Palagesiu Bogdan/L06/L06.csproj | 8 ++++++++ Palagesiu Bogdan/L06/Program.cs | 12 ++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 Palagesiu Bogdan/L06/L06.csproj create mode 100644 Palagesiu Bogdan/L06/Program.cs diff --git a/Palagesiu Bogdan/L06/L06.csproj b/Palagesiu Bogdan/L06/L06.csproj new file mode 100644 index 00000000..c73e0d16 --- /dev/null +++ b/Palagesiu Bogdan/L06/L06.csproj @@ -0,0 +1,8 @@ + + + + Exe + netcoreapp3.1 + + + diff --git a/Palagesiu Bogdan/L06/Program.cs b/Palagesiu Bogdan/L06/Program.cs new file mode 100644 index 00000000..8df0e499 --- /dev/null +++ b/Palagesiu Bogdan/L06/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace L06 +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +}