Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion VkNet/Abstractions/Category/Async/IGroupsCategoryAsync.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Task<VkCollection<Group>> GetAsync(GroupsGetParams @params,
/// city, country, place, description,
/// wiki_page, members_count, counters, start_date, finish_date, can_post,
/// can_see_all_posts, activity, status,
/// contacts, links, fixed_post, verified, site,ban_info.
/// contacts, links, fixed_post, verified, site, ban_info, addresses.
/// Обратите внимание, для получения некоторых полей требуется право доступа
/// groups. Подробнее см. описание полей
/// объекта group список строк, разделенных через запятую (Список строк,
Expand Down
8 changes: 7 additions & 1 deletion VkNet/Enums/Filters/GroupsFields.cs
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,11 @@ public sealed class GroupsFields : MultivaluedFilter<GroupsFields>
/// </summary>
public static readonly GroupsFields BanInfo = RegisterPossibleValue(1 << 20, "ban_info");

/// <summary>
/// Для получения дополнительного поля Group.Addresses
/// </summary>
public static readonly GroupsFields Addresses = RegisterPossibleValue(1 << 21, "addresses");

/// <summary>
/// Для получения всех дополнительных полей.
/// </summary>
Expand All @@ -134,7 +139,8 @@ public sealed class GroupsFields : MultivaluedFilter<GroupsFields>
|FixedPostId
|IsVerified
|Site
|BanInfo;
|BanInfo
|Addresses;

/// <summary>
/// Для получения всех дополнительных полей (оказалаось, что некоторые поля
Expand Down
56 changes: 56 additions & 0 deletions VkNet/Model/Group/Address.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
using System;
using System.Diagnostics;
using Newtonsoft.Json;
using VkNet.Enums.StringEnums;

namespace VkNet.Model;

/// <summary>
/// Информация об адресе сообщества.
/// </summary>
[DebuggerDisplay(value: "[{Id}] {Title}")]
[Serializable]
public class Address
{
/// <summary>
/// Идентификатор адреса.
/// </summary>
[JsonProperty(propertyName: "id")]
public long? Id { get; set; }

/// <summary>
/// Улица и дом
/// </summary>
[JsonProperty(propertyName: "address")]
public string Residence { get; set; }

/// <summary>
/// Город адреса.
/// </summary>
[JsonProperty(propertyName: "city")]
public AddressCity City { get; set; }

/// <summary>
/// Станция метро.
/// </summary>
[JsonProperty(propertyName: "metro_station")]
public AddressMetroStation MetroStation { get; set; }

/// <summary>
/// Страна адреса.
/// </summary>
[JsonProperty(propertyName: "country")]
public AddressCountry Country { get; set; }

/// <summary>
/// Название или описание адреса.
/// </summary>
[JsonProperty(propertyName: "title")]
public string Title { get; set; }

/// <summary>
/// Статус работы (расписание) по данному адресу.
/// </summary>
[JsonProperty(propertyName: "work_info_status")]
ScheduleWorkInfoStatus? WorkInfoStatus { get; set; }
}
25 changes: 25 additions & 0 deletions VkNet/Model/Group/AddressCity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;
using System.Diagnostics;
using Newtonsoft.Json;

namespace VkNet.Model;

/// <summary>
/// Город адреса.
/// </summary>
[DebuggerDisplay(value: "[{Id}] ({Title})")]
[Serializable]
public class AddressCity
{
/// <summary>
/// Идентификатор города.
/// </summary>
[JsonProperty(propertyName: "id")]
public long? Id { get; set; }

/// <summary>
/// Название города.
/// </summary>
[JsonProperty(propertyName: "title")]
public string Title { get; set; }
}
25 changes: 25 additions & 0 deletions VkNet/Model/Group/AddressCountry.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;
using System.Diagnostics;
using Newtonsoft.Json;

namespace VkNet.Model;

/// <summary>
/// Страна адреса.
/// </summary>
[DebuggerDisplay(value: "[{Id}] ({Title})")]
[Serializable]
public class AddressCountry
{
/// <summary>
/// Идентификатор страны.
/// </summary>
[JsonProperty(propertyName: "id")]
public long? Id { get; set; }

/// <summary>
/// Название страны.
/// </summary>
[JsonProperty(propertyName: "title")]
public string Title { get; set; }
}
37 changes: 37 additions & 0 deletions VkNet/Model/Group/AddressMetroStation.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using System;
using System.Diagnostics;
using Newtonsoft.Json;

namespace VkNet.Model;

/// <summary>
/// Метро адреса.
/// </summary>
[DebuggerDisplay(value: "[{Id}] ({Name})")]
[Serializable]
public class AddressMetroStation
{
/// <summary>
/// Идентификатор станции метро.
/// </summary>
[JsonProperty(propertyName: "id")]
public long? Id { get; set; }

/// <summary>
/// Название станции метро.
/// </summary>
[JsonProperty(propertyName: "name")]
public string Name { get; set; }

/// <summary>
/// Идентификатор города, к которому относится метро.
/// </summary>
[JsonProperty(propertyName: "city_id")]
public long? CityId { get; set; }

/// <summary>
/// Цветовой код линии метро (HEX).
/// </summary>
[JsonProperty(propertyName: "color")]
public string Color { get; set; }
}
40 changes: 40 additions & 0 deletions VkNet/Model/Group/Addresses.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using System;
using System.Diagnostics;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using VkNet.Enums;
using VkNet.Enums.StringEnums;

namespace VkNet.Model;

/// <summary>
/// Информация об адресах сообщества.
/// </summary>
[DebuggerDisplay(value: "[{MainAddressId}] ({Count})")]
[Serializable]
public class Addresses
{
/// <summary>
/// Включен ли блок адресов в сообществе.
/// </summary>
[JsonProperty(propertyName: "is_enabled")]
public bool? IsEnabled { get; set; }

/// <summary>
/// Идентификатор главного адреса.
/// </summary>
[JsonProperty(propertyName: "main_address_id")]
public long? MainAddressId { get; set; }

/// <summary>
/// Общее количество адресов.
/// </summary>
[JsonProperty(propertyName: "count")]
public long? Count { get; set; }

/// <summary>
/// Информация о главном адресе.
/// </summary>
[JsonProperty(propertyName: "main_address")]
public Address MainAddress { get; set; }
}
6 changes: 6 additions & 0 deletions VkNet/Model/Group/Group.cs
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,12 @@ private Uri PhotoMedium
[JsonProperty("ban_info")]
public BanInfo BanInfo { get; set; }

/// <summary>
/// Информация об адресах сообщества.
/// </summary>
[JsonProperty("addresses")]
public Addresses Addresses { get; set; }

/// <summary>
/// Информация о том, может ли текущий пользователь создать тему обсуждения в
/// группе.
Expand Down
6 changes: 5 additions & 1 deletion VkNet/Utils/JsonConverter/GroupJsonConverter.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.ObjectModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
Expand Down Expand Up @@ -98,6 +98,10 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
? null
: JsonConvert.DeserializeObject<BanInfo>(response["ban_info"]
.ToString()),
Addresses = !response.ContainsKey("addresses")
? null
: JsonConvert.DeserializeObject<Addresses>(response["addresses"]
.ToString()),
CanUploadVideo = response["can_upload_video"],
MainAlbumId = response["main_album_id"],
IsHiddenFromFeed = response["is_hidden_from_feed"],
Expand Down
Loading