/// <summary>
        /// Used to get timezone inforamtion
        /// </summary>
        /// <param name="timeZoneEntryId"></param>
        public TimeZoneEntryModel GetTimeZoneInformation(int timeZoneEntryId)
        {
            var entryData = new Data.TimeZoneEntryMethods().GetTimeZoneEntry(timeZoneEntryId);

            if (entryData == null)
                throw new EntryNotFound();

            var timeSpan = new TimeSpan(entryData.Difference);
            return new TimeZoneEntryModel
            {
                City = entryData.City,
                UserId = entryData.UserId,
                EntryName = entryData.EntryName,
                TimeZoneEntryId = entryData.Id,
                HourDifference = timeSpan.Hours,
                MinuteDifference = timeSpan.Minutes,
                CurrentTimeCity = DateTime.UtcNow + timeSpan
            };
        }
        /// <summary>
        /// Used to get all the Records of the user, If userId==0 then al records to be returned
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="pageNo"></param>
        /// <param name="records"></param>
        /// <param name="recordPageNo"></param>
        /// <returns></returns>
        public List<UserTimeZoneEntryModel> GetUserTimeZoneInformation(int userId, int pageNo, int records, int recordPageNo, int recordPageEntries, BusinessClasses.UserRole role)
        {
            var returnData = new List<UserTimeZoneEntryModel>();
            if (userId != 0)
            {
                var userInfo = new Data.UserMethods().GetUserInformationBasedOnId(userId);
                if (userInfo == null)
                    throw new EntryNotFound();
                var userRecords = new Data.TimeZoneEntryMethods().GetAllTimeZoneBasedOnId(recordPageNo, recordPageEntries, userId);

                returnData.Add(new UserTimeZoneEntryModel
                {
                    UserId = userInfo.UserId,
                    UserName = userInfo.UserName,
                    EmailId = userInfo.Email,
                    TimeZoneEntries = userRecords.Select(m => new TimeZoneEntryModel
                    {
                        UserId = m.UserId,
                        EntryName = m.EntryName,
                        City = m.City,
                        TimeZoneEntryId = m.Id,
                        HourDifference = new TimeSpan(m.Difference).Hours,
                        MinuteDifference = new TimeSpan(m.Difference).Minutes,
                        CurrentTimeCity = DateTime.UtcNow + new TimeSpan(m.Difference)
                    }).ToList()
                });

            }
            else
            {
                returnData = new Data.UserMethods().GetAllUsers(pageNo, records, role).Select(c => new UserTimeZoneEntryModel
                    {
                        EmailId = c.Email,
                        UserId = c.UserId,
                        UserName = c.UserName,
                        TimeZoneEntries = new Data.TimeZoneEntryMethods().GetAllTimeZoneBasedOnId(recordPageNo, recordPageEntries, c.UserId).Select(
                        m => new TimeZoneEntryModel
                        {
                            UserId = m.UserId,
                            EntryName = m.EntryName,
                            City = m.City,
                            TimeZoneEntryId = m.Id,
                            HourDifference = new TimeSpan(m.Difference).Hours,
                            MinuteDifference = new TimeSpan(m.Difference).Minutes,
                            CurrentTimeCity = DateTime.UtcNow + new TimeSpan(m.Difference)
                        }).ToList()
                    }).ToList();
            }
            return returnData;
        }