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;
}
}
}
}