BusinessServiceFactory.cs 922 B

12345678910111213141516171819202122232425262728293031323334
  1. using EVCB_OCPP.Domain;
  2. using EVCB_OCPP.Packet.Messages.SubTypes;
  3. using EVCB_OCPP.WSServer.Dto;
  4. using System;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. namespace EVCB_OCPP.WSServer.Service
  8. {
  9. public interface IBusinessService
  10. {
  11. Task<IdTagInfo> Authorize(string chargeBoxId, string idTag);
  12. Task NotifyFaultStatus(ErrorDetails details);
  13. }
  14. static public class BusinessServiceFactory
  15. {
  16. static public IBusinessService CreateBusinessService(string customerId)
  17. {
  18. bool isCallOut = false;
  19. using (var db = new MainDBContext())
  20. {
  21. isCallOut = db.Customer.Where(x => x.Id == new Guid(customerId)).Select(x => x.CallPartnerApiOnSchedule).SingleOrDefault();
  22. }
  23. return isCallOut ? new OuterBusinessService(customerId) : (IBusinessService)new LocalBusinessService(customerId);
  24. }
  25. }
  26. }