Example #1
0
        /// <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);
        }