public string DeleteFromTopic(Globals.eventdetails eventdetails, SubscribeEventRequest subscribeEvent = null, SubscribeVenueRequest subscribeVenue = null)
        {
            string response   = string.Empty;
            string EventId    = string.Empty;
            string InstanceId = string.Empty;

            try
            {
                if (eventdetails == Globals.eventdetails.FromEvent)
                {
                    EventId    = subscribeEvent.EventId;
                    InstanceId = subscribeEvent.InstanceId;
                }
                else if (eventdetails == Globals.eventdetails.FromVenue)
                {
                    EventId    = subscribeVenue.VenueId;
                    InstanceId = subscribeVenue.InstanceId;
                }

                WebRequest tRequest = WebRequest.Create(URLConstants.FirebaseUnSubscribeTopic);
                tRequest.Method      = "post";
                tRequest.ContentType = "application/json";
                var data = new
                {
                    to = "/topics/" + EventId,
                    registration_tokens = new string[] { InstanceId }
                };

                var    json      = JsonConvert.SerializeObject(data);
                Byte[] byteArray = Encoding.UTF8.GetBytes(json);
                tRequest.Headers.Add(string.Format("Authorization: key={0}", serverKey));
                tRequest.ContentLength = byteArray.Length;

                using (Stream dataStream = tRequest.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);
                    using (WebResponse tResponse = tRequest.GetResponse())
                    {
                        using (Stream dataStreamResponse = tResponse.GetResponseStream())
                        {
                            using (StreamReader tReader = new StreamReader(dataStreamResponse))
                            {
                                String sResponseFromServer = tReader.ReadToEnd();
                                string str = sResponseFromServer;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(response);
        }
        public string getEventDetails(GetEventRequest request, Globals.eventdetails eventdetails)
        {
            string base_uri;

            switch (eventdetails)
            {
            case Globals.eventdetails.FromEvent:
                base_uri = URLConstants.EventDetailsURL + "id=" + request.id;
                break;

            case Globals.eventdetails.FromVenue:
                base_uri = URLConstants.VenueDetailsURL + "id=" + request.id;
                break;

            default:
                throw new Exception();
            }

            string      result = string.Empty;
            XmlDocument xml;

            try
            {
                result = GetResponseFromWeb(base_uri);
                if (result != null && result.Length > 0)
                {
                    var str = XElement.Parse(result);
                    if (str != null && str.ToString() != "")
                    {
                        xml = new XmlDocument();
                        xml.LoadXml(str.ToString());

                        if (xml != null)
                        {
                            var jsonText = JsonConvert.SerializeXmlNode(xml);
                            result = jsonText.ToString();
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
            return(result);
        }
        public string AddtoTopic(Globals.eventdetails eventdetails, SubscribeEventRequest subscribeEvent = null, SubscribeVenueRequest subscribeVenue = null)
        {
            string response   = string.Empty;
            string EventId    = string.Empty;
            string InstanceId = string.Empty;

            try
            {
                if (eventdetails == Globals.eventdetails.FromEvent)
                {
                    EventId    = subscribeEvent.EventId;
                    InstanceId = subscribeEvent.InstanceId;
                }
                else if (eventdetails == Globals.eventdetails.FromVenue)
                {
                    EventId    = subscribeVenue.VenueId;
                    InstanceId = subscribeVenue.InstanceId;
                }

                WebRequest tRequest = WebRequest.Create(URLConstants.FirebaseSubscribeTopic + "" + InstanceId + "/rel/topics/" + EventId);
                tRequest.Method      = "post";
                tRequest.ContentType = "application/json";
                tRequest.Headers.Add(string.Format("Authorization: key={0}", serverKey));
                tRequest.ContentLength = 0;

                using (WebResponse tResponse = tRequest.GetResponse())
                {
                    using (Stream dataStreamResponse = tResponse.GetResponseStream())
                    {
                        using (StreamReader tReader = new StreamReader(dataStreamResponse))
                        {
                            String sResponseFromServer = tReader.ReadToEnd();
                            string str = sResponseFromServer;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(response);
        }
        public string getAllEventsLoc(EventSearchRequest request, Globals.eventdetails eventdetails)
        {
            string base_uri;

            switch (eventdetails)
            {
            case Globals.eventdetails.FromEvent:
                base_uri = URLConstants.SearchEventsByLocation + "where=" + request.latitude + "," + request.longitude + "&within=25";
                break;

            case Globals.eventdetails.FromVenue:
                base_uri = URLConstants.SearchEventsByLocation + "location=" + request.location;
                break;

            default:
                throw new Exception();
            }

            if (!string.IsNullOrEmpty(request.category))
            {
                base_uri = base_uri + "&category=" + Convert.ToString(request.category);
            }

            string          result      = string.Empty;
            string          resXML      = "";
            XmlSerializer   serializer  = null;
            SearchEventResp resultEvent = null;

            try
            {
                result = GetResponseFromWeb(base_uri + "&count_only=true");
                if (result != null && result.Length > 0)
                {
                    var str       = XElement.Parse(result);
                    var resultXML = str.Elements("total_items").Where(x => !(x.Value.Equals(""))).ToList();
                    if (resultXML != null && resultXML.Count > 0 && resultXML[0] != null)
                    {
                        resXML = resultXML[0].Value.ToString();
                    }
                }

                //result = GetResponseFromWeb(base_uri + "&page_size=" + resXML);
                result = GetResponseFromWeb(base_uri + "&page_size=20");
                XmlRootAttribute xRoot = new XmlRootAttribute();
                xRoot.ElementName = "search";
                xRoot.IsNullable  = true;
                serializer        = new XmlSerializer(typeof(SearchEventResp), xRoot);
                if (result != null && result.Length > 0)
                {
                    var str = XElement.Parse(result);
                    using (TextReader reader = new StringReader(result.ToString()))
                    {
                        object obj = serializer.Deserialize(reader);
                        resultEvent = (SearchEventResp)obj;
                        reader.Close();
                    }
                }

                if (resultEvent != null)
                {
                    var json = new JavaScriptSerializer().Serialize(resultEvent);
                    result = json.ToString();
                }
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
            return(result);
        }