/// <summary>
        /// Converts the basic push response.
        /// </summary>
        /// <param name="basicResponse">The basic response.</param>
        /// <returns></returns>
        public static PushResponse ConvertBasicPushResponse(BasicPushResponse basicResponse)
        {
            var response = new PushResponse();

            response.Active                  = basicResponse.Active;
            response.Created                 = TimeZoneInfo.ConvertTime(basicResponse.Created.UnixTimeToDateTime(), TimeZoneInfo.Utc);
            response.Dismissed               = basicResponse.Dismissed;
            response.Direction               = basicResponse.Direction;
            response.Iden                    = basicResponse.Iden;
            response.Modified                = TimeZoneInfo.ConvertTime(basicResponse.Modified.UnixTimeToDateTime(), TimeZoneInfo.Utc);
            response.ReceiverEmail           = basicResponse.ReceiverEmail;
            response.ReceiverEmailNormalized = basicResponse.ReceiverEmailNormalized;
            response.ReceiverIden            = basicResponse.ReceiverIden;
            response.SenderEmail             = basicResponse.SenderEmail;
            response.SenderEmailNormalized   = basicResponse.SenderEmailNormalized;
            response.SenderIden              = basicResponse.SenderIden;
            response.SenderName              = basicResponse.SenderName;
            response.SourceDeviceIden        = basicResponse.SourceDeviceIden;
            response.TargetDeviceIden        = basicResponse.TargetDeviceIden;
            response.Type                    = ConvertPushResponseType(basicResponse.Type);
            response.ClientIden              = basicResponse.ClientIden;
            response.Title                   = basicResponse.Title;
            response.Body                    = basicResponse.Body;
            response.Url      = basicResponse.Url;
            response.FileName = basicResponse.FileName;
            response.FileType = basicResponse.FileType;
            response.FileUrl  = basicResponse.FileUrl;
            response.ImageUrl = basicResponse.ImageUrl;
            response.Name     = basicResponse.Name;
            return(response);
        }
        /// <summary>
        /// Posts the push request.
        /// </summary>
        /// <param name="requestJson">The request json.</param>
        /// <returns></returns>
        private PushResponse PostPushRequest(string requestJson)
        {
            string            responseJson  = PostRequest(string.Concat(PushbulletConstants.BaseUrl, PushbulletConstants.PushesUrls.Push), requestJson);
            BasicPushResponse basicResponse = JsonSerializer.Deserialize <BasicPushResponse>(responseJson);
            PushResponse      response      = ConvertBasicPushResponse(basicResponse);

            return(response);
        }
        /// <summary>
        /// Converts the basic push response.
        /// </summary>
        /// <param name="basicResponse">The basic response.</param>
        /// <returns></returns>
        private PushResponse ConvertBasicPushResponse(BasicPushResponse basicResponse)
        {
            PushResponse response = new PushResponse();

            response.Active = basicResponse.Active;
            if (basicResponse.Created != null)
            {
                response.Created = TimeZoneInfo.ConvertTime(basicResponse.Created.UnixTimeToDateTime(), TimeZoneInfo);
            }
            response.Dismissed = basicResponse.Dismissed;
            response.Direction = basicResponse.Direction;
            response.Iden      = basicResponse.Iden;
            if (basicResponse.Modified != null)
            {
                response.Modified = TimeZoneInfo.ConvertTime(basicResponse.Modified.UnixTimeToDateTime(), TimeZoneInfo);
            }
            response.ReceiverEmail           = basicResponse.ReceiverEmail;
            response.ReceiverEmailNormalized = basicResponse.ReceiverEmailNormalized;
            response.ReceiverIden            = basicResponse.ReceiverIden;
            response.SenderEmail             = basicResponse.SenderEmail;
            response.SenderEmailNormalized   = basicResponse.SenderEmailNormalized;
            response.SenderIden       = basicResponse.SenderIden;
            response.SenderName       = basicResponse.SenderName;
            response.SourceDeviceIden = basicResponse.SourceDeviceIden;
            response.TargetDeviceIden = basicResponse.TargetDeviceIden;
            response.Type             = ConvertPushResponseType(basicResponse.Type);
            response.ClientIden       = basicResponse.ClientIden;
            response.Title            = basicResponse.Title;
            response.Body             = basicResponse.Body;
            response.Url      = basicResponse.Url;
            response.FileName = basicResponse.FileName;
            response.FileType = basicResponse.FileType;
            response.FileUrl  = basicResponse.FileUrl;
            response.ImageUrl = basicResponse.ImageUrl;
            response.Name     = basicResponse.Name;
            response.Address  = basicResponse.Address;
            if (basicResponse.Items != null)
            {
                response.Items = basicResponse.Items.Select(o => new ListItem()
                {
                    Checked = o.Checked, Text = o.Text
                }).ToList();
            }
            return(response);
        }
        /// <summary>
        /// Converts the basic push response.
        /// </summary>
        /// <param name="basicResponse">The basic response.</param>
        /// <returns></returns>
        private PushResponse ConvertBasicPushResponse(BasicPushResponse basicResponse)
        {
            PushResponse response = new PushResponse();

            response.active                    = basicResponse.active;
            response.created                   = TimeZoneInfo.ConvertTimeFromUtc(basicResponse.created.UnixTimeToDateTime(), TimeZoneInfo);
            response.dismissed                 = basicResponse.dismissed;
            response.iden                      = basicResponse.iden;
            response.modified                  = TimeZoneInfo.ConvertTimeFromUtc(basicResponse.modified.UnixTimeToDateTime(), TimeZoneInfo);
            response.receiver_email            = basicResponse.receiver_email;
            response.receiver_email_normalized = basicResponse.receiver_email_normalized;
            response.receiver_iden             = basicResponse.receiver_iden;
            response.sender_email              = basicResponse.sender_email;
            response.sender_email_normalized   = basicResponse.sender_email_normalized;
            response.sender_iden               = basicResponse.sender_iden;
            response.sender_name               = basicResponse.sender_name;
            response.source_device_iden        = basicResponse.source_device_iden;
            response.target_device_iden        = basicResponse.target_device_iden;
            response.type                      = basicResponse.type;
            return(response);
        }