mirror of
https://bitbucket.org/myhomie/mycorerepository.git
synced 2025-12-06 09:41:19 +00:00
66 lines
2.3 KiB
C#
66 lines
2.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|