private static UsageLimitMessage UsageLimitMessageThrowsException(ReadingMessage request)
        {
            var result = new UsageLimitMessage()
            {
                CustomerId   = request.CustomerId,
                MobileNumber = request.MobileNumber
            };

            if (request.DataUsage < MaxDataUsage && request.ReadingTime.ToDateTime().ToUniversalTime() == DateTime.UtcNow)
            {
                result.ContinueUsage = ContinueService.Yes;
                result.RemainingData = 0;
            }
            else if (Math.Abs(request.DataUsage - MaxDataUsage) < tolerance && request.ReadingTime.ToDateTime().ToUniversalTime() == DateTime.UtcNow)
            {
                result.ContinueUsage = ContinueService.No;
                result.RemainingData = 0;
            }
            else
            {
                var additionalInfo = new Metadata()
                {
                    new Metadata.Entry("Time", DateTime.UtcNow.ToString(CultureInfo.InvariantCulture)),
                    new Metadata.Entry("exception_cause", "Data usage exceeded."),
                };

                throw new RpcException(new Status(StatusCode.Cancelled, "Data usage has reached at the peak, Can not continue the data usage."), additionalInfo);
            }

            return(result);
        }
        private static UsageLimitMessage UsageLimitMessage(ReadingMessage request)
        {
            var result = new UsageLimitMessage()
            {
                CustomerId   = request.CustomerId,
                MobileNumber = request.MobileNumber
            };

            if (request.DataUsage <= MaxDataUsage && request.ReadingTime.ToDateTime().ToUniversalTime() == DateTime.UtcNow)
            {
                result.ContinueUsage = ContinueService.Yes;
                result.RemainingData = 0;
            }
            else
            {
                result.ContinueUsage = ContinueService.No;
                result.RemainingData = 0;
            }

            return(result);
        }