Untitled
unknown
plain_text
2 years ago
19 kB
11
Indexable
using Newtonsoft.Json;
using RestSharp;
using System.Net;
using System.Text;
using TOK_MOBILE.Models;
namespace LoginFlow.Views;
public partial class StatisticsPage : ContentPage
{
public ITStatistika? Statistika { get; set; }
private List<ITVaucer> vauceri;
private List<ITGosti> gosti;
private List<DrzaveMUP> drzave;
public List<ITVaucer> Vauceri
{
get => vauceri;
set
{
vauceri = value;
OnPropertyChanged(nameof(Vauceri));
}
}
public List<ITGosti> Gosti
{
get => gosti;
set
{
gosti = value;
OnPropertyChanged(nameof(Gosti));
}
}
public List<DrzaveMUP> Drzave
{
get => drzave;
set
{
drzave = value;
OnPropertyChanged(nameof(Drzave));
}
}
public StatisticsPage()
{
InitializeComponent();
Statistika = new ITStatistika();
BindingContext = Statistika;
datePickerDo.MinimumDate = datePickerOd.Date;
}
public async void LoadAgencyID()
{
//string a = await SecureStorage.GetAsync("AgencyID").Result.ToString();
}
private void CheckedChangedRadioButton(object sender, CheckedChangedEventArgs e)
{
if (sender is RadioButton radioButton && radioButton.IsChecked)
{
if (radioButton == naDanRadioButton)
{
Statistika.isNaDanSelected = true;
Statistika.isPeriodSelected = false;
datePickerDo.IsEnabled = false;
}
else if (radioButton == zaPeriodRadioButton)
{
Statistika.isNaDanSelected = false;
Statistika.isPeriodSelected = true;
datePickerDo.IsEnabled = true;
}
}
}
private void DatePickerOdDateSelected(object sender, DateChangedEventArgs e)
{
DateTime newDate = e.NewDate;
datePickerDo.MinimumDate = newDate;
}
public async Task LoadVauceri()
{
try
{
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
var client = new RestClient("http://10.0.0.63:8088");
var request = new RestRequest("api/ITVaucer", Method.Get);
RestResponse response = await client.ExecuteAsync(request);
if (response.IsSuccessful)
{
string json = response.Content;
List<ITVaucer> vauceri = JsonConvert.DeserializeObject<List<ITVaucer>>(json);
Vauceri = vauceri;
OnPropertyChanged(nameof(Vauceri));
}
else
{
Console.WriteLine($"API Error: {response.StatusCode} - {response.ErrorMessage}");
}
}
catch (Exception ex)
{
// Handle exception
}
}
public async Task LoadGosti()
{
try
{
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
var client = new RestClient("http://10.0.0.63:8088");
var request = new RestRequest("api/ITGosti", Method.Get);
RestResponse response = await client.ExecuteAsync(request);
if (response.IsSuccessful)
{
string json = response.Content;
List<ITGosti> gosti = JsonConvert.DeserializeObject<List<ITGosti>>(json);
Gosti = gosti;
OnPropertyChanged(nameof(Gosti));
}
else
{
Console.WriteLine($"API Error: {response.StatusCode} - {response.ErrorMessage}");
}
}
catch (Exception ex)
{
// Handle exception
}
}
public async Task LoadDrzave()
{
try
{
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
var client = new RestClient("http://10.0.0.63:8088");
var request = new RestRequest("api/DrzaveMUP", Method.Get);
RestResponse response = await client.ExecuteAsync(request);
if (response.IsSuccessful)
{
string json = response.Content;
List<DrzaveMUP> drzave = JsonConvert.DeserializeObject<List<DrzaveMUP>>(json);
Drzave = drzave;
OnPropertyChanged(nameof(Drzave));
}
else
{
Console.WriteLine($"API Error: {response.StatusCode} - {response.ErrorMessage}");
}
}
catch (Exception ex)
{
// Handle exception
}
}
private async void GenerateReportButton_Clicked(object sender, EventArgs e)
{
var client = new HttpClient();
var url = "http://10.0.0.63:8088/api/";
if (brojOsobaAutobusRadioButton.IsChecked || brojOsobaBrodRadioButton.IsChecked)
{
var bus = brojOsobaAutobusRadioButton.IsChecked;
var bytes = Array.Empty<byte>();
var filename = "";
if (LoginPage.AgencyID > 0)
{
if (naDanRadioButton.IsChecked)
{
bytes = await client.GetByteArrayAsync(url + $"Report/Vauceri/?bus={bus}&startDate={datePickerOd.Date}&endDate={datePickerOd.Date}&AgencijaID={LoginPage.AgencyID}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_Vauceri_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
else
{
bytes = await client.GetByteArrayAsync(url + $"Report/Vauceri/?bus={bus}&startDate={datePickerOd.Date}&endDate={datePickerDo.Date.AddDays(1)}&AgencijaID={LoginPage.AgencyID}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_Vauceri_{datePickerOd.Date.ToString("dd.MM.yyyy.")}_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
}
else
{
if (naDanRadioButton.IsChecked)
{
bytes = await client.GetByteArrayAsync(url + $"Report/Vauceri/?bus={bus}&startDate={datePickerOd.Date}&endDate={datePickerOd.Date}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_Vauceri_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
else
{
bytes = await client.GetByteArrayAsync(url + $"Report/Vauceri/?bus={bus}&startDate={datePickerOd.Date}&endDate={datePickerDo.Date.AddDays(1)}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_Vauceri_{datePickerOd.Date.ToString("dd.MM.yyyy.")}_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
}
await File.WriteAllBytesAsync(filename, bytes);
bool openReport = await DisplayAlert("Report Generated", "Do you want to open the report?", "Yes", "No");
if (openReport)
{
await Launcher.OpenAsync(new OpenFileRequest
{
File = new ReadOnlyFile(filename)
});
}
//await LoadVauceri();
//var filteredVauceri = GetFilteredVauceri();
//string report = GenerateReportString(filteredVauceri);
//string fileName = "report.txt";
//string filePath = Path.Combine(FileSystem.CacheDirectory, fileName);
//File.WriteAllText(filePath, report);
//bool openReport = await DisplayAlert("Report Generated", "Do you want to open the report?", "Yes", "No");
//if (openReport)
//{
// await Launcher.OpenAsync(new OpenFileRequest
// {
// File = new ReadOnlyFile(filePath)
// });
//}
}
else if (brojOsobaNacionalnostimaRadioButton.IsChecked)
{
var bytes = Array.Empty<byte>();
var filename = "";
if (LoginPage.AgencyID > 0)
{
if (naDanRadioButton.IsChecked)
{
bytes = await client.GetByteArrayAsync(url + $"Report/DrzavaGosti/?startDate={datePickerOd.Date}&endDate={datePickerOd.Date}&AgencijaID={LoginPage.AgencyID}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_GostiPoNacionalnostima_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
else
{
bytes = await client.GetByteArrayAsync(url + $"Report/DrzavaGosti/?&startDate={datePickerOd.Date}&endDate={datePickerDo.Date.AddDays(1)}&AgencijaID={LoginPage.AgencyID}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_GostiPoNacionalnostima_{datePickerOd.Date.ToString("dd.MM.yyyy.")}_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
}
else
{
if (naDanRadioButton.IsChecked)
{
bytes = await client.GetByteArrayAsync(url + $"Report/DrzavaGosti/?startDate={datePickerOd.Date}&endDate={datePickerOd.Date}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_GostiPoNacionalnostima_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
else
{
bytes = await client.GetByteArrayAsync(url + $"Report/DrzavaGosti/?&startDate={datePickerOd.Date}&endDate={datePickerDo.Date.AddDays(1)}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_GostiPoNacionalnostima_{datePickerOd.Date.ToString("dd.MM.yyyy.")}_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
}
await File.WriteAllBytesAsync(filename, bytes);
bool openReport = await DisplayAlert("Report Generated", "Do you want to open the report?", "Yes", "No");
if (openReport)
{
await Launcher.OpenAsync(new OpenFileRequest
{
File = new ReadOnlyFile(filename)
});
}
}
else if (finansijskaKarticaStavkeRadioButton.IsChecked)
{
var bytes = Array.Empty<byte>();
var filename = "";
if (LoginPage.AgencyID > 0)
{
if (naDanRadioButton.IsChecked)
{
bytes = await client.GetByteArrayAsync(url + $"Report/FinansijskaKarticaPoStavkama/?startDate={datePickerOd.Date}&endDate={datePickerOd.Date}&AgencijaID={LoginPage.AgencyID}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_FinansijskaKarticaPoStavkama_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
else
{
bytes = await client.GetByteArrayAsync(url + $"Report/FinansijskaKarticaPoStavkama/?&startDate={datePickerOd.Date}&endDate={datePickerDo.Date.AddDays(1)}&AgencijaID={LoginPage.AgencyID}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_FinansijskaKarticaPoStavkama_{datePickerOd.Date.ToString("dd.MM.yyyy.")}_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
}
else
{
if (naDanRadioButton.IsChecked)
{
bytes = await client.GetByteArrayAsync(url + $"Report/FinansijskaKarticaPoStavkama/?startDate={datePickerOd.Date}&endDate={datePickerOd.Date}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_FinansijskaKarticaPoStavkama_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
else
{
bytes = await client.GetByteArrayAsync(url + $"Report/FinansijskaKarticaPoStavkama/?&startDate={datePickerOd.Date}&endDate={datePickerDo.Date.AddDays(1)}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_FinansijskaKarticaPoStavkama_{datePickerOd.Date.ToString("dd.MM.yyyy.")}_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
}
await File.WriteAllBytesAsync(filename, bytes);
bool openReport = await DisplayAlert("Report Generated", "Do you want to open the report?", "Yes", "No");
if (openReport)
{
await Launcher.OpenAsync(new OpenFileRequest
{
File = new ReadOnlyFile(filename)
});
}
}
else if (finansijskaKarticaSumarnoRadioButton.IsChecked)
{
var bytes = Array.Empty<byte>();
var filename = "";
if (LoginPage.AgencyID > 0)
{
if (naDanRadioButton.IsChecked)
{
bytes = await client.GetByteArrayAsync(url + $"Report/FinansijskaKarticaSumarno/?startDate={datePickerOd.Date}&endDate={datePickerOd.Date}&AgencijaID={LoginPage.AgencyID}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_FinansijskaKarticaSumarno_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
else
{
bytes = await client.GetByteArrayAsync(url + $"Report/FinansijskaKarticaSumarno/?&startDate={datePickerOd.Date}&endDate={datePickerDo.Date.AddDays(1)}&AgencijaID={LoginPage.AgencyID}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_FinansijskaKarticaSumarno_{datePickerOd.Date.ToString("dd.MM.yyyy.")}_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
}
else
{
if (naDanRadioButton.IsChecked)
{
bytes = await client.GetByteArrayAsync(url + $"Report/FinansijskaKarticaSumarno/?startDate={datePickerOd.Date}&endDate={datePickerOd.Date}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_FinansijskaKarticaSumarno_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
else
{
bytes = await client.GetByteArrayAsync(url + $"Report/FinansijskaKarticaSumarno/?&startDate={datePickerOd.Date}&endDate={datePickerDo.Date.AddDays(1)}");
filename = $"{FileSystem.CacheDirectory}/Izvjestaj_FinansijskaKarticaSumarno_{datePickerOd.Date.ToString("dd.MM.yyyy.")}_{datePickerOd.Date.ToString("dd.MM.yyyy.")}.pdf";
}
}
await File.WriteAllBytesAsync(filename, bytes);
bool openReport = await DisplayAlert("Report Generated", "Do you want to open the report?", "Yes", "No");
if (openReport)
{
await Launcher.OpenAsync(new OpenFileRequest
{
File = new ReadOnlyFile(filename)
});
}
}
}
public class DrzavaGosti
{
public string NazivDrzave { get; set; }
public int BrojGostiPoDrzavi { get; set; }
public ITGosti Gosti { get; set; }
public DrzavaGosti(string nazivDrzave, int brojGostiPoDrzavi)
{
NazivDrzave = nazivDrzave;
BrojGostiPoDrzavi = brojGostiPoDrzavi;
}
}
protected override bool OnBackButtonPressed()
{
Shell.Current.GoToAsync("///home");
return true;
}
//private List<ITVaucer> GetFilteredVauceri()
//{
// if (brojOsobaAutobusRadioButton.IsChecked)
// {
// return vauceri.Where(v => v.Sredstvo == true).ToList();
// }
// else if (brojOsobaBrodRadioButton.IsChecked)
// {
// return vauceri.Where(v => v.Sredstvo == false).ToList();
// }
// else
// {
// return vauceri;
// }
//}
//private string GenerateReportStringNationality(List<ITGosti> gosti)
//{
// StringBuilder reportBuilder = new StringBuilder();
// reportBuilder.AppendLine("Nationality, Number of People:");
// List<DrzavaGosti> drzGost = new List<DrzavaGosti>();
// if (Statistika.isNaDanSelected == true)
// {
// foreach (var d in Drzave)
// {
// int brojGostijuZaDrzavu = Gosti.Where(x => x.DrzavaID == d.DrzavaID && (x.InsertDate.Date == Statistika.DatumOd.Value.Date)).Sum(x => x.BrojOsoba);
// drzGost.Add(new DrzavaGosti(d.Naziv, brojGostijuZaDrzavu));
// }
// foreach (var drzavaGost in drzGost)
// {
// reportBuilder.AppendLine($"{drzavaGost.NazivDrzave}, {drzavaGost.BrojGostiPoDrzavi}");
// }
// }
// else if (Statistika.isPeriodSelected == true)
// {
// foreach (var d in Drzave)
// {
// int brojGostijuZaDrzavu = Gosti.Where(x => x.DrzavaID == d.DrzavaID &&
// (x.InsertDate.Date >= (Statistika.DatumOd?.Date ?? DateTime.Now) && x.InsertDate.Date <= (Statistika.DatumDo?.Date ?? DateTime.Now))).Sum(x => x.BrojOsoba);
// drzGost.Add(new DrzavaGosti(d.Naziv, brojGostijuZaDrzavu));
// }
// foreach (var drzavaGost in drzGost)
// {
// reportBuilder.AppendLine($"{drzavaGost.NazivDrzave}, {drzavaGost.BrojGostiPoDrzavi}");
// }
// }
// return reportBuilder.ToString();
//}
//private string GenerateReportString(List<ITVaucer> vauceri)
//{
// StringBuilder reportBuilder = new StringBuilder();
// reportBuilder.AppendLine("Vauceri:");
// if (brojOsobaAutobusRadioButton.IsChecked)
// {
// if (Statistika.isNaDanSelected == true)
// {
// var vauceriNaDan = vauceri.Where(v => v.Datum.Date == Statistika.DatumOd.Value.Date).ToList();
// int totalVauceriNaDan = vauceriNaDan.Count;
// reportBuilder.AppendLine($"Total number of Vaucheri: {totalVauceriNaDan}");
// foreach (var vaucer in vauceriNaDan)
// {
// reportBuilder.AppendLine($"ID: {vaucer.ID}, Datum: {vaucer.Datum}, Taksa: {vaucer.Taksa}, BrojOsoba: {vaucer.BrojOsoba}");
// }
// }
// else if (Statistika.isPeriodSelected == true)
// {
// var vauceriZaPeriod = vauceri.Where(v => v.Datum.Date >= (Statistika.DatumOd?.Date ?? DateTime.Now) && v.Datum.Date <= (Statistika.DatumDo?.Date ?? DateTime.Now)).ToList();
// int totalVauceriZaPeriod = vauceriZaPeriod.Count;
// reportBuilder.AppendLine($"Total number of Vaucheri: {totalVauceriZaPeriod}");
// foreach (var vaucer in vauceriZaPeriod)
// {
// reportBuilder.AppendLine($"ID: {vaucer.ID}, Datum: {vaucer.Datum}, Taksa: {vaucer.Taksa}, BrojOsoba: {vaucer.BrojOsoba}");
// }
// }
// }
// else if (brojOsobaBrodRadioButton.IsChecked)
// {
// if (Statistika.isNaDanSelected == true)
// {
// var vauceriNaDan = vauceri.Where(v => v.Datum.Date == Statistika.DatumOd.Value.Date).ToList();
// int totalVauceriNaDan = vauceriNaDan.Count;
// reportBuilder.AppendLine($"Total number of Vaucheri: {totalVauceriNaDan}");
// foreach (var vaucer in vauceriNaDan)
// {
// reportBuilder.AppendLine($"ID: {vaucer.ID}, Datum: {vaucer.Datum}, Taksa: {vaucer.Taksa}, BrojOsoba: {vaucer.BrojOsoba}");
// }
// }
// else if (Statistika.isPeriodSelected == true)
// {
// var vauceriZaPeriod = vauceri.Where(v => v.Datum.Date >= (Statistika.DatumOd?.Date ?? DateTime.Now) && v.Datum.Date <= (Statistika.DatumDo?.Date ?? DateTime.Now)).ToList();
// int totalVauceriZaPeriod = vauceriZaPeriod.Count;
// reportBuilder.AppendLine($"Total number of Vaucheri: {totalVauceriZaPeriod}");
// foreach (var vaucer in vauceriZaPeriod)
// {
// reportBuilder.AppendLine($"ID: {vaucer.ID}, Datum: {vaucer.Datum}, Taksa: {vaucer.Taksa}, BrojOsoba: {vaucer.BrojOsoba}");
// }
// }
// }
// return reportBuilder.ToString();
//}
}
Editor is loading...