public Response <IEnumerable <ScheduleDTO> > SendSMSAlertToParent(int GapDays, int OnlineClinicId)
        {
            try
            {
                using (VDEntities entities = new VDEntities())
                {
                    List <Schedule> Schedules  = GetAlertData(GapDays, OnlineClinicId, entities);
                    var             dbChildren = Schedules.Select(x => x.Child).Distinct().ToList();
                    foreach (var child in dbChildren)
                    {
                        var      dbSchedules  = Schedules.Where(x => x.ChildId == child.ID).ToList();
                        var      doseName     = "";
                        DateTime scheduleDate = new DateTime();
                        foreach (var schedule in dbSchedules)
                        {
                            doseName    += schedule.Dose.Name + ", ";
                            scheduleDate = schedule.Date;
                        }
                        UserSMS.ParentSMSAlert(doseName, scheduleDate, child);
                    }

                    List <ScheduleDTO> scheduleDtos = Mapper.Map <List <ScheduleDTO> >(Schedules);
                    return(new Response <IEnumerable <ScheduleDTO> >(true, null, scheduleDtos));
                }
            }
            catch (Exception ex)
            {
                return(new Response <IEnumerable <ScheduleDTO> >(false, GetMessageFromExceptionObject(ex), null));
            }
        }
        public Response <IEnumerable <ScheduleDTO> > SendSMSAlertToOneChild(int GapDays, int childId)
        {
            try
            {
                using (VDEntities entities = new VDEntities())
                {
                    IEnumerable <Schedule> Schedules = new List <Schedule>();
                    DateTime AddedDateTime           = DateTime.UtcNow.AddHours(5).AddDays(GapDays);
                    DateTime pakistanDate            = DateTime.UtcNow.AddHours(5).Date;
                    if (GapDays == 0)
                    {
                        Schedules = entities.Schedules.Include("Child").Include("Dose")
                                    .Where(sc => sc.ChildId == childId)
                                    .Where(sc => sc.Date == pakistanDate)
                                    .Where(sc => sc.IsDone == false)
                                    .OrderBy(x => x.Child.ID).ThenBy(y => y.Date).ToList <Schedule>();
                    }
                    if (GapDays > 0)
                    {
                        Schedules = entities.Schedules.Include("Child").Include("Dose")
                                    .Where(sc => sc.ChildId == childId)
                                    .Where(sc => sc.IsDone == false)
                                    .Where(sc => sc.Date >= pakistanDate && sc.Date <= AddedDateTime)
                                    .OrderBy(x => x.Child.ID).ThenBy(y => y.Date).ToList <Schedule>();
                    }
                    if (GapDays < 0)
                    {
                        Schedules = entities.Schedules.Include("Child").Include("Dose")
                                    .Where(sc => sc.ChildId == childId)
                                    .Where(sc => sc.IsDone == false)
                                    .Where(sc => sc.Date <= pakistanDate && sc.Date >= AddedDateTime)
                                    .OrderBy(x => x.Child.ID).ThenBy(y => y.Date).ToList <Schedule>();
                    }

                    var      doseName     = "";
                    DateTime scheduleDate = new DateTime();
                    var      dbChild      = entities.Children.Where(x => x.ID == childId).FirstOrDefault();
                    foreach (var schedule in Schedules)
                    {
                        doseName    += schedule.Dose.Name.Trim() + ", ";
                        scheduleDate = schedule.Date;
                    }
                    UserSMS.ParentSMSAlert(doseName, scheduleDate, dbChild);

                    List <ScheduleDTO> scheduleDtos = Mapper.Map <List <ScheduleDTO> >(Schedules);
                    return(new Response <IEnumerable <ScheduleDTO> >(true, null, scheduleDtos));
                }
            }
            catch (Exception ex)
            {
                return(new Response <IEnumerable <ScheduleDTO> >(false, GetMessageFromExceptionObject(ex), null));
            }
        }