/// <summary> /// Получение темы лица по ID /// </summary> /// <param name="id">ID</param> /// <param name="name">Наименование сущности</param> /// <returns>Тема лица</returns> public override object GetObjectById(string id, string name = "") { if (!string.IsNullOrEmpty(id)) { var url = ""; if (id.IndexOf('[') != -1 || id.IndexOf('[') != -1) { var jsonSerializer = new JavaScriptSerializer(); var items = jsonSerializer.Deserialize <List <JSONModel> >(id); id = string.Join(",", items.Select(t => t.value)); url = string.Format(@"{0}?themeId={1}&typesids={2}&type=multiply", Config.v4person_themes, id, string.Join(",", PersonTypesList.Select(t => t.TypeID).Distinct())); } else { url = string.Format(@"{0}?themeId={1}&typesids={2}&type=single", Config.v4person_themes, id, string.Join(",", PersonTypesList.Select(t => t.TypeID).Distinct())); } var personTypesDataTable = DBManager.GetData(SQLQueries.SELECT_ТипыЛиц_Темы, Config.DS_person, CommandType.Text, new Dictionary <string, object> { { "@id", id } }); if (personTypesDataTable != null && personTypesDataTable.Rows != null && personTypesDataTable.Rows.Count > 1) { var tempListPersonTypes = (from DataRow type in personTypesDataTable.Rows select new PersonType(type)).ToList(); if (tempListPersonTypes.Select(t => t.ThemeID.Id).Distinct().Count() != tempListPersonTypes.Count()) { OpenPopup(url); } else { PersonTypesList = tempListPersonTypes; RenderFields(); } return(null); } if (personTypesDataTable != null && personTypesDataTable.Rows != null && !PersonTypesList.Any(t => t.ThemeID.Id == personTypesDataTable.Rows[0]["КодТемыЛица"].ToString())) { PersonTypesList.Add(new PersonType(personTypesDataTable.Rows[0])); } } RenderFields(); return(null); //if (!string.IsNullOrEmpty(name)) // return new PersonTheme() { Id = id, Name = name }; //return new PersonTheme(id); }
/// <summary> /// Получение списка тем лица /// </summary> /// <returns>Список</returns> public List <PersonTheme> GetPersonsTypes() { var personThemesIDs = string.Join(",", PersonTypesList.Select(t => t.ThemeID.Id.ToString()).Distinct()); URLAdvancedSearch = string.Format(@"{0}{1}{2}", Config.person_types_search, "?selectedid=", personThemesIDs); var dt = DBManager.GetData(SQLGetText(true), Config.DS_person); var persons = dt.AsEnumerable().Select(dr => new PersonTheme { Id = dr.Field <int>(Filter.KeyField).ToString(CultureInfo.InvariantCulture), Name = dr.Field <string>(Filter.NameField) }).ToList(); return(persons); }