protected List <AgentDLInfo> GetListDetails(string toBeCheckedDL, TimeSpan toBeCheckedOffset, DateTime startDate, DateTime endDate)
        {
            List <AgentDLInfo> agentDLList = new List <AgentDLInfo>();

            try
            {
                EWSUtility    ewsUtility = new EWSUtility("SMBSPWEB", "]#Uun6~QqN7k@Z}c", "REDMOND", "*****@*****.**");
                List <string> lstEmailID = (List <string>)ewsUtility.ExpandDistributionLists(toBeCheckedDL);
                // List<string> lstEmailID = new List<string>();
                // lstEmailID.Clear();
                //lstEmailID.Add("*****@*****.**");
                //lstEmailID.Add("*****@*****.**");
                //lstEmailID.Add("*****@*****.**");
                //lstEmailID.Add("v - [email protected]");
                //lstEmailID.Add("v - [email protected]");
                //lstEmailID.Add("v - [email protected]");
                //lstEmailID.Add("v - [email protected]");

                //lstEmailID.Add("*****@*****.**");
                //lstEmailID.Add("*****@*****.**");


                // Temporary fix : The below agent is causing some issue while fetching data from Exchange, The error is "The XML document ended unexpectedly."
                // The affected team are : MastOpt and CoachNA (since both DLs have the same list of agents)
                // lstEmailID.Remove("*****@*****.**"); //todo
                //--End temporary fix 16 Feb 2017

                foreach (string agentEmailID in lstEmailID)
                {
                    GetUserAvailabilityResults freeBusyResults = ewsUtility.Exchange.GetUserAvailability(
                        Enumerable.Repeat(new AttendeeInfo {
                        SmtpAddress = agentEmailID, AttendeeType = MeetingAttendeeType.Required
                    }, 1),
                        new TimeWindow(startDate, endDate), AvailabilityData.FreeBusy,
                        new AvailabilityOptions()
                    {
                        MeetingDuration = 30, RequestedFreeBusyView = FreeBusyViewType.FreeBusy
                    });

                    AgentDLInfo agentDLInfo = new AgentDLInfo();
                    agentDLInfo.DLName  = toBeCheckedDL;
                    agentDLInfo.EmailId = agentEmailID;

                    if (freeBusyResults.AttendeesAvailability.First().WorkingHours != null)
                    {
                        agentDLInfo.TimeZoneInfo       = freeBusyResults.AttendeesAvailability.First().WorkingHours.TimeZone;
                        agentDLInfo.AgentOffset        = agentDLInfo.TimeZoneInfo.BaseUtcOffset.ToString();
                        agentDLInfo.DLOffset           = toBeCheckedOffset.ToString();
                        agentDLInfo.IsBaseOffset       = agentDLInfo.TimeZoneInfo.BaseUtcOffset.Equals(toBeCheckedOffset);
                        agentDLInfo.WorkhoursStartTime = freeBusyResults.AttendeesAvailability.First().WorkingHours.StartTime.ToString();
                        agentDLInfo.WorkhoursEndTime   = freeBusyResults.AttendeesAvailability.First().WorkingHours.EndTime.ToString();
                    }
                    else
                    {
                        agentDLInfo.DLOffset     = toBeCheckedOffset.ToString();
                        agentDLInfo.AgentOffset  = "Unknown";
                        agentDLInfo.TimeZoneInfo = null;
                        agentDLInfo.IsBaseOffset = false;
                    }

                    agentDLList.Add(agentDLInfo);
                }

                return(agentDLList);
            }
            catch (Exception ex)
            {
                lblError.Text    = "Some Exception occurs due to invalid DL or due to some another issue.";
                lblError.Visible = true;
                return(agentDLList);
            }
        }