public ConsentGroup GetWithConsents(int consentGroupId)
        {
            Expression <Func <Consent, object> > orderBy = consent => consent.DisplayOrder;
            var consentGroup = Repository.Join <Consent>("Id", "ConsentGroupId")
                               .Relate(RelationTypes.OneToMany <ConsentGroup, Consent>())
                               .Where(x => x.Id == consentGroupId)
                               .OrderBy(orderBy, RowOrder.Ascending)
                               .SelectNested()
                               .FirstOrDefault();

            return(consentGroup);
        }
Exemple #2
0
        public ClanRelations(Game.Clans  clan, RelationTypes type)
        {
            switch (type)
            {
                case RelationTypes.None:
                    {
                        mData = new Byte[28 + 8];
                        WriteUInt16((UInt16)mData.Length, 0, mData);
                        WriteUInt16(1312, 2, mData);
                        WriteByte((Byte)type, 4, mData);

                        WriteByte((Byte)0, 16, mData);
                        break;
                    }
                case RelationTypes.Allies:
                    {
                        mData = new Byte[28 + (clan.Allies.Count * 56) + 8];
                        WriteUInt16((UInt16)(mData.Length - 8), 0, mData);
                        WriteUInt16(1312, 2, mData);
                        WriteByte((Byte)type, 4, mData);

                        WriteByte((Byte)clan.Allies.Count, 16, mData);

                        foreach (Game.Clans clans in clan.Allies.Values)
                        {
                            WriteUInt16((UInt16)clans.ClanId, Offset, mData); Offset += 4;
                            WriteString(clans.ClanName, Offset, mData); Offset += 36;
                            WriteString(clans.ClanLider, Offset, mData); Offset += 16;
                        }
                        Offset = 20;
                        break;
                    }
                case RelationTypes.Enemies:
                    {
                        mData = new Byte[28 + (clan.Enemies.Count * 56) + 8];
                        WriteUInt16((UInt16)(mData.Length - 8), 0, mData);
                        WriteUInt16(1312, 2, mData);
                        WriteByte((Byte)type, 4, mData);

                        WriteByte((Byte)clan.Enemies.Count, 16, mData);

                        foreach (Game.Clans clans in clan.Enemies.Values)
                        {
                            WriteUInt16((UInt16)clans.ClanId, Offset, mData); Offset += 4;
                            WriteString(clans.ClanName, Offset, mData); Offset += 36;
                            WriteString(clans.ClanLider, Offset, mData); Offset += 16;
                        }
                        Offset = 20;
                        break;
                    }
            }
        }
 public override IEnumerable<Consent> Get(Expression<Func<Consent, bool>> @where, int page = 1, int count = Int32.MaxValue)
 {
     Expression<Func<ConsentGroup, object>> orderByConsentGroup = x => x.DisplayOrder;
     return Repository.Join<ConsentGroup>("ConsentGroupId", "Id", joinType: JoinType.LeftOuter)
         .Relate(RelationTypes.OneToOne<Consent, ConsentGroup>((consent, group) =>
             {
                 group.Consents = group.Consents ?? new List<Consent>();
                 group.Consents.Add(consent);
             }))
         .Where(where)
         .OrderBy(x => x.DisplayOrder)
         .OrderBy(orderByConsentGroup)
         .SelectNested(page, count);}
Exemple #4
0
        public IList <ProductAttribute> GetByProductId(int productId, bool onlyVariantSpecific = false)
        {
            var q = Repository.Where(x => x.ProductId == productId)
                    .Join <AvailableAttribute>("AvailableAttributeId", "Id", joinType: JoinType.LeftOuter)
                    //.Join<Product>("ProductId", "Id")
                    .Join <ProductAttributeValue>("Id", "ProductAttributeId", SourceColumn.Parent,
                                                  joinType: JoinType.LeftOuter)
                    .Join <AvailableAttributeValue>("AvailableAttributeValueId", "Id", joinType: JoinType.LeftOuter);


            //should we restrict to only variant specific attributes
            if (onlyVariantSpecific)
            {
                var allowedInputTypes = VariantHelper.GetVariantSpecificFieldTypes();
                Expression <Func <ProductAttribute, bool> > variantWhere =
                    attribute => allowedInputTypes.Contains(attribute.InputFieldType);
                q.Where(variantWhere);
            }


            return(q
                   .Relate(RelationTypes.OneToMany <ProductAttribute, ProductAttributeValue>())
                   .Relate <AvailableAttributeValue>((productAttribute, availableAttributeValue) =>
            {
                if (productAttribute.Tag == null)
                {
                    productAttribute.Tag = new List <AvailableAttributeValue>();
                }

                var attributeList = (List <AvailableAttributeValue>)productAttribute.Tag;
                if (!attributeList.Contains(availableAttributeValue))
                {
                    attributeList.Add(availableAttributeValue);
                }

                var pav = productAttribute.ProductAttributeValues.FirstOrDefault(
                    x => x.AvailableAttributeValueId == availableAttributeValue.Id);
                if (pav != null)
                {
                    pav.AvailableAttributeValue = availableAttributeValue;
                }
            })
                   .Relate <AvailableAttribute>((productAttribute, availableAttribute) =>
            {
                availableAttribute.AvailableAttributeValues = (List <AvailableAttributeValue>)productAttribute.Tag;
                productAttribute.AvailableAttribute = availableAttribute;
            })
                   .OrderBy(x => x.DisplayOrder)
                   .SelectNested()
                   .ToList());
        }
        public IEnumerable <AvailableAttribute> GetAvailableAttributes(out int totalResults, string searchText = null, int page = 1, int count = Int32.MaxValue)
        {
            var query = Repository;

            if (!searchText.IsNullEmptyOrWhiteSpace())
            {
                query = query.Where(x => x.Name.Contains(searchText));
            }

            return(query.Join <AvailableAttributeValue>("Id", "AvailableAttributeId", joinType: JoinType.LeftOuter)
                   .Relate(RelationTypes.OneToMany <AvailableAttribute, AvailableAttributeValue>())
                   .OrderBy(x => x.Name)
                   .SelectNestedWithTotalMatches(out totalResults, page, count));
        }
        public ProductVariant GetByAttributeValueIds(IList <int> productAttributeValueIds)
        {
            //let's create a custom query here
            var providerSpecificSelector = DatabaseManager.IsSqlServerProvider() ? "top 1" : "";
            var variantIdFetcher         =
                $"select {providerSpecificSelector} productvariantid from productvariantattribute where productattributevalueid in ({string.Join(",", productAttributeValueIds)}) group by productvariantid HAVING COUNT(*) = {productAttributeValueIds.Count} order by count(*) desc";

            string sql = "";

            if (DatabaseManager.IsSqlServerProvider())
            {
                sql =
                    $"SELECT t2.[ProductVariantId] AS ProductVariantAttribute_ProductVariantId,t2.[ProductAttributeId] AS ProductVariantAttribute_ProductAttributeId,t2.[ProductAttributeValueId] AS ProductVariantAttribute_ProductAttributeValueId,t2.[Id] AS ProductVariantAttribute_Id,t3.[ProductId] AS ProductAttribute_ProductId,t3.[AvailableAttributeId] AS ProductAttribute_AvailableAttributeId,t3.[InputFieldType] AS ProductAttribute_InputFieldType,t3.[Label] AS ProductAttribute_Label,t3.[DisplayOrder] AS ProductAttribute_DisplayOrder,t3.[IsRequired] AS ProductAttribute_IsRequired,t3.[Id] AS ProductAttribute_Id,t4.[ProductAttributeId] AS ProductAttributeValue_ProductAttributeId,t4.[AvailableAttributeValueId] AS ProductAttributeValue_AvailableAttributeValueId,t4.[Label] AS ProductAttributeValue_Label,t4.[Id] AS ProductAttributeValue_Id,t5.[ProductId] AS WarehouseInventory_ProductId,t5.[ProductVariantId] AS WarehouseInventory_ProductVariantId,t5.[WarehouseId] AS WarehouseInventory_WarehouseId,t5.[TotalQuantity] AS WarehouseInventory_TotalQuantity,t5.[ReservedQuantity] AS WarehouseInventory_ReservedQuantity,t5.[Id] AS WarehouseInventory_Id,t1.[ProductId] AS ProductVariant_ProductId,t1.[Sku] AS ProductVariant_Sku,t1.[Gtin] AS ProductVariant_Gtin,t1.[Mpn] AS ProductVariant_Mpn,t1.[Price] AS ProductVariant_Price,t1.[ComparePrice] AS ProductVariant_ComparePrice,t1.[TrackInventory] AS ProductVariant_TrackInventory,t1.[CanOrderWhenOutOfStock] AS ProductVariant_CanOrderWhenOutOfStock,t1.[MediaId] AS ProductVariant_MediaId,t1.[Id] AS ProductVariant_Id FROM (SELECT [ProductId],[Sku],[Gtin],[Mpn],[Price],[ComparePrice],[TrackInventory],[CanOrderWhenOutOfStock],[MediaId],[Id] FROM [ProductVariant] t1) AS t1 LEFT OUTER JOIN [ProductVariantAttribute] t2 ON t1.[Id] = t2.[ProductVariantId] LEFT OUTER JOIN [ProductAttribute] t3 ON t2.[ProductAttributeId] = t3.[Id] LEFT OUTER JOIN [ProductAttributeValue] t4 ON t3.[Id] = t4.[ProductAttributeId] LEFT OUTER JOIN [WarehouseInventory] t5 ON t1.[Id] = t5.[ProductVariantId]  WHERE t1.[Id] IN ({variantIdFetcher})";
            }
            else
            {
                sql =
                    $"SELECT t2.`ProductVariantId` AS ProductVariantAttribute_ProductVariantId,t2.`ProductAttributeId` AS ProductVariantAttribute_ProductAttributeId,t2.`ProductAttributeValueId` AS ProductVariantAttribute_ProductAttributeValueId,t2.`Id` AS ProductVariantAttribute_Id,t3.`ProductId` AS ProductAttribute_ProductId,t3.`AvailableAttributeId` AS ProductAttribute_AvailableAttributeId,t3.`InputFieldType` AS ProductAttribute_InputFieldType,t3.`Label` AS ProductAttribute_Label,t3.`DisplayOrder` AS ProductAttribute_DisplayOrder,t3.`IsRequired` AS ProductAttribute_IsRequired,t3.`Id` AS ProductAttribute_Id,t4.`ProductAttributeId` AS ProductAttributeValue_ProductAttributeId,t4.`AvailableAttributeValueId` AS ProductAttributeValue_AvailableAttributeValueId,t4.`Label` AS ProductAttributeValue_Label,t4.`Id` AS ProductAttributeValue_Id,t5.`ProductId` AS WarehouseInventory_ProductId,t5.`ProductVariantId` AS WarehouseInventory_ProductVariantId,t5.`WarehouseId` AS WarehouseInventory_WarehouseId,t5.`TotalQuantity` AS WarehouseInventory_TotalQuantity,t5.`ReservedQuantity` AS WarehouseInventory_ReservedQuantity,t5.`Id` AS WarehouseInventory_Id,t1.`ProductId` AS ProductVariant_ProductId,t1.`Sku` AS ProductVariant_Sku,t1.`Gtin` AS ProductVariant_Gtin,t1.`Mpn` AS ProductVariant_Mpn,t1.`Price` AS ProductVariant_Price,t1.`ComparePrice` AS ProductVariant_ComparePrice,t1.`TrackInventory` AS ProductVariant_TrackInventory,t1.`CanOrderWhenOutOfStock` AS ProductVariant_CanOrderWhenOutOfStock,t1.`MediaId` AS ProductVariant_MediaId,t1.`Id` AS ProductVariant_Id FROM (SELECT `ProductId`,`Sku`,`Gtin`,`Mpn`,`Price`,`ComparePrice`,`TrackInventory`,`CanOrderWhenOutOfStock`,`MediaId`,`Id` FROM `ProductVariant` t1) AS t1 LEFT OUTER JOIN `ProductVariantAttribute` t2 ON t1.`Id` = t2.`ProductVariantId` LEFT OUTER JOIN `ProductAttribute` t3 ON t2.`ProductAttributeId` = t3.`Id` LEFT OUTER JOIN `ProductAttributeValue` t4 ON t3.`Id` = t4.`ProductAttributeId` LEFT OUTER JOIN `WarehouseInventory` t5 ON t1.`Id` = t5.`ProductVariantId`  WHERE t1.`Id` IN ({variantIdFetcher})";
            }

            var variant = Repository
                          .Join <ProductVariantAttribute>("Id", "ProductVariantId", joinType: JoinType.LeftOuter)
                          .Join <ProductAttribute>("ProductAttributeId", "Id", joinType: JoinType.LeftOuter)
                          .Join <ProductAttributeValue>("Id", "ProductAttributeId", joinType: JoinType.LeftOuter)
                          .Join <WarehouseInventory>("Id", "ProductVariantId", SourceColumn.Parent, joinType: JoinType.LeftOuter)
                          .Relate(RelationTypes.OneToMany <ProductVariant, ProductVariantAttribute>())
                          .Relate <ProductAttribute>((productVariant, attribute) =>
            {
                var pva = productVariant.ProductVariantAttributes.FirstOrDefault(x => x.ProductAttributeId == attribute.Id);
                if (pva != null)
                {
                    pva.ProductAttribute = attribute;
                }
            })
                          .Relate <ProductAttributeValue>((productVariant, value) =>
            {
                var pva = productVariant.ProductVariantAttributes.FirstOrDefault(x => x.ProductAttributeValueId == value.Id);
                if (pva != null)
                {
                    pva.ProductAttributeValue = value;
                }
            })
                          .Relate(RelationTypes.OneToMany <ProductVariant, WarehouseInventory>())
                          .QueryNested(sql)
                          .FirstOrDefault();

            return(variant);
        }
Exemple #7
0
        public UserCode GetUserCode(int userId, UserCodeType userCodeType)
        {
            var userCode = Repository.Where(x => x.UserId == userId && x.CodeType == userCodeType)
                           .Join <User>("UserId", "Id", joinType: JoinType.LeftOuter)
                           .Relate(RelationTypes.OneToOne <UserCode, User>())
                           .SelectNested()
                           .FirstOrDefault() ?? new UserCode();

            userCode.UserId = userId;
            userCode.Code   = userCodeType == UserCodeType.EmailOtp ? _cryptographyService.GetNumericCode(6) : Guid.NewGuid().ToString("D");

            userCode.CodeType  = userCodeType;
            userCode.CreatedOn = DateTime.UtcNow;
            InsertOrUpdate(userCode);
            return(userCode);
        }
Exemple #8
0
        public async Task <Result> MakeRelation(int personID, int targetID, RelationTypes type)
        {
            try
            {
                var person = await _peopleDomainService.GetPerson(personID);

                var relativePerson = await _peopleDomainService.GetPerson(targetID);

                person.AddRelatedPerson(relativePerson, type);
                return(await _peopleDomainService.UpdatePerson(personID, person));
            }
            catch (Exception ex)
            {
                return(new Result(-1, false, ex.Message));
            }
        }
        public IEnumerable <WarehouseInventory> GetByProductVariants(IList <int> productVariantIds, int?warehouseId = null)
        {
            Expression <Func <WarehouseInventory, bool> > warehouseWhere = x => true;

            if (warehouseId.HasValue)
            {
                warehouseWhere = x => x.WarehouseId == warehouseId;
            }
            return(Repository
                   .Join <Warehouse>("WarehouseId", "Id", joinType: JoinType.LeftOuter)
                   .Join <Address>("AddressId", "Id", joinType: JoinType.LeftOuter)
                   .Relate(RelationTypes.OneToOne <WarehouseInventory, Warehouse>())
                   .Relate <Address>((inventory, address) => { inventory.Warehouse.Address = address; })
                   .Where(x => x.ProductVariantId != null && productVariantIds.Contains((int)x.ProductVariantId))
                   .Where(warehouseWhere)
                   .SelectNested());
        }
 public override EmailTemplate FirstOrDefault(Expression <Func <EmailTemplate, bool> > @where)
 {
     return(Repository.Join <EmailAccount>("EmailAccountId", "Id")
            .Join <EmailTemplate>("ParentEmailTemplateId", "Id", typeof(EmailTemplate), JoinType.LeftOuter)
            .Relate(RelationTypes.OneToOne <EmailTemplate, EmailAccount>())
            .Relate <EmailTemplate>((template, emailTemplate) =>
     {
         if (template.ParentEmailTemplateId == emailTemplate.Id)
         {
             template.ParentEmailTemplate = emailTemplate;
         }
     })
            .OrderBy(x => x.TemplateName)
            .Where(where)
            .SelectNested()
            .FirstOrDefault());
 }
Exemple #11
0
        public virtual List <Member> GetSelfMemberships(Center center, RelationTypes relationType, bool?isArchive = null)
        {
            //var  = new IField[0];
            var centerTypeId = _centerService
                               .GetDefaultQuery()
                               .Where(p => p.Id == center.Id)
                               .Select(p => p.CenterTypeId)
                               .FirstOrDefault();

            var relationRule = _relationRuleService
                               .GetDefaultQuery()
                               .Where(p => p.RelationTypeId == (int)relationType)
                               .FirstOrDefault();

            var memberService = _memberService;

            if (relationRule.CenterTypeId1 == centerTypeId && relationRule.CenterTypeId2 == centerTypeId)
            {
                return(memberService
                       .GetDefaultQuery()
                       .Where(p => p.RelatedTypeId == (int)relationType && (p.CenterId1 == center.Id || p.CenterId2 == center.Id))
                       .Where(p => isArchive.HasValue && p.IsArchive == isArchive.Value)
                       .ToList());
            }
            else if (relationRule.CenterTypeId1 == centerTypeId)
            {
                return(memberService
                       .GetDefaultQuery()
                       .Where(p => p.RelatedTypeId == (int)relationType && p.CenterId1 == center.Id)
                       .Where(p => isArchive.HasValue && p.IsArchive == isArchive.Value)
                       .ToList());
            }
            else if (relationRule.CenterTypeId2 == centerTypeId)
            {
                return(memberService
                       .GetDefaultQuery()
                       .Where(p => p.RelatedTypeId == (int)relationType && (p.CenterId1 == center.Id || p.CenterId2 == center.Id))
                       .Where(p => isArchive.HasValue && p.IsArchive == isArchive.Value)
                       .ToList());
            }
            else
            {
                return(new List <Member>());
            }
        }
        public IList <ProductSpecification> GetByProductId(int productId, int?groupId = null)
        {
            var query = Repository
                        .Join <ProductSpecificationGroup>("ProductSpecificationGroupId", "Id", joinType: JoinType.LeftOuter)
                        .Join <ProductSpecificationValue>("Id", "ProductSpecificationId", SourceColumn.Parent,
                                                          JoinType.LeftOuter)
                        .Join <AvailableAttributeValue>("AvailableAttributeValueId", "Id", joinType: JoinType.LeftOuter)
                        .Join <AvailableAttribute>("AvailableAttributeId", "Id", joinType: JoinType.LeftOuter)
                        .Relate(RelationTypes.OneToOne <ProductSpecification, ProductSpecificationGroup>())
                        .Relate(RelationTypes.OneToMany <ProductSpecification, ProductSpecificationValue>())
                        .Relate <AvailableAttributeValue>((specification, value) =>
            {
                if (specification.Tag == null)
                {
                    specification.Tag = new List <AvailableAttributeValue>();
                }

                var attributeList = (List <AvailableAttributeValue>)specification.Tag;
                if (!attributeList.Contains(value))
                {
                    attributeList.Add(value);
                }

                var pav = specification.ProductSpecificationValues.FirstOrDefault(
                    x => x.AvailableAttributeValueId == value.Id);
                if (pav != null)
                {
                    pav.AvailableAttributeValue = value;
                }
            })
                        .Relate <AvailableAttribute>((specification, availableAttribute) =>
            {
                availableAttribute.AvailableAttributeValues = (List <AvailableAttributeValue>)specification.Tag;
                specification.AvailableAttribute            = availableAttribute;
            })
                        .Where(x => x.ProductId == productId)
                        .OrderBy(x => x.DisplayOrder);

            if (groupId.HasValue)
            {
                query = query.Where(x => x.ProductSpecificationGroupId == groupId);
            }
            return(query.SelectNested().ToList());
        }
Exemple #13
0
        public IList <Shipment> GetShipmentsByOrderId(int orderId)
        {
            Expression <Func <OrderItem, bool> > whereOrderIdMatches = item => item.OrderId == orderId;

            return(Repository.Join <ShipmentItem>("Id", "ShipmentId", joinType: JoinType.LeftOuter)
                   .Join <OrderItem>("OrderItemId", "Id", joinType: JoinType.LeftOuter)
                   .Join <Product>("ProductId", "Id", joinType: JoinType.LeftOuter)
                   .Join <ShipmentHistory>("Id", "ShipmentId", SourceColumn.Parent, JoinType.LeftOuter)
                   .Join <Warehouse>("WarehouseId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                   .Join <Address>("AddressId", "Id", joinType: JoinType.LeftOuter)
                   .Relate(RelationTypes.OneToMany <Shipment, ShipmentItem>())
                   .Relate(RelationTypes.OneToMany <Shipment, ShipmentHistory>())
                   .Relate <OrderItem>((shipment, item) =>
            {
                if (shipment.ShipmentItems == null)
                {
                    return;
                }
                var shipmentItem = shipment.ShipmentItems.FirstOrDefault(x => x.OrderItemId == item.Id);
                if (shipmentItem != null)
                {
                    shipmentItem.OrderItem = item;
                }
            })
                   .Relate <Product>((shipment, product) =>
            {
                if (shipment.ShipmentItems == null)
                {
                    return;
                }
                var shipmentItem =
                    shipment.ShipmentItems.FirstOrDefault(
                        x => x.OrderItem != null && x.OrderItem.ProductId == product.Id);
                if (shipmentItem != null)
                {
                    shipmentItem.OrderItem.Product = product;
                }
            })
                   .Relate(RelationTypes.OneToOne <Shipment, Warehouse>())
                   .Relate <Address>((shipment, address) => { shipment.Warehouse.Address = address; })
                   .Where(whereOrderIdMatches)
                   .SelectNested()
                   .ToList());
        }
        public IList <Category> GetFullCategoryTree()
        {
            return(_cacheProvider.Get <IList <Category> >(CategoryTreeCacheKey, () =>
            {
                Expression <Func <SeoMeta, bool> > nameWhere = (meta) => meta.EntityName == "Category";
                var allCategories = Repository.Join <SeoMeta>("Id", "EntityId", joinType: JoinType.LeftOuter)
                                    .Relate(RelationTypes.OneToOne <Category, SeoMeta>())
                                    .Where(nameWhere)
                                    .SelectNested()
                                    .ToList();

                foreach (var category in allCategories)
                {
                    MakeTree(category, allCategories);
                }

                return allCategories.ToList();
            }));
        }
Exemple #15
0
        private IEntitySet <Menu> GetByWhere(Expression <Func <Menu, bool> > @where)
        {
            Expression <Func <MenuItem, object> > orderBy = x => x.DisplayOrder;

            return(_eventPublisherService.Filter(Repository
                                                 .Join <MenuItem>("Id", "MenuId", joinType: JoinType.LeftOuter)
                                                 .Join <SeoMeta>("SeoMetaId", "Id", joinType: JoinType.LeftOuter)
                                                 .Relate(RelationTypes.OneToMany <Menu, MenuItem>())
                                                 .Relate <SeoMeta>((menu, meta) =>
            {
                var menuItems = menu.MenuItems.Where(x => x.SeoMetaId == meta.Id);
                foreach (var menuItem in menuItems)
                {
                    menuItem.SeoMeta = meta;
                }
            })
                                                 .Where(where)
                                                 .OrderBy(orderBy, RowOrder.Ascending)));
        }
Exemple #16
0
        public IList <User> GetUsers(string searchText, int[] restrictToRoles, Expression <Func <User, object> > orderBy, SortOrder sortOrder, int page, int count, out int totalMatches, bool negateRoleRestriction = false, Expression <Func <User, bool> > where = null)
        {
            var query = Repository
                        .Where(x => !x.Deleted)
                        .Join <UserRole>("Id", "UserId", joinType: JoinType.LeftOuter)
                        .Join <Role>("RoleId", "Id", joinType: JoinType.LeftOuter)
                        .Relate(RelationTypes.OneToMany <User, Role>());

            if (!searchText.IsNullEmptyOrWhiteSpace())
            {
                searchText = searchText.Trim();
                query      = query.Where(x => x.FirstName.Contains(searchText) ||
                                         x.LastName.Contains(searchText) ||
                                         x.LastLoginIpAddress.Contains(searchText) ||
                                         x.Email.Contains(searchText));
            }

            if (restrictToRoles != null && restrictToRoles.Any())
            {
                var roleIds = restrictToRoles.ToList();
                Expression <Func <Role, bool> > roleWhere;
                if (negateRoleRestriction)
                {
                    roleWhere = role => !roleIds.Contains(role.Id);
                }
                else
                {
                    roleWhere = role => roleIds.Contains(role.Id);
                }
                query = query.Where(roleWhere);
            }

            if (orderBy == null)
            {
                orderBy = x => x.Name;
            }
            if (where != null)
            {
                query = query.Where(where);
            }
            query = query.OrderBy(orderBy, sortOrder == SortOrder.Ascending ? RowOrder.Ascending : RowOrder.Descending);
            return(query.SelectNestedWithTotalMatches(out totalMatches, page, count).ToList());
        }
Exemple #17
0
        public void AddRelatedPerson(Person rp, RelationTypes type)
        {
            var relPerson = new RelatedPerson
            {
                BirthDate       = rp.BirthDate,
                City            = rp.City,
                CityID          = rp.CityID,
                FirstName       = rp.FirstName,
                Gender          = rp.Gender,
                ImageUrl        = rp.ImageUrl,
                ID              = rp.ID,
                LastName        = rp.LastName,
                PersonalNumber  = rp.PersonalNumber,
                PhoneNumber     = rp.PhoneNumber.Number.Value,
                PhoneNumberType = rp.PhoneNumber.PhoneNumberType,
                RelationType    = type
            };

            _relatedPeople.Add(relPerson);
            //TODO: VALIDATIOn
        }
Exemple #18
0
    /// <summary>
    /// Sammelt die Namen der in <paramref name="relationType"/> gesetzten Flags in
    /// <paramref name="list"/>. <paramref name="list"/> wird von der Methode nicht
    /// geleert.
    /// </summary>
    /// <param name="relationType"><see cref="RelationTypes"/>-Objekt oder <c>null</c>.</param>
    /// <param name="list">Eine Liste zum sammeln.</param>
    internal static void CollectValueStrings(RelationTypes?relationType, List <string> list)
    {
        Debug.Assert(list != null);

        if (!relationType.HasValue)
        {
            return;
        }

        RelationTypes value = relationType.Value & RelationTypesConverter.DEFINED_RELATION_TYPES_VALUES;

        for (int i = RelationTypesConverter.RelationTypesMinBit; i <= RelationTypesConverter.RelationTypesMaxBit; i++)
        {
            RelationTypes flag = (RelationTypes)(1 << i);

            if (value.HasFlag(flag))
            {
                list.Add(flag.ToVcfString());
            }
        }
    }
Exemple #19
0
        private IEntitySet <ReturnRequest> GetWithJoin(bool withReturnOrder = false)
        {
            var query = Repository.Join <Order>("OrderId", "Id", joinType: JoinType.LeftOuter)
                        .Join <OrderItem>("OrderItemId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                        .Join <Product>("ProductId", "Id", typeof(OrderItem))
                        .Join <ProductMedia>("Id", "ProductId", joinType: JoinType.LeftOuter)
                        .Join <Media>("MediaId", "Id", joinType: JoinType.LeftOuter)
                        .Join <User>("UserId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                        .Relate <Order>((request, order) =>
            {
                if (request.OrderId == order.Id)
                {
                    request.Order = order;
                }

                if (request.ReturnOrderId == order.Id)
                {
                    request.ReturnOrder = order;
                }
            })
                        .Relate(RelationTypes.OneToOne <ReturnRequest, OrderItem>((request, item) =>
            {
                request.Order.OrderItems = request.Order.OrderItems ?? new List <OrderItem>();
                request.Order.OrderItems.Add(item);
            }))
                        .Relate <Product>((request, product) => { request.OrderItem.Product = product; })
                        .Relate <Media>((request, media) =>
            {
                request.OrderItem.Product.MediaItems =
                    request.OrderItem.Product.MediaItems ?? new List <Media>();
                request.OrderItem.Product.MediaItems.Add(media);
            })
                        .Relate(RelationTypes.OneToOne <ReturnRequest, User>());

            if (withReturnOrder)
            {
                query = query.Join <Order>("ReturnOrderId", "Id", SourceColumn.Parent, JoinType.LeftOuter);
            }
            return(query);
        }
Exemple #20
0
        public virtual List <MembershipEntity> GetMemberships(int centerId, RelationTypes relationType, bool?isArchive, bool includeAdditionalInfo)
        {
            //var  = new IField[0];
            var memberService       = _memberService;
            var centerService       = _centerService;
            var relationTypeService = _relationTypeService;
            var relationRuleService = _relationRuleService;
            //centerService.MakeFriend(memberService);
            //relationTypeService.MakeFriend(memberService);
            //relationRuleService.MakeFriend(relationTypeService);

            var result = from m in memberService.GetDefaultQuery()
                         join c1 in centerService.GetDefaultQuery() on m.CenterId1 equals c1.Id
                         join c2 in centerService.GetDefaultQuery() on m.CenterId2 equals c2.Id
                         join rt in relationTypeService.GetDefaultQuery() on m.RelatedTypeId equals rt.Id
                         join rr in relationRuleService.GetDefaultQuery() on rt.Id equals rr.RelationTypeId
                         where ((c1.Id == centerId && c1.CenterTypeId == rr.CenterTypeId1) ||
                                (c2.Id == centerId && c2.CenterTypeId == rr.CenterTypeId2)) &&
                         (rt.Id == (int)relationType || (int)relationType == (int)RelationTypes.None) &&
                         ((isArchive.HasValue && m.IsArchive == isArchive.Value) || !isArchive.HasValue)
                         select new MembershipEntity
            {
                MemberId               = m.Id,
                SelfCenterId           = c1.Id == centerId ? c1.Id : c2.Id,
                SelfCenterTitle        = c1.Id == centerId ? c1.Title : c2.Title,
                SelfCenterIndex        = c1.Id == centerId ? 1 : 2,
                CenterId               = c1.Id == centerId ? c2.Id : c1.Id,
                CenterTitle            = c1.Id == centerId ? c2.Title : c1.Title,
                FromDate               = m.FromDate,
                ToDate                 = m.ToDate,
                IsArchive              = m.IsArchive,
                RelationTypeId         = (int)relationType,
                RelationTypeTitle      = rt.Title,
                RelationTypeFarsiTitle = rt.FarsiTitle,
                AdditionalInfo         = includeAdditionalInfo ? m.AdditionalInfo : null,
                OrderNo                = m.OrderNo
            };

            return(result.ToList());
        }
Exemple #21
0
        public IEntitySet <T> Filter(IEntitySet <T> entity)
        {
            var entityName = typeof(T).Name;
            Expression <Func <EntityStore, bool> > storeWhere = x => true;

            if (!_alwaysAllTypes.Contains(typeof(T)))
            {
                //restrict to current store
                var storeId         = ApplicationEngine.CurrentStore?.Id ?? 0;
                var allowedStoreIds = new List <int> {
                    storeId, 0
                };
                storeWhere = store => store.StoreId == null || allowedStoreIds.Contains(store.StoreId);
            }

            entity.Join <EntityStore>("Id", "EntityId", SourceColumn.Parent, JoinType.LeftOuter, (storeEntity, store) =>
                                      store.EntityName == entityName)
            .Join <Store>("StoreId", "Id", joinType: JoinType.LeftOuter)
            .Relate(RelationTypes.OneToMany <T, Store>())
            .Where(storeWhere);
            return(entity);
        }
Exemple #22
0
        public virtual IQueryable <MembershipTwoEntity> GetQueryableMemberships(RelationTypes relationType, bool?isArchive, bool includeAdditionalInfo)
        {
            //var  = new IField[0];
            var memberService       = _memberService;
            var centerService       = _centerService;
            var relationTypeService = _relationTypeService;
            var relationRuleService = _relationRuleService;
            //centerService.MakeFriend(memberService);
            //relationTypeService.MakeFriend(centerService);

            //if (service != null)
            //    service.MakeFriend(memberService);

            var result = from m in memberService.GetDefaultQuery()
                         join c1 in centerService.GetDefaultQuery() on m.CenterId1 equals c1.Id
                         join c2 in centerService.GetDefaultQuery() on m.CenterId2 equals c2.Id
                         join rt in relationTypeService.GetDefaultQuery() on m.RelatedTypeId equals rt.Id
                         where (m.RelatedTypeId == (int)relationType || (int)relationType == (int)RelationTypes.None) &&
                         ((isArchive.HasValue && m.IsArchive == isArchive.Value) || !isArchive.HasValue)
                         select new MembershipTwoEntity
            {
                MemberId               = m.Id,
                CenterId1              = c1.Id,
                CenterTitle1           = c1.Title,
                CenterId2              = c2.Id,
                CenterTitle2           = c2.Title,
                FromDate               = m.FromDate,
                ToDate                 = m.ToDate,
                IsArchive              = m.IsArchive,
                RelationTypeId         = rt.Id,
                RelationTypeTitle      = rt.Title,
                RelationTypeFarsiTitle = rt.FarsiTitle,
                AdditionalInfo         = includeAdditionalInfo ? m.AdditionalInfo : null,
                OrderNo                = m.OrderNo
            };

            return(result.AsQueryable());
        }
Exemple #23
0
        private User GetByWhere(Expression <Func <User, bool> > where)
        {
            var query = Repository.Where(where)
                        .Join <UserRole>("Id", "UserId", joinType: JoinType.LeftOuter)
                        .Join <Role>("RoleId", "Id", joinType: JoinType.LeftOuter)
                        .Join <RoleCapability>("Id", "RoleId", joinType: JoinType.LeftOuter)
                        .Join <Capability>("CapabilityId", "Id", joinType: JoinType.LeftOuter)
                        .Join <UserCapability>("Id", "UserId", SourceColumn.Parent, JoinType.LeftOuter)
                        .Join <Capability>("CapabilityId", "Id", joinType: JoinType.LeftOuter)
                        .Relate(RelationTypes.OneToMany <User, Role>())
                        .Relate <Capability>((user, capability) =>
            {
                user.Capabilities = user.Capabilities ?? new List <Capability>();
                if (user.Capabilities.All(x => x.Id != capability.Id))
                {
                    user.Capabilities.Add(capability);
                }
            });

            var userObject = query.SelectNested().FirstOrDefault();

            return(userObject);
        }
 public Conditional()
 {
     _innerType = RelationTypes.Conditional;
 }
Exemple #25
0
    public static RelationTypes?Unset(this RelationTypes?value, RelationTypes flags)
    {
        value &= ~flags;

        return(value == (RelationTypes)0 ? null : value);
    }
 public Categorical()
 {
     _innerType = RelationTypes.Categorical;
 }
 private IEntitySet <DiscountCoupon> GetByWhere(Expression <Func <DiscountCoupon, bool> > where)
 {
     return(Repository.Where(where)
            .Join <RestrictionValue>("Id", "DiscountCouponId", joinType: JoinType.LeftOuter)
            .Relate(RelationTypes.OneToMany <DiscountCoupon, RestrictionValue>()));
 }
 private IEntitySet <ProductVariant> GetQuery(Expression <Func <ProductVariant, bool> > where)
 {
     return(Repository.Where(where)
            .Join <ProductVariantAttribute>("Id", "ProductVariantId", joinType: JoinType.LeftOuter)
            .Join <ProductAttributeValue>("ProductAttributeValueId", "Id", joinType: JoinType.LeftOuter)
            .Join <ProductAttribute>("ProductAttributeId", "Id", joinType: JoinType.LeftOuter)
            .Join <AvailableAttribute>("AvailableAttributeId", "Id", joinType: JoinType.LeftOuter)
            .Join <AvailableAttributeValue>("Id", "AvailableAttributeId", joinType: JoinType.LeftOuter)
            .Join <WarehouseInventory>("Id", "ProductVariantId", SourceColumn.Parent, joinType: JoinType.LeftOuter)
            .Relate(RelationTypes.OneToMany <ProductVariant, ProductVariantAttribute>())
            .Relate <ProductAttributeValue>((variant, value) =>
     {
         var productVariantAttribute =
             variant.ProductVariantAttributes.FirstOrDefault(x => x.ProductAttributeValueId == value.Id);
         if (productVariantAttribute != null)
         {
             productVariantAttribute.ProductAttributeValue = value;
         }
     })
            .Relate <ProductAttribute>((variant, attribute) =>
     {
         var productVariantAttribute =
             variant.ProductVariantAttributes.FirstOrDefault(x => x.ProductAttributeId == attribute.Id);
         if (productVariantAttribute != null && productVariantAttribute.ProductAttribute == null)
         {
             productVariantAttribute.ProductAttribute = attribute;
         }
     })
            .Relate <AvailableAttribute>((variant, attribute) =>
     {
         var productVariantAttribute =
             variant.ProductVariantAttributes.FirstOrDefault(
                 x => x.ProductAttribute.AvailableAttribute == null &&
                 x.ProductAttribute.AvailableAttributeId == attribute.Id);
         if (productVariantAttribute != null)
         {
             productVariantAttribute.ProductAttribute.AvailableAttribute = attribute;
             if (productVariantAttribute.ProductAttribute.Label.IsNullEmptyOrWhiteSpace())
             {
                 productVariantAttribute.ProductAttribute.Label = attribute.Name;
             }
         }
     })
            .Relate <AvailableAttributeValue>((variant, attributeValue) =>
     {
         var pav = variant.ProductVariantAttributes.Select(x => x.ProductAttributeValue)
                   .FirstOrDefault(x => x.AvailableAttributeValueId == attributeValue.Id);
         if (pav != null)
         {
             if (pav.AvailableAttributeValue == null)
             {
                 pav.AvailableAttributeValue = attributeValue;
             }
             if (pav.Label.IsNullEmptyOrWhiteSpace())
             {
                 pav.Label = attributeValue?.Value;
             }
         }
     })
            .Relate(RelationTypes.OneToMany <ProductVariant, WarehouseInventory>()));
 }
Exemple #29
0
 public static bool IsSet(this RelationTypes?value, RelationTypes flags) => (value & flags) == flags;
Exemple #30
0
        private Cart GetCart(int userId, bool isWishlist)
        {
            Expression <Func <SeoMeta, bool> > seoMetaWhere = meta => meta.EntityName == "Product";
            Expression <Func <Product, bool> > productWhere = product => product.Published;
            Expression <Func <Address, bool> > addressWhere = address => address.EntityName == null || address.EntityName == nameof(User);
            var userCart = Repository.Where(x => x.UserId == userId && x.IsWishlist == isWishlist)
                           .Join <CartItem>("Id", "CartId", joinType: JoinType.LeftOuter)
                           .Join <Product>("ProductId", "Id", joinType: JoinType.LeftOuter)
                           .Join <SeoMeta>("Id", "EntityId", joinType: JoinType.LeftOuter)
                           .Join <ProductMedia>("EntityId", "ProductId", joinType: JoinType.LeftOuter)
                           .Join <Media>("MediaId", "Id", joinType: JoinType.LeftOuter)
                           .Join <DiscountCoupon>("DiscountCouponId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                           .Join <RestrictionValue>("Id", "DiscountCouponId", joinType: JoinType.LeftOuter)
                           .Join <User>("UserId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                           .Join <UserRole>("Id", "UserId", joinType: JoinType.LeftOuter)
                           .Join <Role>("RoleId", "Id", joinType: JoinType.LeftOuter)
                           .Join <Address>("BillingAddressId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                           .Join <Country>("CountryId", "Id", joinType: JoinType.LeftOuter)
                           .Join <Address>("ShippingAddressId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                           .Join <Country>("CountryId", "Id", joinType: JoinType.LeftOuter)
                           .Relate(RelationTypes.OneToMany <Cart, CartItem>())
                           .Relate <Product>((cart, product) =>
            {
                var cartItem = cart.CartItems.FirstOrDefault(x => x.ProductId == product.Id && x.Product == null);
                if (cartItem != null)
                {
                    cartItem.Product = product;
                }
            })
                           .Relate <SeoMeta>((cart, meta) =>
            {
                var cartItem = cart.CartItems.FirstOrDefault(x => x.ProductId == meta.EntityId);
                if (cartItem != null)
                {
                    cartItem.Product.SeoMeta = meta;
                }
            })
                           .Relate <ProductMedia>((cart, media) =>
            {
                var cartItem = cart.CartItems.FirstOrDefault(x => x.ProductId == media.ProductId);
                if (cartItem?.Product != null)
                {
                    //temporary storage for media ids
                    cartItem.Tag = cartItem.Tag ?? new List <int>();
                    cartItem.Product.MediaItems = cartItem.Product.MediaItems ?? new List <Media>();

                    (cartItem.Tag as List <int>).Add(media.MediaId);
                }
            })
                           .Relate <Media>((cart, media) =>
            {
                var cartItem =
                    cart.CartItems.FirstOrDefault(
                        x => x.Tag != null && (x.Tag as List <int>).Contains(media.Id));
                if (cartItem != null)
                {
                    if (cartItem.Product.MediaItems.All(x => x.Id != media.Id))
                    {
                        cartItem.Product.MediaItems.Add(media);
                    }
                }
            })
                           .Relate(RelationTypes.OneToOne <Cart, DiscountCoupon>())
                           .Relate <RestrictionValue>((cart, value) =>
            {
                cart.DiscountCoupon.RestrictionValues =
                    cart.DiscountCoupon.RestrictionValues ?? new List <RestrictionValue>();
                cart.DiscountCoupon.RestrictionValues.Add(value);
            })
                           .Relate(RelationTypes.OneToOne <Cart, User>())
                           .Relate <Role>((cart, role) =>
            {
                cart.User.Roles = cart.User.Roles ?? new List <Role>();
                cart.User.Roles.Add(role);
            })
                           .Relate <Address>((cart, address) =>
            {
                if (cart.BillingAddressId == address.Id)
                {
                    cart.BillingAddress = address;
                }
                if (cart.ShippingAddressId == address.Id)
                {
                    cart.ShippingAddress = address;
                }
            })
                           .Relate <Country>((cart, country) =>
            {
                if (cart.BillingAddress?.CountryId == country.Id)
                {
                    cart.BillingAddress.Country = country;
                }
                if (cart.ShippingAddress != null && cart.ShippingAddress?.CountryId == country.Id)
                {
                    cart.ShippingAddress.Country = country;
                }
            })
                           .Where(seoMetaWhere)
                           .Where(productWhere)
                           .Where(addressWhere)
                           .SelectNested()
                           .FirstOrDefault();

            //do we have an empty cart
            userCart = userCart ?? Repository.Where(x => x.UserId == userId && x.IsWishlist == isWishlist).SelectSingle() ?? new Cart();

            if (userCart.Id == 0)
            {
                //save a new cart for user
                userCart.UserId     = userId;
                userCart.IsWishlist = isWishlist;
                Insert(userCart);
            }
            return(userCart);
        }
Exemple #31
0
        public IEnumerable <OrderItem> GetWithProducts(IList <int> orderItemIds)
        {
            return(Repository.Where(x => orderItemIds.Contains(x.Id))
                   .Join <Product>("ProductId", "Id", joinType: JoinType.LeftOuter)
                   .Join <WarehouseInventory>("Id", "ProductId", joinType: JoinType.LeftOuter)
                   //.Join<Warehouse>("WarehouseId", "Id", joinType: JoinType.LeftOuter)
                   //.Join<Address>("AddressId", "Id", joinType: JoinType.LeftOuter)
                   .Join <ProductVariant>("ProductVariantId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                   .Join <WarehouseInventory>("Id", "ProductVariantId", joinType: JoinType.LeftOuter)
                   .Join <Order>("OrderId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                   //.Join<Warehouse>("WarehouseId", "Id", joinType: JoinType.LeftOuter)
                   //.Join<Address>("AddressId", "Id", joinType: JoinType.LeftOuter)
                   .Relate(RelationTypes.OneToOne <OrderItem, Product>())
                   .Relate(RelationTypes.OneToOne <OrderItem, ProductVariant>())
                   .Relate(RelationTypes.OneToOne <OrderItem, Order>((item, order) =>
            {
                order.OrderItems = order.OrderItems ?? new List <OrderItem>();
                if (!order.OrderItems.Contains(item))
                {
                    order.OrderItems.Add(item);
                }
            }))
                   .Relate <WarehouseInventory>((item, inventory) =>
            {
                if (item.ProductVariantId > 0)
                {
                    item.ProductVariant.Inventories =
                        item.ProductVariant.Inventories ?? new List <WarehouseInventory>();
                    if (!item.ProductVariant.Inventories.Contains(inventory))
                    {
                        item.ProductVariant.Inventories.Add(inventory);
                    }
                }
                else
                {
                    item.Product.Inventories =
                        item.Product.Inventories ?? new List <WarehouseInventory>();
                    if (!item.Product.Inventories.Contains(inventory))
                    {
                        item.Product.Inventories.Add(inventory);
                    }
                }
            })

                   /*.Relate<Warehouse>((item, warehouse) =>
                    * {
                    *  var inventories = item.ProductVariantId > 0
                    *      ? item.ProductVariant.Inventories
                    *      : item.Product.Inventories;
                    *  if (inventories != null)
                    *  {
                    *      foreach (var inventory in inventories.Where(x => x.WarehouseId == warehouse.Id))
                    *          inventory.Warehouse = warehouse;
                    *  }
                    * })
                    * .Relate<Address>((item, address) =>
                    * {
                    *  var inventories = item.ProductVariantId > 0
                    *      ? item.ProductVariant.Inventories
                    *      : item.Product.Inventories;
                    *  if (inventories != null)
                    *  {
                    *      foreach (var inventory in inventories.Where(x => x.Warehouse.AddressId == address.Id))
                    *          inventory.Warehouse.Address = address;
                    *  }
                    * })*/
                   .SelectNested());
        }
Exemple #32
0
        public override Shipment Get(int id)
        {
            Expression <Func <SeoMeta, bool> > where = meta => meta.EntityName == nameof(Product);
            return(Repository.Where(x => x.Id == id)
                   .Join <ShipmentItem>("Id", "ShipmentId", joinType: JoinType.LeftOuter)
                   .Join <OrderItem>("OrderItemId", "Id", joinType: JoinType.LeftOuter)
                   .Join <Order>("OrderId", "Id", joinType: JoinType.LeftOuter)
                   .Join <ShipmentHistory>("Id", "ShipmentId", SourceColumn.Parent, JoinType.LeftOuter)
                   .Join <User>("UserId", "Id", typeof(Order), JoinType.LeftOuter)
                   .Join <Warehouse>("WarehouseId", "Id", SourceColumn.Parent, JoinType.LeftOuter)
                   .Join <Address>("AddressId", "Id", joinType: JoinType.LeftOuter)
                   .Join <Product>("ProductId", "Id", typeof(OrderItem), JoinType.LeftOuter)
                   .Join <SeoMeta>("Id", "EntityId", joinType: JoinType.LeftOuter)
                   .Relate(RelationTypes.OneToMany <Shipment, ShipmentItem>())
                   .Relate(RelationTypes.OneToMany <Shipment, ShipmentHistory>())
                   .Relate <OrderItem>((shipment, item) =>
            {
                var shipmentItem = shipment.ShipmentItems.FirstOrDefault(x => x.OrderItemId == item.Id);
                if (shipmentItem != null)
                {
                    shipmentItem.OrderItem = item;
                }
            })
                   .Relate <Order>((shipment, order) =>
            {
                var shipmentItem = shipment.ShipmentItems.FirstOrDefault(x => x.OrderItem.OrderId == order.Id);
                if (shipmentItem == null)
                {
                    return;
                }
                shipmentItem.OrderItem.Order = order;
                order.OrderItems = order.OrderItems ?? new List <OrderItem>();
                if (!order.OrderItems.Contains(shipmentItem.OrderItem))
                {
                    order.OrderItems.Add(shipmentItem.OrderItem);
                }

                order.Shipments = order.Shipments ?? new List <Shipment>();
                if (!order.Shipments.Contains(shipment))
                {
                    order.Shipments.Add(shipment);
                }
            })
                   .Relate <User>((shipment, user) =>
            {
                shipment.User = user;
            })
                   .Relate(RelationTypes.OneToOne <Shipment, Warehouse>())
                   .Relate <Address>((shipment, address) => { shipment.Warehouse.Address = address; })
                   .Relate <Product>((shipment, product) =>
            {
                foreach (var shipmentItem in shipment.ShipmentItems)
                {
                    if (shipmentItem.OrderItem.ProductId == product.Id)
                    {
                        shipmentItem.OrderItem.Product = product;
                    }
                }
            })
                   .Relate <SeoMeta>((shipment, meta) =>
            {
                foreach (var shipmentItem in shipment.ShipmentItems)
                {
                    if (shipmentItem.OrderItem.ProductId == meta.EntityId)
                    {
                        shipmentItem.OrderItem.Product.SeoMeta = meta;
                    }
                }
            })
                   .SelectNested()
                   .FirstOrDefault());
        }
 public Separative()
 {
     _innerType = RelationTypes.Separative;
 }
 public Relationship(PartyMember member, RelationTypes type)
 {
     relationSubject=member;
     relationType=type;
 }
Exemple #35
0
 public static RelationTypes?Set(this RelationTypes?value, RelationTypes flags) => value.HasValue ? (value.Value | flags) : flags;