/// <summary> /// Update program and return dto /// </summary> /// <param name="programDto"></param> /// <returns></returns> public ProgramDto UpdateProgramDto(ProgramDto programDto) { logger.Info("Update program {@programData} and return dto", programDto); Program updatedProgram = UpdateProgram(programDto); return(Converters.ProgramsConverter.ProgramToProgramDto(updatedProgram)); }
public static IEnumerable <ProgramDto> AsDto(this Program program) { var programs = new List <ProgramDto>(); var programDto = new ProgramDto { Category = program.Category, Description = program.Description, Id = program.Id, Leaders = program.Leaders, Photo = program.Photo, Sounds = program.Sounds, AntenaId = program.AntenaId, ArticleLink = program.ArticleLink, IsActive = program.IsActive, StartHour = program.StartHour, StopHour = program.StopHour, Title = program.Description }; programs.Add(programDto); var subPrograms = program.Subprograms.AsDto(program); programs.AddRange(subPrograms); return(programs); }
public IHttpActionResult PostCreateProgram(ProgramDto programDto) { logger.Info("Create program {@programData}", programDto); var createdProgram = programs.CreateProgramDto(programDto); return(CreatedAtRoute("GetProgram", new { programId = createdProgram.ProgramId }, createdProgram)); }
private void ExecuteToggleActiveIndicator(ProgramDto programDto) { var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher(); requestDispatcher.Add(new SaveDtoRequest <ProgramDto> { DataTransferObject = programDto }); requestDispatcher.ProcessRequests(HandleSaveProgramCompleted, HandleSaveProgramException); }
private void ExecuteShowProgramEditCommand(ProgramDto programDto) { _popupService.ShowPopup( "EditProgramView", "Edit", "Edit Program", new[] { new KeyValuePair <string, string> ("ProgramKey", programDto.Key.ToString()) }, true); }
public IHttpActionResult UpdateProgram(int programId, ProgramDto programDto) { logger.Info("Update program {@programId} {@programData}", programId, programDto); if (programId != programDto.ProgramId) { return(BadRequest("Id mismatch")); } ProgramDto updatedProgram = programs.UpdateProgramDto(programDto); return(Ok(updatedProgram)); }
private void ExecuteDeleteProgramCommand(ProgramDto programDto) { var result = _userDialogService.ShowDialog( "Are you sure you want to delete?", "Confirmation", UserDialogServiceOptions.OkCancel); if (result == UserDialogServiceResult.Ok) { var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher(); requestDispatcher.Add(new DeleteProgramRequest { ProgramKey = programDto.Key, AgencyKey = _agencyKey }); IsLoading = true; requestDispatcher.ProcessRequests(HandleDeleteProgramCompleted, HandleDeleteProgramException); } }
public IHttpActionResult CreateProgram(ProgramDto programDto) { if (!ModelState.IsValid) { return(BadRequest()); } var program = Mapper.Map <ProgramDto, Program>(programDto); this._context.Programs.Add(program); this._context.SaveChanges(); programDto.Id = program.Id; return(Created(new Uri(Request.RequestUri + "/" + program.Id), programDto)); }
public async Task <IActionResult> GetProgram([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var program = await _context.Programs .Include(p => p.ProgramExercises) .ThenInclude(pe => pe.Exercise) .SingleOrDefaultAsync(m => m.Id == id); if (program == null) { return(NotFound()); } //map to DTO var programDto = new ProgramDto { Name = program.Name, ApplicationUser = program.ApplicationUser, ApplicationUserId = program.ApplicationUserId, Id = program.Id, Creater = program.Creater, CreateDate = program.CreateDate, Category = program.Category, Exercises = new List <ExerciseDto>() }; foreach (var pe in program.ProgramExercises) { programDto.Exercises.Add(new ExerciseDto { Id = pe.Exercise.Id, Name = pe.Exercise.Name, Sets = pe.Exercise.Sets, Description = pe.Exercise.Description, Time = pe.Exercise.Time, IsRepetition = pe.Exercise.IsRepetition, Repetitions = pe.Exercise.Repetitions }); } return(Ok(programDto)); }
public IHttpActionResult UpdateProgram(int id, ProgramDto programDto) { if (!ModelState.IsValid) { return(BadRequest()); } var programInDb = this._context.Programs.SingleOrDefault(p => p.Id == id); if (programInDb == null) { return(NotFound()); } Mapper.Map(programDto, programInDb); this._context.SaveChanges(); return(Ok()); }
public IHttpActionResult CreateClassRoomProgram(ProgramDto dto) { var userData = IdentityHelper.GetLoggedInUser(RequestContext); logger.Info("Create Program {@programData} by {@userData}", dto, userData); ProgramDto createdProgram = service.CreateProgram(dto); var link = Url.Route("DefaultApi", new { controller = "GetClassRoomProgram", courseId = createdProgram.CourseId, teacherId = createdProgram.TeacherId, classRoomId = createdProgram.ClassRoomId }); Uri.TryCreate(link, UriKind.Absolute, out Uri uri); logger.Info("Program {@programId} created at route {@route}", createdProgram.ClassRoomId, link); return(Created(uri, createdProgram)); }
private void InitData() { //初始化查询条件 List <RoleTypeDto> roleTypeList = new List <RoleTypeDto>(); DataSet ds = service.SearchAllRoleType(); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { RoleTypeDto roleType = new RoleTypeDto(); roleType.RoleTypeCode = Convert.ToString(ds.Tables[0].Rows[i]["RoleTypeCode"]); roleType.RoleTypeName = Convert.ToString(ds.Tables[0].Rows[i]["RoleTypeName"]); roleTypeList.Add(roleType); } } List <ProgramDto> programList = new List <ProgramDto>(); ds = service.SearchAllProgram(); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ProgramDto programType = new ProgramDto(); programType.ProgramCode = Convert.ToString(ds.Tables[0].Rows[i]["ProgramCode"]); programType.ProgramName = Convert.ToString(ds.Tables[0].Rows[i]["ProgramName"]); programList.Add(programType); } } CommonHandler.SetComboBoxEditItems(cboRoleType, roleTypeList, "RoleTypeName", "RoleTypeCode"); CommonHandler.BindComboBoxItems <RoleTypeDto>(cboRoleTypeInGrid, roleTypeList, "RoleTypeName", "RoleTypeCode"); CommonHandler.BindComboBoxItems <ProgramDto>(cboProgram, programList, "ProgramName", "ProgramCode"); grcRoleTypeProgram.DataSource = new List <RoleTypeProgramDto>(); }
public ProgramDto CreateProgram(ProgramDto program) { Program newProgram = programsService.Value.CreateProgram(program); return(Converters.ProgramsConverter.ProgramToProgramDto(newProgram)); }
void CreateBizMenuList() { ToolStripMenuItem mainMenu = null; ToolStripMenuItem subMenu = null; #region 设置菜单 mainMenu = new ToolStripMenuItem("现场"); subMenu = new ToolStripMenuItem("区域管理", null, new EventHandler(menu_Click)); subMenu.Tag = "Area"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("经销商", null, new EventHandler(menu_Click)); subMenu.Tag = "Shop"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("执行文件", null, new EventHandler(menu_Click)); subMenu.Tag = "Subjects"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("得分登记", null, new EventHandler(menu_Click)); subMenu.Tag = "AnswerSubjects"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("申请复审", null, new EventHandler(menu_Click)); subMenu.Tag = ""; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("查看复审意见", null, new EventHandler(menu_Click)); subMenu.Tag = "ExecuteTeamAlter"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("上传数据", null, new EventHandler(menu_Click)); subMenu.Tag = "PadToDB"; mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); mainMenu = new ToolStripMenuItem("复审"); subMenu = new ToolStripMenuItem("复审", null, new EventHandler(menu_Click)); subMenu.Tag = "AnswerRecheck"; mainMenu.DropDownItems.Add(subMenu); //subMenu = new ToolStripMenuItem("资料类", null, new EventHandler(menu_Click)); subMenu.Tag = "AnswerRecheck"; //mainMenu.DropDownItems.Add(subMenu); //subMenu = new ToolStripMenuItem("交叉类", null, new EventHandler(menu_Click)); subMenu.Tag = "AnswerRecheck"; //mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); mainMenu = new ToolStripMenuItem("查询"); subMenu = new ToolStripMenuItem("顾问检查结果查询", null, new EventHandler(menu_Click)); subMenu.Tag = "SalesContantReport"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("顾问检查结果查询_横向", null, new EventHandler(menu_Click)); subMenu.Tag = "SalesContantReport1"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("检查标准结果统计", null, new EventHandler(menu_Click)); subMenu.Tag = "InspectionStandardReportSearch"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("得分查询", null, new EventHandler(menu_Click)); subMenu.Tag = "ShopScoreSearch"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("用户自定义查询", null, new EventHandler(menu_Click)); subMenu.Tag = "UserDefineSearch"; mainMenu.DropDownItems.Add(subMenu); //subMenu = new ToolStripMenuItem("得分率查询", null, new EventHandler(menu_Click)); subMenu.Tag = "RateSearch"; //mainMenu.DropDownItems.Add(subMenu); //subMenu = new ToolStripMenuItem("加权得分率查询", null, new EventHandler(menu_Click)); subMenu.Tag = "WeightRateSearch"; //mainMenu.DropDownItems.Add(subMenu); //subMenu = new ToolStripMenuItem("最终加权得分率查询", null, new EventHandler(menu_Click)); subMenu.Tag = "FinallyScoreRate"; //mainMenu.DropDownItems.Add(subMenu); //subMenu = new ToolStripMenuItem("复审修改查询", null, new EventHandler(menu_Click)); subMenu.Tag = "AnswerScoreLog"; //mainMenu.DropDownItems.Add(subMenu); //subMenu = new ToolStripMenuItem("往期得分查询", null, new EventHandler(menu_Click)); subMenu.Tag = ""; //mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("复审进度查询", null, new EventHandler(menu_Click)); subMenu.Tag = "ReCheckProcess"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("复审错误类型统计", null, new EventHandler(menu_Click)); subMenu.Tag = "ReCheckDtlErrorSum"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("第三方仲裁", null, new EventHandler(menu_Click)); subMenu.Tag = "ArbitrationTeam"; //mainMenu.DropDownItems.Add(subMenu); //subMenu = new ToolStripMenuItem("第三方仲裁", null, new EventHandler(menu_Click)); subMenu.Tag = "ArbitrationTeam"; mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); mainMenu = new ToolStripMenuItem("设置"); //subMenu = new ToolStripMenuItem("数据导入/导出", null, new EventHandler(menu_Click)); subMenu.Tag = "DataTrans"; //mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("数据导出", null, new EventHandler(menu_Click)); subMenu.Tag = ""; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("用户名设置", null, new EventHandler(menu_Click)); subMenu.Tag = "UserInfo"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("权限-页面设置", null, new EventHandler(menu_Click)); subMenu.Tag = "RoleTypeProgram"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("经销商A/B卷设置", null, new EventHandler(menu_Click)); subMenu.Tag = "ShopSubjectType"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("删除错误分数", null, new EventHandler(menu_Click)); subMenu.Tag = "DeleteAnswerScore"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("不匹配数据设置", null, new EventHandler(menu_Click)); subMenu.Tag = "AnswerErrorData"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("执行文件修改", null, new EventHandler(menu_Click)); subMenu.Tag = ""; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("图片上传设置", null, new EventHandler(menu_Click)); subMenu.Tag = ""; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("Pad数据上传", null, new EventHandler(menu_Click)); subMenu.Tag = "PadToDB"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("单店报告生成", null, new EventHandler(menu_Click)); subMenu.Tag = "SingleShopReport"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("单店报告生成_每周", null, new EventHandler(menu_Click)); subMenu.Tag = "SingleShopReport_Week"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("皮肤"); foreach (DevExpress.Skins.SkinContainer skin in DevExpress.Skins.SkinManager.Default.Skins) { ToolStripMenuItem skinMenu = new ToolStripMenuItem(skin.SkinName, null, new EventHandler(skin_Click)); subMenu.DropDownItems.Add(skinMenu); } mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); mainMenu = new ToolStripMenuItem("报告"); //subMenu = new ToolStripMenuItem("数据导入", null, new EventHandler(menu_Click)); subMenu.Tag = "DataTrans"; //mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); mainMenu = new ToolStripMenuItem("公告"); subMenu = new ToolStripMenuItem("公告管理", null, new EventHandler(menu_Click)); subMenu.Tag = "NoticeSearch"; mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); mainMenu = new ToolStripMenuItem("案例库"); subMenu = new ToolStripMenuItem("特殊案例申报", null, new EventHandler(menu_Click)); subMenu.Tag = "SpecialCaseReg"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("特殊案例查询", null, new EventHandler(menu_Click)); subMenu.Tag = "SpecialCaseSearch"; mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); #endregion #region 照权限设置菜单 List <ProgramDto> programDtoList = new List <ProgramDto>(); if (_userInfoDto.IsNetWork) { localhost.Service webService = new localhost.Service(); DataSet ds = webService.SearchCurrentUserProgram(_userInfoDto.RoleType); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ProgramDto programDto = new ProgramDto(); programDto.ProgramCode = Convert.ToString(ds.Tables[0].Rows[i]["ProgramCode"]); programDto.ProgramName = Convert.ToString(ds.Tables[0].Rows[i]["ProgramName"]); programDtoList.Add(programDto); } } } else { //LocalService webService = new LocalService(); localhost.Service webService = new localhost.Service(); webService.Url = "http://192.168.1.99/XHX.YiQiServer/service.asmx"; DataSet ds = webService.SearchCurrentUserProgram(_userInfoDto.RoleType); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ProgramDto programDto = new ProgramDto(); programDto.ProgramCode = Convert.ToString(ds.Tables[0].Rows[i]["ProgramCode"]); programDto.ProgramName = Convert.ToString(ds.Tables[0].Rows[i]["ProgramName"]); programDtoList.Add(programDto); } } } foreach (ToolStripMenuItem mainMenuitem in ms.Items) { bool haveMainMenuRole = false; foreach (ToolStripMenuItem menuItem in mainMenuitem.DropDownItems) { bool haveSubMenuRole = false; foreach (ProgramDto item in programDtoList) { if (menuItem.Tag == null || (menuItem.Tag.ToString() != "" && menuItem.Tag.ToString().Equals(item.ProgramCode))) { haveMainMenuRole = true; haveSubMenuRole = true; break; } } if (!haveSubMenuRole) { menuItem.Visible = false; } } if (!haveMainMenuRole) { mainMenuitem.Visible = false; } } #endregion }
/// <summary> /// Get all takings for program /// </summary> /// <param name="programDto"></param> /// <returns></returns> public IEnumerable <Taking> GetAllTakingsForProgram(ProgramDto programDto) { logger.Info("Get all takings for program {@programData}", programDto); return(GetAllTakingsForProgram(programDto.CourseId, programDto.TeacherId, programDto.ClassRoomId)); }
/// <summary> /// Get program for a given dto /// </summary> /// <param name="programDto"></param> /// <returns></returns> public Program GetProgram(ProgramDto programDto) { logger.Info("Get program {@programDto}", programDto); return(GetProgram(programDto.CourseId, programDto.TeacherId, programDto.ClassRoomId)); }
/// <summary> /// Create program from dto /// </summary> /// <param name="programDto"></param> /// <returns></returns> public Program CreateProgram(ProgramDto programDto) { logger.Info("Create program {@programDto}", programDto); return(CreateProgram(programDto.CourseId, programDto.TeacherId, programDto.ClassRoomId, programDto.WeeklyHours)); }
public ActionResult UpdateProgram([FromBody] ProgramDto program) { this.programService.UpdateProgram(program); return(this.Ok()); }
/// <summary> /// Create program and return dto /// </summary> /// <param name="programDto"></param> /// <returns></returns> public ProgramDto CreateProgramDto(ProgramDto programDto) { Program program = CreateProgram(programDto); return(Converters.ProgramsConverter.ProgramToProgramDto(program)); }
/// <summary> /// Update program /// </summary> /// <param name="programDto"></param> /// <returns></returns> public Program UpdateProgram(ProgramDto programDto) { return(UpdateProgram(programDto.CourseId, programDto.TeacherId, programDto.ClassRoomId, programDto.WeeklyHours)); }
/// <summary> /// Delete program /// </summary> /// <param name="programDto"></param> /// <returns></returns> public Program DeleteProgram(ProgramDto programDto) { return(DeleteProgram(programDto.CourseId, programDto.TeacherId, programDto.ClassRoomId)); }
public ProgramDto UpdateProgram(ProgramDto program) { Program updatedProgram = programsService.Value.UpdateProgram(program); return(Converters.ProgramsConverter.ProgramToProgramDto(updatedProgram)); }
void CreateBizMenuList() { ToolStripMenuItem mainMenu = null; ToolStripMenuItem subMenu = null; #region 设置菜单 mainMenu = new ToolStripMenuItem("Admin设置"); subMenu = new ToolStripMenuItem("期号管理", null, new EventHandler(menu_Click)); subMenu.Tag = "Projects"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("职位管理", null, new EventHandler(menu_Click)); subMenu.Tag = "Position"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("区域管理", null, new EventHandler(menu_Click)); subMenu.Tag = "Area"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("经销商管理", null, new EventHandler(menu_Click)); subMenu.Tag = "Shop"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("上传数据", null, new EventHandler(menu_Click)); subMenu.Tag = "PadToDB"; mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); mainMenu = new ToolStripMenuItem("查询"); subMenu = new ToolStripMenuItem("流失率查询", null, new EventHandler(menu_Click)); subMenu.Tag = "ShopUserLossRate"; mainMenu.DropDownItems.Add(subMenu); subMenu = new ToolStripMenuItem("经销商人员信息", null, new EventHandler(menu_Click)); subMenu.Tag = "ShopUserMng"; mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); mainMenu = new ToolStripMenuItem("设置"); subMenu = new ToolStripMenuItem("皮肤"); foreach (DevExpress.Skins.SkinContainer skin in DevExpress.Skins.SkinManager.Default.Skins) { ToolStripMenuItem skinMenu = new ToolStripMenuItem(skin.SkinName, null, new EventHandler(skin_Click)); subMenu.DropDownItems.Add(skinMenu); } mainMenu.DropDownItems.Add(subMenu); ms.Items.Add(mainMenu); #endregion #region 照权限设置菜单 List <ProgramDto> programDtoList = new List <ProgramDto>(); if (_userInfoDto.IsNetWork) { localhost.Service webService = new localhost.Service(); DataSet ds = webService.SearchCurrentUserProgram(_userInfoDto.RoleType); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ProgramDto programDto = new ProgramDto(); programDto.ProgramCode = Convert.ToString(ds.Tables[0].Rows[i]["ProgramCode"]); programDto.ProgramName = Convert.ToString(ds.Tables[0].Rows[i]["ProgramName"]); programDtoList.Add(programDto); } } } else { LocalService webService = new LocalService(); DataSet ds = webService.SearchCurrentUserProgram(_userInfoDto.RoleType); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ProgramDto programDto = new ProgramDto(); programDto.ProgramCode = Convert.ToString(ds.Tables[0].Rows[i]["ProgramCode"]); programDto.ProgramName = Convert.ToString(ds.Tables[0].Rows[i]["ProgramName"]); programDtoList.Add(programDto); } } } foreach (ToolStripMenuItem mainMenuitem in ms.Items) { bool haveMainMenuRole = false; foreach (ToolStripMenuItem menuItem in mainMenuitem.DropDownItems) { bool haveSubMenuRole = false; foreach (ProgramDto item in programDtoList) { if (menuItem.Tag == null || (menuItem.Tag.ToString() != "" && menuItem.Tag.ToString().Equals(item.ProgramCode))) { haveMainMenuRole = true; haveSubMenuRole = true; break; } } if (!haveSubMenuRole) { menuItem.Visible = false; } } if (!haveMainMenuRole) { mainMenuitem.Visible = false; } } #endregion }
public void UpdateProgram(ProgramDto program) => this.programs.Update(this.mapper.Map <Program>(program));
public ProgramDto DeleteProgram(ProgramDto program) { Program deletedProgram = programsService.Value.DeleteProgram(program); return(Converters.ProgramsConverter.ProgramToProgramDto(deletedProgram)); }
public static Track AsEntity(this ProgramDto program) { return(new Track(program.AntenaId, program.ArticleLink, program.Category, program.Description, program.Id, program.Title, program.IsActive, program.Leaders, program.Photo, program.Sounds, program.StartHour, program.StopHour)); }
private ProgramInfo GetProgram(string channelId, ProgramDto programInfo, ProgramDetailsDto details) { if (programInfo.AirDateTime == null) { return(null); } var startAt = programInfo.AirDateTime.Value; var endAt = startAt.AddSeconds(programInfo.Duration); var audioType = ProgramAudio.Stereo; var programId = programInfo.ProgramId ?? string.Empty; string newID = programId + "T" + startAt.Ticks + "C" + channelId; if (programInfo.AudioProperties.Count != 0) { if (programInfo.AudioProperties.Contains("atmos", StringComparison.OrdinalIgnoreCase)) { audioType = ProgramAudio.Atmos; } else if (programInfo.AudioProperties.Contains("dd 5.1", StringComparison.OrdinalIgnoreCase)) { audioType = ProgramAudio.DolbyDigital; } else if (programInfo.AudioProperties.Contains("dd", StringComparison.OrdinalIgnoreCase)) { audioType = ProgramAudio.DolbyDigital; } else if (programInfo.AudioProperties.Contains("stereo", StringComparison.OrdinalIgnoreCase)) { audioType = ProgramAudio.Stereo; } else { audioType = ProgramAudio.Mono; } } string episodeTitle = null; if (details.EpisodeTitle150 != null) { episodeTitle = details.EpisodeTitle150; } var info = new ProgramInfo { ChannelId = channelId, Id = newID, StartDate = startAt, EndDate = endAt, Name = details.Titles[0].Title120 ?? "Unknown", OfficialRating = null, CommunityRating = null, EpisodeTitle = episodeTitle, Audio = audioType, // IsNew = programInfo.@new ?? false, IsRepeat = programInfo.New == null, IsSeries = string.Equals(details.EntityType, "episode", StringComparison.OrdinalIgnoreCase), ImageUrl = details.PrimaryImage, ThumbImageUrl = details.ThumbImage, IsKids = string.Equals(details.Audience, "children", StringComparison.OrdinalIgnoreCase), IsSports = string.Equals(details.EntityType, "sports", StringComparison.OrdinalIgnoreCase), IsMovie = IsMovie(details), Etag = programInfo.Md5, IsLive = string.Equals(programInfo.LiveTapeDelay, "live", StringComparison.OrdinalIgnoreCase), IsPremiere = programInfo.Premiere || (programInfo.IsPremiereOrFinale ?? string.Empty).IndexOf("premiere", StringComparison.OrdinalIgnoreCase) != -1 }; var showId = programId; if (!info.IsSeries) { // It's also a series if it starts with SH info.IsSeries = showId.StartsWith("SH", StringComparison.OrdinalIgnoreCase) && showId.Length >= 14; } // According to SchedulesDirect, these are generic, unidentified episodes // SH005316560000 var hasUniqueShowId = !showId.StartsWith("SH", StringComparison.OrdinalIgnoreCase) || !showId.EndsWith("0000", StringComparison.OrdinalIgnoreCase); if (!hasUniqueShowId) { showId = newID; } info.ShowId = showId; if (programInfo.VideoProperties != null) { info.IsHD = programInfo.VideoProperties.Contains("hdtv", StringComparison.OrdinalIgnoreCase); info.Is3D = programInfo.VideoProperties.Contains("3d", StringComparison.OrdinalIgnoreCase); } if (details.ContentRating != null && details.ContentRating.Count > 0) { info.OfficialRating = details.ContentRating[0].Code.Replace("TV", "TV-", StringComparison.Ordinal) .Replace("--", "-", StringComparison.Ordinal); var invalid = new[] { "N/A", "Approved", "Not Rated", "Passed" }; if (invalid.Contains(info.OfficialRating, StringComparison.OrdinalIgnoreCase)) { info.OfficialRating = null; } } if (details.Descriptions != null) { if (details.Descriptions.Description1000 != null && details.Descriptions.Description1000.Count > 0) { info.Overview = details.Descriptions.Description1000[0].Description; } else if (details.Descriptions.Description100 != null && details.Descriptions.Description100.Count > 0) { info.Overview = details.Descriptions.Description100[0].Description; } } if (info.IsSeries) { info.SeriesId = programId.Substring(0, 10); info.SeriesProviderIds[MetadataProvider.Zap2It.ToString()] = info.SeriesId; if (details.Metadata != null) { foreach (var metadataProgram in details.Metadata) { var gracenote = metadataProgram.Gracenote; if (gracenote != null) { info.SeasonNumber = gracenote.Season; if (gracenote.Episode > 0) { info.EpisodeNumber = gracenote.Episode; } break; } } } } if (details.OriginalAirDate != null) { info.OriginalAirDate = details.OriginalAirDate; info.ProductionYear = info.OriginalAirDate.Value.Year; } if (details.Movie != null) { if (!string.IsNullOrEmpty(details.Movie.Year) && int.TryParse(details.Movie.Year, out int year)) { info.ProductionYear = year; } } if (details.Genres != null) { info.Genres = details.Genres.Where(g => !string.IsNullOrWhiteSpace(g)).ToList(); info.IsNews = details.Genres.Contains("news", StringComparison.OrdinalIgnoreCase); if (info.Genres.Contains("children", StringComparison.OrdinalIgnoreCase)) { info.IsKids = true; } } return(info); }
public static IEnumerable <ProgramDto> AsDto(this Program program) { var programs = new List <ProgramDto>(); var subprograms = program.Subprograms.ToList(); var subprogramsDto = subprograms.AsDto(program).ToList(); if (subprogramsDto.Any()) { var first = subprogramsDto.First(); if (first.StartHour < program.StopHour) { var opening = new ProgramDto { Category = program.Category, Description = program.Description, Id = program.Id, Leaders = program.Leaders, Photo = program.Photo, Sounds = program.Sounds, AntenaId = program.AntenaId, ArticleLink = program.ArticleLink, IsActive = program.IsActive, StartHour = program.StartHour, StopHour = first.StartHour, Title = program.Description }; programs.Add(opening); } var subs = subprograms.OrderBy(s => s.StopHour); programs.AddRange(subs.AsDto(program)); var last = subprogramsDto.Last(); if (last.StopHour >= program.StopHour) { return(programs); } var closing = new ProgramDto { Category = program.Category, Description = program.Description, Id = program.Id, Leaders = program.Leaders, Photo = program.Photo, Sounds = program.Sounds, AntenaId = program.AntenaId, ArticleLink = program.ArticleLink, IsActive = program.IsActive, StartHour = last.StopHour, StopHour = program.StopHour, Title = program.Description }; programs.Add(closing); } else { programs.Add(new ProgramDto { Category = program.Category, Description = program.Description, Id = program.Id, Leaders = program.Leaders, Photo = program.Photo, Sounds = program.Sounds, AntenaId = program.AntenaId, ArticleLink = program.ArticleLink, IsActive = program.IsActive, StartHour = program.StartHour, StopHour = program.StopHour, Title = program.Description }); } return(programs); }