Connected all API Connections

This commit is contained in:
Dultus 2024-12-08 16:18:56 +01:00
parent f8946138c7
commit 873462ec5e
23 changed files with 186 additions and 68 deletions

View file

@ -27,12 +27,17 @@ async function setBaseDataHorseAPI(id, basedata) {
async function getHorseLoadStateAPIAsync(id)
{
let horseData;
try {
const apiUrl = url+`getHorse/${id}/LoadState`;
await fetch(apiUrl)
.then(response => response.json())
.then(data => {
horseData = data;
});
} catch (error) {
console.log(error);
}
return horseData;
}
@ -54,7 +59,7 @@ async function setHorseTrainingAPIAsync(id, training)
const apiUrl = url+`updateHorse/${id}/Training`;
const response = await fetch(apiUrl, {
method: 'POST',
body: JSON.stringify({ TrainingText: training }),
body: JSON.stringify({ Training:training }),
headers: {
'Content-Type': 'application/json'
}
@ -81,7 +86,7 @@ async function setHorseHealthAPIAsync(id, health)
const apiUrl = url+`updateHorse/${id}/Health`;
const response = await fetch(apiUrl, {
method: 'POST',
body: JSON.stringify({ HealthData: health }),
body: JSON.stringify({ Health: health }),
headers: {
'Content-Type': 'application/json'
}
@ -95,7 +100,7 @@ async function setHorseAchievementsAPIAsync(id, achievements)
const apiUrl = url+`updateHorse/${id}/Achievements`;
const response = await fetch(apiUrl, {
method: 'POST',
body: JSON.stringify({ Achievements: achievements }),
body: JSON.stringify(achievements),
headers: {
'Content-Type': 'application/json'
}

View file

@ -62,11 +62,6 @@ function updateHorseButton() {
// Schritt 2: Aktuelle Horse-Daten holen (abhängig vom aktiven Tab)
return sendMessageAsync(activeTabId, { action: "getHorseCurrentData", data: { id: horseData.id } })
.then((currentDataResponse) => {
if (!currentDataResponse) {
console.error("Failed to get current horse data: No response");
return;
}
if (!currentDataResponse.success) {
console.error("Failed to get current horse data. Error:", currentDataResponse.message);
return;

View file

@ -46,6 +46,7 @@ chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
console.log("Related horses:", relatedHorses);
try {
sendResponse({ success: true, data: "Processing..." });
const response = await setHorsePedigreeAPIAsync(request.data.id, relatedHorses);
if (!response.ok) {
console.error("API returned an error:", response.statusText);
@ -68,6 +69,7 @@ chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
|| "Unknown";
try {
sendResponse({ success: true, data: "Processing..." });
const response = await setHorseTrainingAPIAsync(request.data.id, training);
if (!response.ok) {
console.error("API returned an error:", response.statusText);
@ -144,7 +146,7 @@ chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
};
console.log("Genetic Potential:", GeneticPotential);
sendResponse({ success: true, data: "Processing..." });
const response = await setHorseGeneticsAPIAsync(request.data.id, GeneticPotential);
if (!response.ok) {
console.error("API returned an error:", response.statusText);
@ -168,14 +170,81 @@ chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
sendResponse({ success: false, message: "No genetic_stats found for Achievements." });
return true;
}
const competitionResults = Array.from(document.querySelectorAll('.row_460 .col_120+ .col_70'))
.map(x => parseFloat(x.innerText.trim()))
.sort((a, b) => a - b)
.filter(x => !isNaN(x))
.length > 0
? Array.from(document.querySelectorAll('.row_460 .col_120+ .col_70'))
.map(x => parseFloat(x.innerText.trim()))
.sort((a, b) => a - b)
.filter(x => !isNaN(x))
: [document.querySelector('.even > p') ? document.querySelector('.even > p').innerText : ''];
const achievements = Array.from(geneticStatsEls)
.map(x => x.innerText)
.filter(text => /poor|below average|average|good|very good/i.test(text));
console.log("Achievements data:", achievements);
const showResults = Array.from(document.querySelectorAll('.row_460 .col_120 + .col_90'))
.map(x => parseFloat(x.innerText.trim()))
.sort((a, b) => a - b)
.filter(x => !isNaN(x))
.length > 0
? Array.from(document.querySelectorAll('.row_460 .col_120 + .col_90'))
.map(x => parseFloat(x.innerText.trim()))
.sort((a, b) => a - b)
.filter(x => !isNaN(x))
: [document.querySelector('.even > p') ? document.querySelector('.even > p').innerText : ''];
const conformation = Object.fromEntries(
Array.from(document.querySelectorAll('.genetic_table_row')).flatMap(row => {
const keys = Array.from(row.querySelectorAll('.genetic_potential')).map(key => key.innerText.trim()); // Alle Schlüssel holen
const values = Array.from(row.querySelectorAll('.genetic_stats'))
.map(value => value.innerText.trim())
.filter(value => /poor|below average|average|good|very good/i.test(value)); // Nur relevante Werte behalten
return keys.map((key, index) => [key, values[index]]).filter(pair => pair[1]); // Paare mit gültigen Werten
})
);
const conformationMapping = {
"Good": "G",
"Very good": "VG",
"Average": "A",
"Below average": "BA",
"Poor": "P"
};
// Alle Werte aus dem bestehenden `conformation`-Objekt durchlaufen
let shortConformation = "";
const counts = Object.values(conformation)
.filter(value => conformationMapping[value]) // Nur Werte berücksichtigen, die in der Mapping-Tabelle existieren
.reduce((counts, value) => {
counts[value] = (counts[value] || 0) + 1; // Zähle die Vorkommen jedes Werts
return counts;
}, {});
// Gehe durch die gezählten Werte und erstelle die Kurzform
Object.entries(counts).forEach(([value, count]) => {
shortConformation += `${count}${conformationMapping[value]} `;
});
// Entferne Leerzeichen am Ende
shortConformation = shortConformation.trim();
console.log(shortConformation);
try {
const response = await setHorseAchievementsAPIAsync(request.data.id, achievements);
const achievementTab =
{
ShowResults: showResults,
Conformation: conformation,
ShortConformation: shortConformation,
MaxShowResult: showResults[showResults.length - 1],
MinShowResult: showResults[0],
MaxCompetitionResult: competitionResults[competitionResults.length - 1],
MinCompetitionResult: competitionResults[0]
};
sendResponse({ success: true, data: "Processing..." });
const response = await setHorseAchievementsAPIAsync(request.data.id, achievementTab);
if (!response.ok) {
console.error("API returned an error:", response.statusText);
sendResponse({ success: false, message: "API error: " + response.statusText });
@ -198,10 +267,11 @@ chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
}
const matches = [...healthEl.innerText.matchAll(/:\s*(\w+)/g)];
const health = matches.map(match => match[1]);
const health = Object.fromEntries(document.querySelector("#tab_health2 p").innerText.split('\n').map(l=>l.trim()).filter(l=>l&&l.includes(':')).map(l=>l.split(':').map(x=>x.trim())));
console.log("Health data:", health);
try {
sendResponse({ success: true, data: "Processing..." });
const response = await setHorseHealthAPIAsync(request.data.id, health);
if (!response.ok) {
console.error("API returned an error:", response.statusText);

View file

@ -2,21 +2,21 @@
"Version": 1,
"WorkspaceRootPath": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\controllers\\horsecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\controllers\\horsecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\models\\horse.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\models\\horse.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
}
],
"DocumentGroupContainers": [
@ -26,7 +26,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 3,
"SelectedChildIndex": 4,
"Children": [
{
"$type": "Bookmark",
@ -34,20 +34,20 @@
},
{
"$type": "Document",
"DocumentIndex": 3,
"DocumentIndex": 1,
"Title": "Horse.cs",
"DocumentMoniker": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Models\\Horse.cs",
"RelativeDocumentMoniker": "HRServer\\Models\\Horse.cs",
"ToolTip": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Models\\Horse.cs",
"RelativeToolTip": "HRServer\\Models\\Horse.cs",
"ViewState": "AgIAAE0AAAAAAAAAAAAIwAcAAABIAAAAAAAAAA==",
"ViewState": "AgIAALkAAAAAAAAAAAAmwMgAAAA0AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-07T17:50:21.836Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"DocumentIndex": 3,
"Title": "launchSettings.json",
"DocumentMoniker": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Properties\\launchSettings.json",
"RelativeDocumentMoniker": "HRServer\\Properties\\launchSettings.json",
@ -60,7 +60,7 @@
},
{
"$type": "Document",
"DocumentIndex": 0,
"DocumentIndex": 2,
"Title": "Program.cs",
"DocumentMoniker": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Program.cs",
"RelativeDocumentMoniker": "HRServer\\Program.cs",
@ -73,13 +73,13 @@
},
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 0,
"Title": "HorseController.cs",
"DocumentMoniker": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Controllers\\HorseController.cs",
"RelativeDocumentMoniker": "HRServer\\Controllers\\HorseController.cs",
"ToolTip": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Controllers\\HorseController.cs",
"RelativeToolTip": "HRServer\\Controllers\\HorseController.cs",
"ViewState": "AgIAAE8AAAAAAAAAAAAUwGYAAAAMAAAAAAAAAA==",
"ViewState": "AgIAADgAAAAAAAAAAAAcwEAAAABOAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-07T13:05:14.341Z",
"EditorCaption": ""

View file

@ -2,14 +2,14 @@
"Version": 1,
"WorkspaceRootPath": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\controllers\\horsecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\controllers\\horsecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\models\\horse.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\models\\horse.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\controllers\\horsecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\controllers\\horsecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|z:\\[01] kribitz development\\[02] projekte\\hr-collector\\hrserver-exporter\\hrserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{86A245AC-2CD6-4303-97B9-8463B6B6B8D6}|HRServer\\HRServer.csproj|solutionrelative:hrserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@ -26,7 +26,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 4,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
@ -34,13 +34,13 @@
},
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 0,
"Title": "Horse.cs",
"DocumentMoniker": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Models\\Horse.cs",
"RelativeDocumentMoniker": "HRServer\\Models\\Horse.cs",
"ToolTip": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Models\\Horse.cs",
"RelativeToolTip": "HRServer\\Models\\Horse.cs",
"ViewState": "AgIAAE0AAAAAAAAAAAAIwAcAAABIAAAAAAAAAA==",
"ViewState": "AgIAALUAAAAAAAAAAAAwwL4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-07T17:50:21.836Z",
"EditorCaption": ""
@ -73,13 +73,13 @@
},
{
"$type": "Document",
"DocumentIndex": 0,
"DocumentIndex": 1,
"Title": "HorseController.cs",
"DocumentMoniker": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Controllers\\HorseController.cs",
"RelativeDocumentMoniker": "HRServer\\Controllers\\HorseController.cs",
"ToolTip": "Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\HRServer-Exporter\\HRServer\\Controllers\\HorseController.cs",
"RelativeToolTip": "HRServer\\Controllers\\HorseController.cs",
"ViewState": "AgIAAE8AAAAAAAAAAAAUwGYAAAAMAAAAAAAAAA==",
"ViewState": "AgIAADgAAAAAAAAAAAAcwEAAAABOAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-07T13:05:14.341Z",
"EditorCaption": ""

View file

@ -109,5 +109,17 @@ namespace HRServer.Controllers
localHorse.Genetics = websiteHorseGenetics;
return Ok(localHorse);
}
[HttpPost("/api/updateHorse/{id}/Achievements")]
public IActionResult UpdateHorseAchievements(ulong id, [FromBody] HorseAchievements websiteHorseAchievements)
{
var localHorse = HorseFactory.GetHorse((ulong)id);
if (localHorse == null)
{
localHorse = new Horse { Id = (ulong)id };
HorseFactory.AddOrUpdateHorse(localHorse);
}
localHorse.Achievements = websiteHorseAchievements;
return Ok(localHorse);
}
}
}

View file

@ -191,11 +191,13 @@ namespace HRServer.Models
public class HorseSummary
{
public List<ulong> RelatedIds { get; set; } = new();
[JsonPropertyName("RelatedIds")]
public List<string> RelatedIds { get; set; } = new();
}
public class HorseTraining
{
[JsonPropertyName("Training")]
public string Training { get; set; } = string.Empty;
}
@ -220,35 +222,47 @@ namespace HRServer.Models
[JsonPropertyName("Colors")]
public Dictionary<string, string> Colors { get; set; } = new() {
{ "extension", string.Empty },
{ "agouti", string.Empty },
{ "grey", string.Empty},
{ "cream", string.Empty },
{ "dun", string.Empty },
{ "champagne", string.Empty },
{ "silver", string.Empty },
{ "mushroom", string.Empty },
{ "frame", string.Empty},
{ "appaloosa", string.Empty },
{ "patn1", string.Empty },
{ "mitf", string.Empty },
{ "sw2", string.Empty },
{ "kit", string.Empty },
{ "rab", string.Empty},
{ "seal", string.Empty },
{ "flaxen", string.Empty }
{ "Extension", string.Empty },
{ "Agouti", string.Empty },
{ "Grey", string.Empty},
{ "Creampearl", string.Empty },
{ "Dun", string.Empty },
{ "Champagne", string.Empty },
{ "Silver", string.Empty },
{ "Mushroom", string.Empty },
{ "Frame", string.Empty},
{ "Appaloosa", string.Empty },
{ "PATN1", string.Empty },
{ "MITF", string.Empty },
{ "SW2", string.Empty },
{ "KIT", string.Empty },
{ "RAB", string.Empty},
{ "Seal", string.Empty },
{ "Flaxen", string.Empty }
};
}
public class HorseAchievements
{
// Anpassung: Nun wird ein Array an Achievements verarbeitet,
// wie es vom Content Script gesendet wird.
public List<string> Achievements { get; set; } = new();
[JsonPropertyName("ShowResults")]
public List<double> ShowResults { get; set; } = new();
[JsonPropertyName("Conformation")]
public Dictionary<string, string> Conformation { get; set; } = new();
[JsonPropertyName("ShortConformation")]
public string ShortConformation { get; set; } = string.Empty;
[JsonPropertyName("MaxShowResult")]
public double MaxShowResult { get; set; } = 0;
[JsonPropertyName("MinShowResult")]
public double MinShowResult { get; set; } = 0;
[JsonPropertyName("MaxCompetitionResult")]
public double MaxCompetitionResult { get; set; } = 0;
[JsonPropertyName("MinCompetitionResult")]
public double MinCompetitionResult { get; set; } = 0;
}
public class HorseHealth
{
public string Fertility { get; set; } = string.Empty;
[JsonPropertyName("Health")]
public Dictionary<string, string> Health { get; set; } = new();
}
}

View file

@ -41,6 +41,27 @@
"Parameters": [],
"ReturnTypes": []
},
{
"ContainingType": "HRServer.Controllers.HorseController",
"Method": "UpdateHorseAchievements",
"RelativePath": "api/updateHorse/{id}/Achievements",
"HttpMethod": "POST",
"IsController": true,
"Order": 0,
"Parameters": [
{
"Name": "id",
"Type": "System.UInt64",
"IsRequired": true
},
{
"Name": "websiteHorseAchievements",
"Type": "HRServer.Models.HorseAchievements",
"IsRequired": true
}
],
"ReturnTypes": []
},
{
"ContainingType": "HRServer.Controllers.HorseController",
"Method": "UpdateHorseBasicData",

View file

@ -1,9 +1,10 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
@ -13,10 +14,10 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("HRServer")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ea3d1906dab3f3980838e5c30766d4decd62726b")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f8946138c755861a4827dbd051bc0effcd5fa403")]
[assembly: System.Reflection.AssemblyProductAttribute("HRServer")]
[assembly: System.Reflection.AssemblyTitleAttribute("HRServer")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
// Von der MSBuild WriteCodeFragment-Klasse generiert.

View file

@ -1 +1 @@
4d821952ec5a2f030d321ac51499c69ecaa6990c1ef30993426867a441ae1e7e
a2b444c9f69ba9a33722561291338238415e557705df53ec577027e812238c0f

View file

@ -1 +1 @@
{"documents":{"Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\*":"https://raw.githubusercontent.com/SvenKribitz/HR-Collector/0fbf4cd919af15895685c01cbc5691fb764e943d/*"}}
{"documents":{"Z:\\[01] Kribitz Development\\[02] Projekte\\HR-Collector\\*":"https://raw.githubusercontent.com/SvenKribitz/HR-Collector/f8946138c755861a4827dbd051bc0effcd5fa403/*"}}