public AlarmappDepartment AddOrUpdateAlarmappDepartment(AlarmappDepartment _entity) { if (_entity == null || !_entity.IsValid) { new ArgumentNullException("AlarmappDepartment"); } using (var _databaseContext = new DatabaseContext()) { _entity = _databaseContext.UpdateGraph(_entity, map => map.AssociatedCollection(a => a.Groups)); _databaseContext.SaveChanges(); return(_entity); } }
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); } }