public static void SetCategories(this EditMarketItemModel model, MarketplaceItemModel marketItem) { if (marketItem != null) { var cat1 = model.Categories.FirstOrDefault(x => x.Id == marketItem.CategoryId); var cat2 = model.Categories.FirstOrDefault(x => x.Id == (cat1 == null ? -1 : cat1.ParentId) && x.Id > 0); var cat3 = model.Categories.FirstOrDefault(x => x.Id == (cat2 == null ? -1 : cat2.ParentId) && x.Id > 0); if (cat1 == null) { model.MainCategoryId = -2; } else if (cat2 == null) { model.MainCategoryId = cat1.Id; } else if (cat3 == null) { model.SubCategoryId = cat1.Id; model.MainCategoryId = cat2.Id; } else { model.SubCategoryId = cat1.Id; model.CategoryId = cat2.Id; model.MainCategoryId = cat3.Id; } } }
public static string GetCity(this MarketplaceItemModel marketItem) { if (marketItem != null) { var location = StaticDataCache.Locations.FirstOrDefault(x => x.Id == marketItem.LocationId); if (location != null) { var parent = StaticDataCache.Locations.FirstOrDefault(x => x.Id == location.ParentId && x.Id != location.Id); if (parent != null) { return(location.Name); } } } return(string.Empty); }
public static string GetLocation(this MarketplaceItemModel marketItem) { if (marketItem != null) { var location = StaticDataCache.Locations.FirstOrDefault(x => x.Id == marketItem.LocationId); if (location != null) { var parent = StaticDataCache.Locations.FirstOrDefault(x => x.Id == location.ParentId && x.Id != location.Id); if (parent != null) { return(string.Join(", ", parent.Name, location.Name, marketItem.LocationRegion)); } return(location.Name); } } return("Unknown"); }
public static int GetCountryId(this MarketplaceItemModel marketItem) { if (marketItem != null) { var location = StaticDataCache.Locations.FirstOrDefault(x => x.Id == marketItem.LocationId); if (location != null) { var parent = StaticDataCache.Locations.FirstOrDefault(x => x.Id == location.ParentId && x.Id != location.Id); if (parent != null) { return(parent.Id); } return(location.Id); } } return(-2); }
private IEnumerable <OrderModel> GetUserModelsByItems( IEnumerable <OrderEntity> orders, IEnumerable <MarketplaceItemEntity> items, IEnumerable <UserEntity> users) { var orderModels = orders.Select(order => { var orderStatus = OrderStatusModel.ToDomainModel( _orderStatusRepository.Value.GetStatusById((int)order.StatusId)); var itemModel = MarketplaceItemModel.ToDomainModel( items.First(item => item.Id == order.ItemId)); var recipients = users.FirstOrDefault(user => user.Id == order.BuyerId); var recipientsModel = recipients == null ? null : UserModel.ToDomainModel(recipients); return(new OrderModel(order.Id, orderStatus, order.OrderTime, itemModel, recipientsModel)); }); return(orderModels); }
public async Task <MarketplaceItemModel> GetMarketItem(int marketItemId) { using (var context = ExchangeDataContextFactory.CreateReadOnlyContext()) { var query = context.MarketItem .Where(x => x.Id == marketItemId) .Select(marketItem => new { User = marketItem.User, CategoryId = marketItem.CategoryId, Id = marketItem.Id, CloseDate = marketItem.CloseDate, Created = marketItem.Created, AskingPrice = marketItem.AskingPrice, Description = marketItem.Description, Feature = marketItem.Feature, LocationId = marketItem.LocationId, Location = marketItem.Location.ParentId != null ? string.Concat(marketItem.Location.Parent.Name, ", ", marketItem.Location.Name) : marketItem.Location.Name, ReservePrice = marketItem.ReservePrice, MainImage = marketItem.MainImage, Status = marketItem.Status, Title = marketItem.Title, Type = marketItem.Type, CurrencyId = marketItem.CurrencyId, Symbol = marketItem.Currency.Symbol, LocationRegion = marketItem.LocationRegion, AllowPickup = marketItem.AllowPickup, PickupOnly = marketItem.PickupOnly, ShippingBuyerArrange = marketItem.ShippingBuyerArrange, ShippingNational = marketItem.ShippingNational, ShippingInternational = marketItem.ShippingInternational, ShippingNationalPrice = marketItem.ShippingNationalPrice, ShippingNationalDetails = marketItem.ShippingNationalDetails, ShippingInternationalPrice = marketItem.ShippingInternationalPrice, ShippingInternationalDetails = marketItem.ShippingInternationalDetails, AlternateImages = marketItem.Images.Select(x => x.Image).ToList(), Questions = marketItem.Questions.Select(q => new MarketQuestionModel { Id = q.Id, Answer = q.Answer, Question = q.Question, Timestamp = q.Timestamp, UserName = q.User.UserName }).ToList(), Bids = marketItem.Bids.Select(b => new MarketItemBidModel { Id = b.Id, Amount = b.BidAmount, IsWinningBid = b.IsWinningBid, Timestamp = b.Timestamp, TrustRating = b.User.TrustRating, UserId = b.UserId, UserName = b.User.UserName }).ToList(), HasBuyersFeedback = marketItem.Feedback.Any(f => f.ReceiverUserId == marketItem.UserId), HasSellersFeedback = marketItem.Feedback.Any(f => f.SenderUserId == marketItem.UserId), Buyer = marketItem.Bids.Any(x => x.IsWinningBid) ? marketItem.Bids.FirstOrDefault(x => x.IsWinningBid).User : null, }); var result = await query.FirstOrDefaultNoLockAsync().ConfigureAwait(false); if (result == null) { return(null); } var marketItemModel = new MarketplaceItemModel { UserId = result.User.Id, UserName = result.User.UserName, UserTrustRating = result.User.TrustRating, CategoryId = result.CategoryId, Id = result.Id, CloseDate = result.CloseDate, Created = result.Created, AskingPrice = result.AskingPrice, Description = result.Description, Feature = result.Feature, LocationId = result.LocationId, Location = result.Location, LocationRegion = result.LocationRegion, ReservePrice = result.ReservePrice, MainImage = result.MainImage, Status = result.Status, Title = result.Title, Type = result.Type, CurrencyId = result.CurrencyId, Symbol = result.Symbol, AllowPickup = result.AllowPickup, PickupOnly = result.PickupOnly, ShippingBuyerArrange = result.ShippingBuyerArrange, ShippingNational = result.ShippingNational, ShippingInternational = result.ShippingInternational, ShippingNationalPrice = result.ShippingNationalPrice, ShippingNationalDetails = result.ShippingNationalDetails, ShippingInternationalPrice = result.ShippingInternationalPrice, ShippingInternationalDetails = result.ShippingInternationalDetails, AlternateImages = result.AlternateImages, Questions = result.Questions, Bids = result.Bids.OrderByDescending(b => b.Amount).ToList(), HasBuyersFeedback = result.HasBuyersFeedback, HasSellersFeedback = result.HasSellersFeedback, BuyerUserId = result.Buyer == null ? null : new Guid?(result.Buyer.Id), BuyerUserName = result.Buyer == null ? string.Empty : result.Buyer.UserName, BuyerTrustRating = result.Buyer == null ? 0 : result.Buyer.TrustRating, CurrentBidPrice = result.Bids.Any() ? result.Bids.Max(x => x.Amount) : 0 }; return(marketItemModel); } }