/// <summary>
 /// Gets the <see cref="ProductVariantDisplay"/> with matching with attributes from the product.
 /// </summary>
 /// <param name="product">
 /// The product.
 /// </param>
 /// <param name="optionChoices">
 /// The option choices.
 /// </param>
 /// <returns>
 /// The <see cref="ProductVariantDisplay"/>.
 /// </returns>        
 public static ProductVariantDisplay GetProductVariantDisplayWithAttributes(this ProductDisplay product, Guid[] optionChoices)
 {
     return
         product.ProductVariants.FirstOrDefault(
             x =>
             x.Attributes.Count() == optionChoices.Count()
             && optionChoices.All(key => x.Attributes.FirstOrDefault(att => att.Key == key) != null));
 }
 public void SendMessage(string subject, string body, Guid authorID, Guid[] recipientIDs)
 {
     var recipients = _repository.FindAllBy<Traveler>(t => recipientIDs.Contains(t.TravelerID));
     if (recipients == null || recipients.Count() != recipientIDs.Count()) throw new TravelerNotFoundException();
     Traveler author = _repository.FindBy<Traveler>(r => r.TravelerID == authorID);
     if (author == null) throw new TravelerNotFoundException();
     Message message = MessageFactory.CreateMessageFrom(subject, body, author, recipients);
     _repository.Add<Message>(message);
     _repository.Commit();
 }
 private IEnumerable<Shipment> GetDummyShipments(Guid[] keys)
 {
     var shipmentKeys = new[] {Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()};
     for (int i = 0; i < keys.Count(); i++)
     {
         yield return new Shipment
         {
             Key = keys[i],
             AffiliateKey = Guid.NewGuid(),
             ShipmentTypeKey = shipmentKeys[i],
             Price = 12.23M*(i + 1),
             ReceiverFirstName = string.Format("Receiver {0} FirstName", i),
             ReceiverLastName = string.Format("Receiver {0} Lastname", i),
             ReceiverAddress = string.Format("Receiver {0} Address", i),
             ReceiverCity = string.Format("Receiver {0} City", i),
             ReceiverCountry = string.Format("Receiver {0} Country", i),
             ReceiverPhone = string.Format("Receiver {0} Phone", i),
             ReceiverZipCode = "12345",
             ReceiverEmail = "[email protected]",
             CreatedOn = DateTime.Now,
             ShipmentType = new ShipmentType
             {
                 Key = shipmentKeys[i],
                 CompanyName = "Nile",
                 Price = 4.19M,
                 CreatedOn = DateTime.Now,
             },
             ShipmentStates = new List<ShipmentState>
             {
                 new ShipmentState
                 {
                     Key = Guid.NewGuid(),
                     ShipmentKey = keys[i],
                     Status = ShipmentStatus.Ordered
                 },
                 new ShipmentState
                 {
                     Key = Guid.NewGuid(),
                     ShipmentKey = keys[i],
                     Status = ShipmentStatus.Scheduled
                 }
             }
         };
     }
 }
Example #4
0
 /// <summary>
 /// Get a product variant from a product by it's collection of attributes
 /// </summary>
 /// <param name="productKey">The product key</param>
 /// <param name="attributeKeys">The option choices (attributeKeys)</param>
 /// <returns>The <see cref="ProductVariantDisplay"/></returns>
 public ProductVariantDisplay GetProductVariantWithAttributes(Guid productKey, Guid[] attributeKeys)
 {
     var product = Query.Product.GetByKey(productKey);
     return product.ProductVariants.FirstOrDefault(x => x.Attributes.Count() == attributeKeys.Count() && attributeKeys.All(key => x.Attributes.FirstOrDefault(att => att.Key == key) != null));
 }
        /// <summary>
        /// Gets the <see cref="ProductVariantDisplay"/> with matching with attributes from the product.
        /// </summary>
        /// <param name="product">
        /// The product.
        /// </param>
        /// <param name="optionChoices">
        /// The option choices.
        /// </param>
        /// <returns>
        /// The <see cref="ProductVariantDisplay"/>.
        /// </returns>        
        public static IProductVariantContent GetProductVariantDisplayWithAttributes(this IProductContent product, Guid[] optionChoices)
        {
            var variant =
                product.ProductVariants.FirstOrDefault(
                    x =>
                    x.Attributes.Count() == optionChoices.Count()
                    && optionChoices.All(key => x.Attributes.FirstOrDefault(att => att.Key == key) != null));

            if (variant == null)
            {
                MultiLogHelper.Debug(typeof(ProductContentExtensions), "Could not find IProductVariantContent with keys matching choices in optionChoices array.");
            }

            return variant;
        }