public Task <IActionResult> CommitOrderFor(SneakerReference reference) { if (reference is null) { throw new ArgumentException(nameof(reference)); } return(CommitOrder(reference.UniqueID)); }
public List <SneakerReference> GetRelated(SneakerReference reference, RequestParams requestParams = default) { var requiredCount = requestParams?.Limit ?? 5; var query = _builder .Reset() .SetQueryArguments("brandname", ExpressionType.And, new FilterParameter(reference.BrandName)) .SetQueryArguments("modelname", ExpressionType.And, new FilterParameter(reference.ModelName, ExpressionType.Regex)) .Build(); if (requestParams?.Limit != null) { requestParams.Limit++; // later -1 current reference } var related = Fetch(query, requestParams); if ((related is null || related.Count < requiredCount) && reference.BaseModel != null) { query = _builder .Reset() .SetQueryArguments("brandname", ExpressionType.And, new FilterParameter(reference.BrandName)) .SetQueryArguments("modelname", ExpressionType.And, new FilterParameter(reference.BaseModel?.Name, ExpressionType.Regex)) .Build(); var lessRelated = Fetch(query, new RequestParams { Limit = 100 }); if (lessRelated != null && lessRelated.Any()) { lessRelated = lessRelated.OrderBySimilarity(r => r.ModelName, reference.ModelName) .Where(r => r.UniqueID != reference.UniqueID) .ToList(); related = (related?.Union(lessRelated) ?? lessRelated).ToList(); } } if (related != null && related.Count < requiredCount && reference.Brand != null && _cachedSneakers.IsCompleted && _cachedSneakers.Result != null) { var brandRelated = _cachedSneakers.Result.Where(r => r.BrandName == reference.BrandName).ToList(); if (brandRelated.Any()) { brandRelated = brandRelated.OrderBySimilarity(r => r.ModelName, reference.ModelName) .Where(r => r.UniqueID != reference.UniqueID) .ToList(); related = related.Union(brandRelated).ToList(); } } return(related? .Where(r => r.UniqueID != reference.UniqueID) .Distinct(new EntityComparer <SneakerReference>()) .Take(requiredCount).ToList()); }
public static Proto.SneakerReference FromNative(this SneakerReference native) { return(new Proto.SneakerReference { UniqueId = native.UniqueID, ManufactureSku = native.ManufactureSku, BrandName = native.BrandName, ModelName = native.ModelName, BaseModelName = native.BaseModelName, Description = native.Description, Color = native.Color, Gender = native.Gender.GetEnumMemberValue(), Nickname = native.Nickname, Materials = { native.Materials }, Categories = { native.Categories }, ReleaseDate = native.ReleaseDate.ToTimestamp(), ReleaseDateStr = native.ReleaseDateSTR, Price = Convert.ToDouble(native.Price), ImageLink = native.ImageLink, ImageLinks = { native.ImageLinks }, StadiumUrl = native.StadiumUrl, GoatUrl = native.GoatUrl, }); }
public PatchSneakerReferenceRequest(SneakerReference sneakerReference) : base(string.Empty, Method.PATCH) { AddJsonBody(sneakerReference); }
public Task <bool> ModifyAsync(SneakerReference sneakerReference, RequestParams requestParams = default) => _repository.UpdateAsync(sneakerReference, requestParams);
public Task <SneakerReference> StoreAsync(SneakerReference sneakerReference, RequestParams requestParams = default) => _repository.PostAsync(sneakerReference, requestParams);
public bool Modify(SneakerReference sneakerReference, RequestParams requestParams = default) => _repository.Update(sneakerReference, requestParams);
public SneakerReference Store(SneakerReference sneakerReference, RequestParams requestParams = default) => _repository.Post(sneakerReference, requestParams);
public PostSneakerReferenceRequest(SneakerReference sneakerReference) : base(string.Empty, Method.POST) { AddJsonBody(sneakerReference); }