private static NormalWorkingTime GetNormalWorkingTime()
        {
            NormalWorkingTime _normalWorkingTime = null;
            var _normalWorkWeeksResult           = SalaryHandler.Instance.SalaryClient.GetNormalWorkweeks(SalaryHandler.Instance.Token);

            foreach (var _apiMessage in _normalWorkWeeksResult.Messages)
            {
                if (Logger.IsDebugEnabled)
                {
                    Logger.Debug(_apiMessage.Message);
                }
            }

            if (_normalWorkWeeksResult.ResponseState == TransactionalApi.SDK.SalaryService.ExecutionStatus.Success)
            {
                _normalWorkingTime = _normalWorkWeeksResult.Return.FirstOrDefault();
            }

            if (_normalWorkingTime == null)
            {
                throw new ArgumentException("No normal working time found");
            }

            if (Logger.IsDebugEnabled)
            {
                Logger.Debug("Working time selected: " + _normalWorkingTime.Name);
            }

            return(_normalWorkingTime);
        }
        public static void Consume()
        {
            // For getting the raw XML
            SecurityHandler.Instance.CollectRawRequestResponse     = true;
            OrganisationHandler.Instance.CollectRawRequestResponse = true;
            SalaryHandler.Instance.CollectRawRequestResponse       = true;

            if (SecurityHandler.Instance.TryAuthenticate(out var _messages))
            {
                RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\TryAuthenticate.txt");
                if (Logger.IsInfoEnabled)
                {
                    Logger.Info("Sucessfully authenticated on transactional API");
                }

                var        _employeeGuid = Guid.NewGuid();
                Department _department   = null;

                var _departmentResult = OrganisationHandler.Instance.OrganisationClient.GetDepartments(OrganisationHandler.Instance.Token);

                foreach (var _apiMessage in _departmentResult.Messages)
                {
                    if (Logger.IsDebugEnabled)
                    {
                        Logger.Debug(_apiMessage.Message);
                    }
                }

                if (_departmentResult.ResponseState == ExecutionStatus.Success)
                {
                    _department = _departmentResult.Return.FirstOrDefault();
                }

                if (_department == null)
                {
                    throw new ArgumentException("No department found");
                }

                NormalWorkingTime _normalWorkingTime = GetNormalWorkingTime();
                HolidayCalendar   _holidayCalendar   = GetHolidayCalendar();
                Allowance         _allowance         = GetAllowance();
                HourlyRate        _hourlyRate        = GetHourlyRate();
                EmployeeCostRate  _employeeCostRate  = GetEmployeeCostRate();

                var _employeeResult = OrganisationHandler.Instance.OrganisationClient.CreateEmployee(
                    _employeeGuid,
                    "*****@*****.**",
                    "PN",
                    "Peter",
                    "Nielsen",
                    "007",
                    "*****@*****.**",
                    "Senior Developer",
                    "+45 12345678",
                    "+45 87654321",
                    _normalWorkingTime.Name,
                    _holidayCalendar.Name,
                    _allowance.Name,
                    "Employee",
                    _hourlyRate.Name,
                    _employeeCostRate.Name,
                    "peter.nielsen",
                    _department.ID,
                    OrganisationHandler.Instance.Token);

                RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\InsertEmployee.txt");
                if (_employeeResult.ResponseState == ExecutionStatus.Success)
                {
                    Logger.Info("Employee created");
                    var _employee = _employeeResult.Return.FirstOrDefault();
                    if (_employee != null)
                    {
                    }
                    else
                    {
                        if (Logger.IsWarnEnabled)
                        {
                            Logger.Warn("Employee not created");
                        }
                    }
                }
                else
                {
                    foreach (var _apiMessage in _employeeResult.Messages)
                    {
                        if (Logger.IsErrorEnabled)
                        {
                            Logger.Error(_apiMessage.Message);
                        }
                    }
                }
            }
            else
            {
                if (Logger.IsWarnEnabled)
                {
                    Logger.Warn("Failed to authenticate to transactional API");
                    Logger.Warn(string.Join(",", _messages));
                }
            }
        }