public static RoomType ConvertToRoomTypeEnum(RoomTypeEnumeration roomType) { return(roomType switch { { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.Single) => RoomType.Single, { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.Double) => RoomType.Double, { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.Triple) => RoomType.Triple, { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.Quadruple) => RoomType .Quadruple, { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.MultiPerson) => RoomType .MultiPerson, _ => throw new ArgumentException( $"{nameof(roomType.DisplayName)} is not supported by {nameof(RoomType)}.") });
public static RoomType?ConvertToEnum(this RoomTypeEnumeration roomType) { if (roomType is null) { return(null); } switch (roomType) { case { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.Single): return(RoomType.Single); case { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.Double): return(RoomType.Double); case { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.Triple): return(RoomType.Triple); case { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.Quadruple): return(RoomType.Quadruple); case { } roomTypeEnumeration when Equals(roomTypeEnumeration, RoomTypeEnumeration.MultiPerson): return(RoomType.MultiPerson); default: throw new ArgumentException($"{nameof(roomType.DisplayName)} is not supported by {nameof(RoomType)}."); } }
public void RemoveRoomType(RoomTypeEnumeration roomType) { roomType = new RoomForRentAnnouncementRoomType(roomType); var roomTypeToRemove = _roomTypes.SingleOrDefault(x => Equals(x, roomType)); _roomTypes.Remove(roomTypeToRemove); }
public async Task <List <RoomForRentAnnouncement> > FindAsync(int?pageNumber, int?pageSize, string sort, Guid?cityId, DateTimeOffset?createdFrom, DateTimeOffset?createdTo, decimal?priceFrom, decimal?priceTo, Guid?cityDistrict, RoomTypeEnumeration roomType) { var roomForRentAnnouncementEntities = await FindRoomForRentAnnouncementEntitiesAsync(pageNumber, pageSize, sort, cityId, createdFrom, createdTo, priceFrom, priceTo, cityDistrict, roomType); return(_mapper.Map <List <RoomForRentAnnouncementEntity>, List <RoomForRentAnnouncement> >(roomForRentAnnouncementEntities)); }
public RoomForRentAnnouncementPreferenceOutputQuery(Guid id, Guid cityId, decimal?priceMin, decimal?priceMax, RoomTypeEnumeration roomType, IEnumerable <Guid> cityDistricts) : base(id) { PriceMin = priceMin; PriceMax = priceMax; CityId = cityId; RoomType = roomType; CityDistricts = cityDistricts.ToList().AsReadOnly(); }
private RoomForRentAnnouncementPreference(RoomForRentAnnouncementPreferenceBuilder builder) { Id = builder.Id; CityId = builder.CityId; PriceMin = builder.PriceMin; PriceMax = builder.PriceMax; RoomType = builder.RoomType; _cityDistricts = builder.CityDistricts; }
public Task <int> CountAsync(Guid?cityId, DateTimeOffset?createdFrom, DateTimeOffset?createdTo, decimal?priceFrom, decimal?priceTo, Guid?cityDistrict, RoomTypeEnumeration roomType) { var filterPredicate = CreateFilterPredicate(cityId, createdFrom, createdTo, priceFrom, priceTo, cityDistrict, roomType); return(filterPredicate != null ? _cosmosStore.Query().CountAsync(filterPredicate) : _cosmosStore.Query().CountAsync()); }
public void AddRoomType(RoomTypeEnumeration roomType) { roomType = new RoomForRentAnnouncementRoomType(roomType); var anyDuplicates = _roomTypes.Contains(roomType); if (!anyDuplicates) { _roomTypes.Add(roomType); } }
public CreateRoomForRentAnnouncementPreferenceCommand(Guid userId, Guid cityId, decimal?priceMin, decimal?priceMax, RoomTypeEnumeration roomType, IEnumerable <Guid> cityDistricts) { RoomForRentAnnouncementPreferenceId = Guid.NewGuid(); UserId = userId; CityId = cityId; PriceMin = priceMin; PriceMax = priceMax; RoomType = roomType; CityDistricts = cityDistricts.ToList().AsReadOnly(); CorrelationId = Guid.NewGuid(); }
public GetRoomForRentAnnouncementsInputQuery(int?page, int?pageSize, string sort, DateTimeOffset?createdFrom, DateTimeOffset?createdTo, Guid?cityId, decimal?priceFrom, decimal?priceTo, RoomTypeEnumeration roomType, Guid?cityDistrict) : base(page, pageSize, sort) { CreatedFrom = createdFrom; CreatedTo = createdTo; CityId = cityId; PriceFrom = priceFrom; PriceTo = priceTo; RoomType = roomType; CityDistrict = cityDistrict; }
private async Task <List <RoomForRentAnnouncementEntity> > FindRoomForRentAnnouncementEntitiesAsync(int?pageNumber, int?pageSize, string sort, Guid?cityId, DateTimeOffset?createdFrom, DateTimeOffset?createdTo, decimal?priceFrom, decimal?priceTo, Guid?cityDistrict, RoomTypeEnumeration roomType) { var query = _cosmosStore.Query(); if (!string.IsNullOrWhiteSpace(sort)) { var orderByQuery = _orderByExpressionCreator.CreateExpression(sort); query = orderByQuery(query); } var filterPredicate = CreateFilterPredicate(cityId, createdFrom, createdTo, priceFrom, priceTo, cityDistrict, roomType); query = filterPredicate != null?query.Where(filterPredicate) : query; if (pageNumber.HasValue && pageSize.HasValue) { query = query.WithPagination(pageNumber.Value, pageSize.Value); } return(await query.ToListAsync()); }
private static Expression <Func <RoomForRentAnnouncementEntity, bool> > CreateFilterPredicate(Guid?cityId, DateTimeOffset?createdFrom, DateTimeOffset?createdTo, decimal?priceFrom, decimal?priceTo, Guid?cityDistrict, RoomTypeEnumeration roomType) { Expression <Func <RoomForRentAnnouncementEntity, bool> > filterPredicate = null; if (cityId.HasValue) { filterPredicate = x => x.CityId == cityId.Value; } if (createdFrom.HasValue) { filterPredicate = filterPredicate.AndAlso(x => x.Created >= createdFrom.Value); } if (createdTo.HasValue) { filterPredicate = filterPredicate.AndAlso(x => x.Created <= createdTo.Value); } if (priceFrom.HasValue) { filterPredicate = filterPredicate.AndAlso(x => x.Price >= priceFrom.Value); } if (priceTo.HasValue) { filterPredicate = filterPredicate.AndAlso(x => x.Price <= priceTo.Value); } if (cityDistrict.HasValue) { filterPredicate = filterPredicate.AndAlso(x => x.CityDistricts.Contains(cityDistrict.Value)); } if (roomType != null) { filterPredicate = filterPredicate.AndAlso(x => x.RoomTypes.Select(r => r.ToString()).Contains(roomType.DisplayName)); } return(filterPredicate); }
public RoomForRentAnnouncementRoomType(RoomTypeEnumeration roomType) { _roomType = roomType ?? throw new RoomForRentAnnouncementRoomTypeNullException(); }
public void ChangeRoomType(RoomTypeEnumeration roomType) { RoomType = roomType; }
public IRoomForRentAnnouncementPreferenceBuilder SetRoomType(RoomTypeEnumeration roomType) { RoomType = roomType; return(this); }