private static async System.Threading.Tasks.Task CallActions() { try { HRworksConnector.HRworksApi hrworksApi = new HRworksConnector.HRworksApi(AccessKey, SecretAccessKey, RealmIdentifier); #region GetAllPermanentEstablishments HRworksConnector.Models.GeneralActions.PermanentEstablishmentsResponse permanentEstablishmentsResponse = await hrworksApi.GeneralActions.GetAllPermanentEstablishmentsAsync(); #endregion #region Target GetHolidays HRworksConnector.Models.GeneralActions.HolidaysResponse holidaysResponse = await hrworksApi.GeneralActions.GetHolidaysAsync(System.DateTime.Now.Year); #endregion #region Target GetAllAbsenceTypes HRworksConnector.Models.AbsenceActions.GetAllAbsenceTypesResponse getAllAbsenceTypesResponse = await hrworksApi.AbsenceActions.GetAllAbsenceTypesAsync(); #endregion #region Target GetPersons HRworksConnector.Models.GeneralActions.GetPersonsResponse persons = await hrworksApi.GeneralActions.GetPersonsAsync(); #endregion #region GetAvailableWorkingHours System.DateTime today = System.DateTime.Now.Date; System.DateTime dateFrom = today.Date.AddDays(-60); System.DateTime dateTo = today.AddDays(60); HRworksConnector.Models.GeneralActions.GetAvailableWorkingHoursRequest getAvailableWorkingHoursRequest = new HRworksConnector.Models.GeneralActions.GetAvailableWorkingHoursRequest(); getAvailableWorkingHoursRequest.BeginDate = dateFrom; getAvailableWorkingHoursRequest.EndDate = dateTo; int counter = 0; HRworksConnector.Models.GeneralActions.PersonBaseData[] personsAsArray = persons.ToPersonArray(); foreach (HRworksConnector.Models.GeneralActions.PersonBaseData personBaseData in personsAsArray) { counter++; getAvailableWorkingHoursRequest.PersonnelNumbers.Add(personBaseData.PersonnelNumber); if (counter > 30) { break; } } HRworksConnector.Models.GeneralActions.GetAvailableWorkingHoursResponse getAvailableWorkingHoursResponse = await hrworksApi.GeneralActions.GetAvailableWorkingHoursAsync(getAvailableWorkingHoursRequest); #endregion #region Target GetAbsences string[] activeKrankAndUrlaubKeys = getAllAbsenceTypesResponse.GetActiveKrankAndUrlaubKeys(); // Krank- und Urlaubsmeldungen holen foreach (HRworksConnector.Models.GeneralActions.PersonBaseData personBaseData in persons.ToPersonArray()) { HRworksConnector.Models.AbsenceActions.GetAbsencesRequest getAbsencesRequest = new HRworksConnector.Models.AbsenceActions.GetAbsencesRequest(); getAbsencesRequest.BeginDate = dateFrom; getAbsencesRequest.EndDate = dateTo; getAbsencesRequest.PersonnelNumbers.Add(personBaseData.PersonnelNumber); foreach (string activeKrankAndUrlaubKey in activeKrankAndUrlaubKeys) { getAbsencesRequest.Types.Add(activeKrankAndUrlaubKey); } HRworksConnector.Models.AbsenceActions.GetAbsencesResponse getAbsencesResponse = await hrworksApi.AbsenceActions.GetAbsencesAsync(getAbsencesRequest); } #endregion #region Target GetPersonMasterData string personnelNumber = string.Empty; if (persons.OrganizationsPersons.Count > 0) { System.Random random = new System.Random(); int randPos = random.Next(persons.OrganizationsPersons.Count - 1); HRworksConnector.Models.GeneralActions.OrganizationPersons organizationPersons = persons.OrganizationsPersons[randPos]; randPos = random.Next(organizationPersons.Persons.Count - 1); HRworksConnector.Models.GeneralActions.PersonBaseData tmPersonBaseData = organizationPersons.Persons[randPos]; personnelNumber = tmPersonBaseData.PersonnelNumber; } HRworksConnector.Models.EmployeeActions.GetPersonMasterDataRequest getPersonMasterDataRequest = new HRworksConnector.Models.EmployeeActions.GetPersonMasterDataRequest(); getPersonMasterDataRequest.PersonnelNumbers.Add(personnelNumber); HRworksConnector.Models.EmployeeActions.GetPersonMasterDataResponse getPersonMasterDataResponse = await hrworksApi.EmployeeActions.GetPersonMasterDataAsync(getPersonMasterDataRequest); #endregion #region Target GetAllOrganizationUnits HRworksConnector.Models.GeneralActions.OrganizationUnitsResponse allOrganizationUnits = await hrworksApi.GeneralActions.GetAllOrganizationUnitsAsync(); System.Console.WriteLine("-- GetAllOrganizationUnits-- "); foreach (HRworksConnector.Models.GeneralActions.OrganizationUnit organizationUnit in allOrganizationUnits.OrganizationUnits) { System.Console.WriteLine(organizationUnit.ToString()); } #endregion #region Target GetPresentPersonsOfOrganizationUnit if (allOrganizationUnits.OrganizationUnits.Count == 0) { return; } string tmpOrganizationUnitNumber = allOrganizationUnits.OrganizationUnits[0].OrganizationUnitNumber; string tmpOrganizationUnitName = allOrganizationUnits.OrganizationUnits[0].OrganizationUnitName; System.Console.WriteLine(); System.Console.WriteLine(); // Target GetPresentPersonsOfOrganizationUnit HRworksConnector.Models.GeneralActions.PersonsOfOrganizationUnitResponse personsOfOrganizationUnitResponse = await hrworksApi.GeneralActions.GetPresentPersonsOfOrganizationUnitAsync(tmpOrganizationUnitNumber); System.Console.WriteLine(string.Format("-- GetPresentPersonsOfOrganizationUnit von {0} ({1}) -- ", tmpOrganizationUnitName, tmpOrganizationUnitNumber)); foreach (HRworksConnector.Models.GeneralActions.PersonBaseData personBaseData in personsOfOrganizationUnitResponse.Persons) { System.Console.WriteLine(personBaseData.ToString()); } #endregion } catch (Exception ex) { System.Console.WriteLine(ex.Message); } }
/// <summary> /// Returns the cumulated available working hours of the specified persons in the date interval /// specified by the beginDate and endDate parameters.The selected date interval can be further /// divided into days, weeks or months. /// </summary> /// <returns>A collection of (sub) date intervals for each person identifier that includes the cumulated working hours value for the respective date interval.</returns> public async System.Threading.Tasks.Task <HRworksConnector.Models.GeneralActions.GetAvailableWorkingHoursResponse> GetAvailableWorkingHoursAsync(HRworksConnector.Models.GeneralActions.GetAvailableWorkingHoursRequest getAvailableWorkingHoursRequest) { const string Target = @"GetAvailableWorkingHours"; Newtonsoft.Json.Linq.JObject json = Newtonsoft.Json.Linq.JObject.FromObject(getAvailableWorkingHoursRequest); return(await PostAsync <HRworksConnector.Models.GeneralActions.GetAvailableWorkingHoursResponse>(Target, json)); }