private void CreateListing(IEnumerable <BonanzaEntry> entries) { ListingDto listingDto = new ListingDto(); listingDto.Brand = entries.First(p => !string.IsNullOrWhiteSpace(p.Brand)).Brand; listingDto.FullDescription = entries.First(p => !string.IsNullOrWhiteSpace(p.FullDescription)).FullDescription; if (entries.Count() > 1) { listingDto.Sku = entries.First(p => !string.IsNullOrWhiteSpace(p.ClassName)).ClassName; BonanzaEntry entry = entries.First(p => !string.IsNullOrWhiteSpace(p.Title)); listingDto.Title = GetParentTitle(entry);; listingDto.IsVariation = true; } else { listingDto.Sku = entries.First().Sku; listingDto.Title = entries.First().Title; listingDto.IsVariation = false; } foreach (BonanzaEntry entry in entries) { ListingItemDto listingItem = new ListingItemDto(); listingItem.Sku = entry.Sku; listingItem.Qty = entry.Q; listingItem.Price = entry.P; listingDto.Items.Add(listingItem); } _services.Publish(_marketplace.ID, listingDto); }
/// <inheritdoc cref="IListingRepository.UpdateListingAsync(long, ListingDto)" /> public async Task UpdateListingAsync(long listingId, ListingDto listingUpdateInfo) { Listing listing = await context.Listings.FindAsync(listingId); if (listing != null) { listing = mapper.Map <Listing>(listingUpdateInfo); context.Listings.Update(listing); await context.SaveChangesAsync(); } }
public async Task <ListingDto> CreateListing(CreateListingInDTO listingIn) { try { var listing = new ListingDto(); //using (_context) //{ // var listing = _context.listing.Add(new Listing // { // Id = // }); //} return(listing); } catch (Exception ex) { throw new Exception("ERROR at CreateListing: " + ex.Message); } }
internal static Listing CreateListing(Guid customerId, ListingDto listingDto) { Listing listing = new Listing(); return(listing); }
private void CreateListing(IEnumerable <EbayEntry> entries, bool isVariation) { ListingDto listingDto = new ListingDto(); listingDto.Brand = entries.First(p => !string.IsNullOrWhiteSpace(p.Brand)).Brand; listingDto.Duration = entries.First(p => !string.IsNullOrWhiteSpace(p.Format)).GetDuration(); listingDto.Format = entries.First(p => !string.IsNullOrWhiteSpace(p.Format)).GetFormat(); listingDto.FullDescription = entries.First(p => !string.IsNullOrWhiteSpace(p.FullDescription)).FullDescription; listingDto.IsVariation = isVariation; if (isVariation) { listingDto.Title = GetParentTitle(entries.First(p => !string.IsNullOrWhiteSpace(p.Title))); } else { listingDto.Title = entries.First(p => !string.IsNullOrWhiteSpace(p.Title)).Title; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.Template))) { listingDto.Template = entries.First(p => !string.IsNullOrWhiteSpace(p.Template)).Template; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.Design))) { listingDto.Design = entries.First(p => !string.IsNullOrWhiteSpace(p.Design)).Design; } if (entries.Any(p => p.StartDate != null)) { listingDto.ScheduleTime = entries.First(p => p.StartDate != null).StartDate; } if (isVariation) { listingDto.Sku = entries.First(p => !string.IsNullOrWhiteSpace(p.ClassName)).ClassName; } else { listingDto.Sku = entries.First().Sku; if (entries.First().BIN != null && listingDto.Format.Equals(EbayMarketplace.FORMAT_AUCTION)) { listingDto.BinPrice = entries.First().BIN; } } foreach (EbayEntry entry in entries) { ListingItemDto listingItem = new ListingItemDto(); listingItem.Sku = entry.Sku; listingItem.Qty = entry.Q; listingItem.Price = entry.P; listingDto.Items.Add(listingItem); } _ebayServices.Publish(_marketplace.ID, listingDto, "Publisher"); }
private void UpdateListing(EbayListing listing, IEnumerable <EbayEntry> entries) { ListingDto listingDto = new ListingDto(); listingDto.Code = listing.Code; listingDto.Format = entries.First(p => !string.IsNullOrWhiteSpace(p.Format)).GetFormat(); listingDto.Brand = entries.First(p => !string.IsNullOrWhiteSpace(p.Brand)).Brand; listingDto.IsVariation = (bool)listing.IsVariation; if (entries.Any(p => !string.IsNullOrWhiteSpace(p.Template))) { listingDto.Template = entries.First(p => !string.IsNullOrWhiteSpace(p.Template)).Template; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.Design))) { listingDto.Design = entries.First(p => !string.IsNullOrWhiteSpace(p.Design)).Design; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.FullDescription))) { listingDto.FullDescription = entries.First(p => !string.IsNullOrWhiteSpace(p.FullDescription)).FullDescription; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.Title))) { if ((bool)listing.IsVariation) { listingDto.Title = GetParentTitle(entries.First(p => !string.IsNullOrWhiteSpace(p.Title))); } else { listingDto.Title = entries.First(p => !string.IsNullOrWhiteSpace(p.Title)).Title; } } foreach (EbayEntry entry in entries) { ListingItemDto listingItemDto = new ListingItemDto(); listingItemDto.Sku = entry.Sku; listingItemDto.Qty = entry.Q; listingItemDto.Price = entry.P; listingDto.Items.Add(listingItemDto); } var activeListingItems = listing.ListingItems.Where(p => p.Quantity != 0); foreach (EbayListingItem listingItem in activeListingItems) { if (!listingDto.Items.Any(p => p.Sku.Equals(listingItem.Sku))) { ListingItemDto listingItemDto = new ListingItemDto(); listingItemDto.Sku = listingItem.Sku; listingItemDto.Qty = listingItem.Quantity; listingItemDto.Price = listingItem.Price; listingDto.Items.Add(listingItemDto); } } var activeSkus = activeListingItems.Select(p => p.Item.ItemLookupCode); bool mustIncludeProductData = listingDto.Items.Any(p => !activeSkus.Any(s => s.Equals(p.Sku))); bool includeTemplate = entries.Any(p => p.GetUpdateFlags().Any(s => s.Trim().ToUpper().Equals("TEMPLATE"))); bool includeProductData = entries.Any(p => p.GetUpdateFlags().Any(s => s.Trim().ToUpper().Equals("PRODUCTDATA"))) || mustIncludeProductData; if (listingDto.Items.All(p => p.Qty == 0)) { _ebayServices.End(_marketplace.ID, listing.Code, "Publisher"); } else { _ebayServices.Revise(_marketplace.ID, listingDto, includeProductData, includeTemplate, "Publisher"); } }
public async Task <GetFilterListResponse> GetFilterList() { try { var countries = await _listingRepository.GetAllCounties(); var provinces = await _listingRepository.GetAllProvinces(); var listingtypes = await _listingRepository.GetAllListings(); var cities = await _listingRepository.GetAllCities(); GetFilterListResponse filterListResponse = new GetFilterListResponse(); filterListResponse.CountryList = new List <CountryDto>(); filterListResponse.ListingTypes = new List <ListingDto>(); foreach (var listingType in listingtypes) { ListingDto listingDto = new ListingDto() { ListingFilterName = listingType.ListingName, ListingType = listingType.Id }; filterListResponse.ListingTypes.Add(listingDto); } foreach (var country in countries) { var countryDto = new CountryDto(); countryDto.CountryType = country.Id; countryDto.CountryName = country.CountryName; countryDto.Provinces = new List <ProvinceDto>(); foreach (var province in provinces) { if (province.CountryRefId == country.Id) { var provinceDto = new ProvinceDto(); provinceDto.Cities = new List <CityDto>(); provinceDto.ProvinceType = province.Id; provinceDto.ProvinceName = province.ProvinceName; foreach (var city in cities) { if (city.CountryRefId == country.Id && city.ProvinceRefId == province.Id) { var cityDto = new CityDto() { CityName = city.RegionName, CityType = city.Id }; provinceDto.Cities.Add(cityDto); } } countryDto.Provinces.Add(provinceDto); } } filterListResponse.CountryList.Add(countryDto); } return(filterListResponse); } catch (Exception ex) { _logger.LogError($"error while constructing filter list: {ex}"); throw ex.GetBaseException(); } }
public void AddListing(ListingDto listingDto) { Listing listing = Listing.CreateListing(Id, listingDto); _listings.Add(listing); }
private void UpdateListing(BonanzaListing listing, IEnumerable <BonanzaEntry> entries) { ListingDto listingDto = new ListingDto(); listingDto.Code = listing.Code; listingDto.Brand = entries.First(p => !string.IsNullOrWhiteSpace(p.Brand)).Brand; listingDto.IsVariation = (bool)listing.IsVariation; if ((bool)listing.IsVariation) { listingDto.IsVariation = true; listingDto.Sku = entries.First(p => !string.IsNullOrWhiteSpace(p.ClassName)).ClassName; } else { listingDto.IsVariation = false; listingDto.Sku = listingDto.Sku = entries.First().Sku; } if (entries.Any(p => !string.IsNullOrWhiteSpace(p.FullDescription))) { listingDto.FullDescription = entries.First(p => !string.IsNullOrWhiteSpace(p.FullDescription)).FullDescription; } foreach (BonanzaEntry entry in entries) { BonanzaListingItem listingItem = listing.ListingItems.SingleOrDefault(p => p.Item.ItemLookupCode.Equals(entry.Sku)); ListingItemDto listingItemDto = new ListingItemDto(); listingItemDto.Sku = entry.Sku; listingItemDto.Qty = entry.Q; listingItemDto.Price = entry.P; listingDto.Items.Add(listingItemDto); } var activeSkus = listing.ListingItems.Where(p => p.Quantity != 0).Select(p => p.Item.ItemLookupCode); bool mustIncludeProductData = listingDto.Items.Any(p => !activeSkus.Any(s => s.Equals(p.Sku))); foreach (BonanzaListingItem listingItem in listing.ListingItems) { if (!listingDto.Items.Any(p => p.Sku.Equals(listingItem.Item.ItemLookupCode))) { ListingItemDto listingItemDto = new ListingItemDto(); listingItemDto.Qty = listingItem.Quantity; listingItemDto.Price = listingItem.Price; listingDto.Items.Add(listingItemDto); } } bool includeTemplate = entries.Any(p => p.GetUpdateFlags().Any(s => s.Trim().ToUpper().Equals("TEMPLATE"))); bool includeProductData = entries.Any(p => p.GetUpdateFlags().Any(s => s.Trim().ToUpper().Equals("PRODUCTDATA"))) || mustIncludeProductData; if (listingDto.Items.All(p => p.Qty == 0)) { _services.End(_marketplace.ID, listing.Code); } else { _services.Revise(_marketplace.ID, listingDto, includeProductData, includeTemplate); } }
public ActionResult GetListings(string suburb = null, string categoryType = null, string statusType = null, string skip = null, string take = null) { string initialQuery = "SELECT *, count(*) OVER() AS full_count FROM Listings"; string appendedQuery = ""; //Validation for parameters passed to method //Check if expected string values are actually strings not integers if (suburb != null) { bool isNumeric = int.TryParse(suburb, out _); if (isNumeric) { return(UnprocessableEntity("Suburb parameter must be of type string")); } else { appendedQuery += " WHERE Suburb = '" + suburb + "'"; } } if (categoryType != null) { bool isNumeric = int.TryParse(categoryType, out _); if (isNumeric) { return(UnprocessableEntity("categoryType parameter must be of type string")); } else { //if category name maps to dictionary, append to query if (_categoryTypes.TryGetValue(categoryType, out int categoryId)) { if (appendedQuery != "") { appendedQuery += " AND CategoryType = '" + categoryId + "'"; } else { appendedQuery += "WHERE CategoryType = '" + categoryId; } } } } if (statusType != null) { bool isNumeric = int.TryParse(statusType, out _); if (isNumeric) { return(UnprocessableEntity("statusType parameter must be of type string")); } else { //if category name maps to dictionary, append to query if (_statusTypes.TryGetValue(statusType, out int statusId)) { if (appendedQuery != "") { appendedQuery += " AND StatusType = '" + statusId + "'"; } else { appendedQuery += " WHERE StatusType = '" + statusId + "'"; } } } } //Order results by listing id appendedQuery += " ORDER BY ListingId"; //Check that number parameters are of type integer if (skip != null) { bool isNumeric = int.TryParse(skip, out _); if (!isNumeric) { return(UnprocessableEntity("skip parameter must be of type number")); } else { appendedQuery += $" OFFSET {skip} ROWS "; } } else { //if skip is not provided, default to 0 so 'take' will work appendedQuery += $" OFFSET 0 ROWS"; } if (take != null) { bool isNumeric = int.TryParse(take, out _); if (!isNumeric) { return(UnprocessableEntity("take parameter must be of type number")); } else { appendedQuery += $" FETCH NEXT {take} ROWS ONLY"; } } //After validation create connection string string connString = @"server=JAKE-PC;Integrated Security=SSPI;database=Backend-TakeHomeExercise;Trusted_Connection=True;"; //Join the two connection strings var mainQuery = initialQuery + appendedQuery; using var con = new SqlConnection(connString); con.Open(); using var cmd = new SqlCommand(mainQuery, con); using SqlDataReader rdr = cmd.ExecuteReader(); List <ListingDto> listingArrray = new List <ListingDto>(); var totalRecordCount = 0; var counter = 0; while (rdr.Read()) { //Only want to assign total once if (counter == 0) { totalRecordCount = (int)rdr["full_count"]; counter++; } var listing = new ListingDto(); listing.ListingId = (int)rdr["ListingId"]; listing.StreetNumber = rdr["StreetNumber"] is DBNull ? null : (string)rdr["StreetNumber"]; listing.Street = rdr["Street"] is DBNull ? null : (string)rdr["Street"]; listing.Suburb = (string)rdr["Suburb"]; listing.State = (string)rdr["State"]; listing.Postcode = (rdr["Postcode"] == null) ? null : (int)rdr["Postcode"]; listing.CategoryType = (int)rdr["CategoryType"]; listing.StatusType = (int)rdr["StatusType"]; listing.DisplayPrice = (string)rdr["DisplayPrice"]; listing.Title = (string)rdr["Title"] ?? null; listing.shortPrice = formatShortPrice(listing.DisplayPrice).Insert(0, "$"); listingArrray.Add(listing); } ; WrappedDataObject returningObj = new WrappedDataObject(); returningObj.items = listingArrray; returningObj.total = totalRecordCount; return(Ok(returningObj)); }