Ejemplo n.º 1
0
        public string SaveUrl(RequestUrlModel requestParams)
        {
            var fileData = GetData();
            ResponseUrlModel response;

            if (fileData == null)
            {
                fileData = new ResponseUrlModel();
            }
            response = new ResponseUrlModel();
            switch (requestParams.Type)
            {
            case "organization":
                response = new ResponseUrlModel(requestParams.Values, fileData.premise, fileData.building, fileData.feedback);
                break;

            case "premise":
                response = new ResponseUrlModel(fileData.organization, requestParams.Values, fileData.building, fileData.feedback);
                break;

            case "building":
                response = new ResponseUrlModel(fileData.organization, fileData.premise, requestParams.Values, fileData.feedback);
                break;

            case "feedback":
                response = new ResponseUrlModel(fileData.organization, fileData.premise, fileData.building, requestParams.Values);
                break;
            }
            string json = JsonConvert.SerializeObject(response);

            File.WriteAllText(HttpContext.Current.Server.MapPath("~\\powerBI.json"), json);
            return("Power BI URL saved successfully");
        }
Ejemplo n.º 2
0
        public async Task <ResponseUrlModel> GetAllStream()
        {
            try
            {
                ResponseUrlModel eventToResponse = new ResponseUrlModel();
                eventToResponse.EventList     = new List <EventModel>();
                eventToResponse.HoraSolicitud = System.DateTime.Now;

                var httpClientEvents          = GetClientHttp();
                var httpResponseMessageEvents = await httpClientEvents.GetAsync(Constants.ApiEvents);

                int    IdStreamStatus = (int)StreamStatusEnum.OnAirBroadcast;
                string StreamStatus   = $"av:stream_status:{IdStreamStatus}";

                if (httpResponseMessageEvents.IsSuccessStatusCode)
                {
                    var content = await httpResponseMessageEvents.Content.ReadAsStringAsync();

                    List <Event> eventsList = JsonSerializer.Deserialize <List <Event> >(content);
                    eventsList = eventsList.Where(c => c.contents.Any(d => d.streams.Any(e => e.stream_status.id == StreamStatus))).ToList();

                    foreach (Event events in eventsList)
                    {
                        EventModel eventmodel = Converter.ConvertEventEntityToModel(events);
                        eventmodel.streams = new List <StreamModel>();

                        List <Streams> listaStreams = new List <Streams>();
                        listaStreams = events.contents.SelectMany(a => a.streams).ToList();

                        foreach (Streams streams in listaStreams)
                        {
                            StreamModel streamModel = new StreamModel();
                            streamModel.UrlList = new List <KeyValuePair <string, string> >();
                            streamModel.id      = streams.id;

                            foreach (string typeStream in Constants.TypesStreams)
                            {
                                var    httpClientStream = GetClientHttp();
                                string parameters       = $"/{streams.id}/{typeStream}";
                                string url = string.Concat(Constants.ApiStreams, parameters);

                                var httpResponseMessageStream = await httpClientStream.GetAsync(url);

                                if (httpResponseMessageStream.IsSuccessStatusCode)
                                {
                                    var contentStream = await httpResponseMessageStream.Content.ReadAsStringAsync();

                                    Stream stream = JsonSerializer.Deserialize <Stream>(contentStream);

                                    string urlComplete = typeStream == "rtmp" ?  string.Concat(stream.url, stream.stream_name) : stream.url;
                                    streamModel.UrlList.Add(new KeyValuePair <string, string>(typeStream, urlComplete));
                                }
                            }
                            eventmodel.streams.Add(streamModel);
                        }
                        eventToResponse.EventList.Add(eventmodel);
                    }
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine(httpResponseMessageEvents.ToString());
                    return(null);
                }
                return(eventToResponse);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }