public BaseServiceResult <string, long> AddReceiver(string oldReceiverId)
 {
     try
     {
         using (var receiverBL = new ReceiverBL())
         {
             return(receiverBL.RegisterOrRenewToken(oldReceiverId, Settings.NewTokenPeriod.Value));
         }
     } catch (Exception ex)
     {
         Logger.Error("Login", ex);
         return(BaseServiceResult <string, long> .InternalErrorResult);
     }
 }
        // return StatusCodes:
        // UnAuthorised: Invalid receiver Token
        // InternalServerError: Internal error
        public BaseServiceResult AddDevice(long ReceiverId, Device deviceInfo, string ReceiverToken)
        {
            try
            {
                using (IReceiverBL ReceiverBL = new ReceiverBL())
                {
                    if (!ReceiverBL.CheckTokenValid(ReceiverToken, ReceiverId))
                    {
                        return(new BaseServiceResult(ResultStatusCodes.UnAuthorised, null));
                    }
                }

                using (var DeviceBL = new DeviceBL())
                {
                    return(DeviceBL.AddDevice(deviceInfo));
                }
            } catch (Exception ex)
            {
                Logger.Error("AddDevice", ex);
                return(BaseServiceResult.InternalErrorResult);
            }
        }
        public BaseServiceResult RemoveDevice(string DeviceIMEI, long ReceiverId, string ReceiverToken)
        {
            try
            {
                using (var ReceiverBL = new ReceiverBL())
                {
                    if (!ReceiverBL.CheckTokenValid(ReceiverToken, ReceiverId))
                    {
                        return(new BaseServiceResult <byte[]>(ResultStatusCodes.UnAuthorised, null));
                    }
                }

                using (IDeviceBL DeviceBL = new DeviceBL())
                {
                    return(DeviceBL.RemoveDeviceByIMEI(DeviceIMEI));
                }
            } catch (Exception ex)
            {
                Logger.Error("AddDevice", ex);
                return(BaseServiceResult.InternalErrorResult);
            }
        }
        public BaseServiceResult <byte[]> GetNotificationContent(long NotificationId, string NotificationAccessKey, string ReceiverToken, long ReceiverId)
        {
            try
            {
                using (IReceiverBL ReceiverBL = new ReceiverBL())
                {
                    if (!ReceiverBL.CheckTokenValid(ReceiverToken, ReceiverId))
                    {
                        return(new BaseServiceResult <byte[]>(ResultStatusCodes.UnAuthorised, null));
                    }
                }

                using (var NotificationBL = new NotificationBL())
                {
                    return(NotificationBL.GetNotificationContent(NotificationId, NotificationAccessKey));
                }
            } catch (Exception ex)
            {
                Logger.Error("GetNotificationContent", ex);
                return(BaseServiceResult <byte[]> .InternalErrorResult);
            }
        }