public async Task <(SimklHistory history, BaseItemDto item)> getHistoryFromFileName(BaseItemDto item, bool fullpath = true) { string fname = fullpath?item.Path:Path.GetFileName(item.Path); SearchFileResponse mo = await getFromFile(fname); SimklHistory history = new SimklHistory(); if (item.IsMovie == true || item.Type == "Movie") { if (mo.type != "movie") { throw new InvalidDataException("type != movie (" + mo.type + ")"); } item.Name = mo.movie.title; item.ProductionYear = mo.movie.year; history.movies.Add(mo.movie); } else if (item.IsSeries == true || item.Type == "Episode") { if (mo.type != "episode") { throw new InvalidDataException("type != episode (" + mo.type + ")"); } item.Name = mo.episode.title; item.SeriesName = mo.show.title; item.IndexNumber = mo.episode.episode; item.ParentIndexNumber = mo.episode.season; item.ProductionYear = mo.show.year; history.episodes.Add(mo.episode); } return(history, item); }
void GetFileTest() { SearchFileRequest searchFileRequest = new SearchFileRequest() { ChannelNo = 0, Beg = new SystemTimeInfo(2017, 7, 4, 8, 0, 0), End = new SystemTimeInfo(2017, 7, 4, 13, 0, 0), Type = 0 }; SearchFileResponse searchFileResponse = m_howell5198client.SearchFile(searchFileRequest); if (searchFileResponse == null) { Console.WriteLine("SearchFile error"); return; } Console.WriteLine("searchFileResponse: filecount:{0}", searchFileResponse.FileInfos.Length); if (searchFileResponse.FileInfos.Length > 0)//搜索到录像文件的话 { GetFileInfoRequest getFileInfoRequest = new GetFileInfoRequest(); getFileInfoRequest.ChannelNo = searchFileResponse.FileInfos[0].ChannelNo; getFileInfoRequest.Beg = searchFileResponse.FileInfos[0].Beg; getFileInfoRequest.End = searchFileResponse.FileInfos[0].End; GetFileInfoResponse getFileInfoResponse = m_howell5198client.GetFileInfo(getFileInfoRequest); if (getFileInfoResponse == null) { Console.WriteLine("GetFileInfo error"); return; } Console.WriteLine("getFileInfoResponse: FileFormatType:{0}", getFileInfoResponse.FileFormatType); //构建HW头 HW_MediaInfo media = new HW_MediaInfo(); media.Dvr_version = getFileInfoResponse.FileFormatType; media.Adec_code = getFileInfoResponse.Audio_dec; media.Vdec_code = getFileInfoResponse.Video_dec; media.Reserved[0] = (8 << 24) + (8 << 16) + (1 << 8) + 0;//au_bits+au_sampleau_sample+au_channel+reserve GetFileRequest getFileRequest = new GetFileRequest(); getFileRequest.ChannelNo = searchFileResponse.FileInfos[0].ChannelNo; getFileRequest.Beg = searchFileResponse.FileInfos[0].Beg; getFileRequest.End = searchFileResponse.FileInfos[0].End; getFileRequest.Type = searchFileResponse.FileInfos[0].Type; Howell5198FileStream filestream = m_howell5198client.GetFile(getFileRequest); filestream.FileDataReceived += howell5198client_FileDataReceived; filestream.StartReceive(); Thread.Sleep(1000); filestream.StopReceive(); } }