public bool Refresh(string apiToken, string organisationId) { try { if (string.IsNullOrEmpty(apiToken)) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "apiToken not set"); return(false); } if (string.IsNullOrEmpty(organisationId)) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "organisationId not set"); return(false); } _apiService = new AlarmappApiService(apiToken); //Check departments and alarmgroups var _alarmgroupsResult = _apiService.GetAlarmgroups(organisationId); if (_alarmgroupsResult == null) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "GetAlarmgroups -> fail"); return(false); } //Check alarmgroups var dbDepartment = _business.GetAlarmappDepartmentById(organisationId); if (dbDepartment == null) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), $"add new department -> {organisationId}"); dbDepartment = new AlarmappDepartment(); dbDepartment.DepartmentId = organisationId; dbDepartment.DepartmentName = organisationId; //we dont get a name at the moment dbDepartment = _business.AddOrUpdateAlarmappDepartment(dbDepartment); } //dbDepartment.DepartmentName = department.name; _business.AddOrUpdateAlarmappDepartment(dbDepartment); foreach (var alarmgroup in _alarmgroupsResult) { var dbGroup = _business.GetAlarmappGroupByGroupId(alarmgroup.id); if (dbGroup == null) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), $"add new alarmgroup -> {alarmgroup.name}"); dbGroup = new AlarmappGroup(); dbGroup.Department = dbDepartment; dbGroup.GroupId = alarmgroup.id; dbGroup.GroupName = alarmgroup.name; dbGroup = _business.AddOrUpdateAlarmappGroup(dbGroup); } dbGroup.GroupName = alarmgroup.name; _business.AddOrUpdateAlarmappGroup(dbGroup); } Settings.Default.Alarmapp_ApiToken = apiToken; Settings.Default.Alarmapp_OrganisationId = organisationId; Settings.Default.Save(); Logger.WriteDebug(MethodBase.GetCurrentMethod(), "Refresh -> OK"); return(true); } catch (Exception ex) { ExceptionOccured.RaiseEvent(this, new ExceptionEventArgs { Methode = MethodBase.GetCurrentMethod(), Error = ex }); return(false); } }