using MyCore.Interfaces.DTO; using MyCore.Interfaces.Models; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace MyCore.Services { public class HomeService { public static bool IsExist(HomeDatabaseService _HomeDatabaseService, string homeId) { return _HomeDatabaseService.GetById(homeId) != null ? true : false ; } public static Home CreateOrUpdate(HomeDatabaseService _HomeDatabaseService, AlarmDatabaseService _AlarmDatabaseService, CreateOrUpdateHomeDTO createOrUpdateHomeDTO, bool create) { Home home; if (create) home = new Home(); else { home = _HomeDatabaseService.GetById(createOrUpdateHomeDTO.Id); home.CurrentAlarmMode = _AlarmDatabaseService.IsExist(createOrUpdateHomeDTO.CurrentAlarmMode.Id) ? _AlarmDatabaseService.GetById(createOrUpdateHomeDTO.CurrentAlarmMode.Id) : null; } home.Name = createOrUpdateHomeDTO.Name; home.CreatedDate = create ? DateTime.Now : createOrUpdateHomeDTO.CreatedDate; home.UpdatedDate = DateTime.Now; home.IsAlarm = createOrUpdateHomeDTO.IsAlarm; home.UsersIds = createOrUpdateHomeDTO.UsersIds.ToArray(); // Todo : check if necessary /*home.Users = homeDetail.Users; home.Automations = homeDetail.Automations; home.Devices = homeDetail.Devices; home.Providers = homeDetail.Providers;*/ if (create) return _HomeDatabaseService.Create(home); else return _HomeDatabaseService.Update(home); } public static bool UpdateAlarmMode(HomeDatabaseService _HomeDatabaseService, AlarmMode alarmMode) { try { Home home = _HomeDatabaseService.GetById(alarmMode.HomeId); home.CurrentAlarmMode = alarmMode; _HomeDatabaseService.Update(home); return true; } catch (Exception ex) { // Todo add log System.Console.WriteLine($"An error has occurred during updating default alarm modes named {alarmMode.Name} : {ex.Message}"); return false; } } } }