public IList <T> FindAllByCultureAndScope(string cultureName, string dictionaryScopeName)
        {
            if (string.IsNullOrEmpty(cultureName))
            {
                throw new ArgumentException(EmptyArgumentMessage, nameof(cultureName));
            }
            if (string.IsNullOrEmpty(dictionaryScopeName))
            {
                throw new ArgumentException(EmptyArgumentMessage, nameof(dictionaryScopeName));
            }

            try
            {
                return(GetValuesList <T>(FetchCollections, null, query =>
                {
                    DictionaryScopeEntity dictionaryScope = null;
                    CultureEntity culture = null;
                    return query
                    .JoinAlias(x => x.DictionaryScope, () => dictionaryScope)
                    .JoinAlias(x => x.Culture, () => culture)
                    .Where(x => culture.Name == cultureName)
                    .Where(x => dictionaryScope.Name == dictionaryScopeName);
                }));
            }
            catch (Exception ex)
            {
                throw new DataException("FindAllByCultureAndScope operation failed", ex);
            }
        }
        public virtual IList <CultureHierarchyEntity> FindCultureHierarchyByCulture(CultureEntity culture)
        {
            using (var session = GetSession())
            {
                var cultureHierarchyRepository = new CultureHierarchyRepository(session);

                var resultList = cultureHierarchyRepository.FindCultureHierarchyByCulture(culture);

                return(resultList);
            }
        }
Example #3
0
        /// <summary>
        /// Get the culture with the specified identifier.
        /// </summary>
        /// <returns>The culture.</returns>
        /// <param name="id">Identifier.</param>
        public CultureEntity Get(string id)
        {
            List <CultureEntity> cultureEntities = xmlDatabase.LoadEntities().ToList();
            CultureEntity        cultureEntity   = cultureEntities.FirstOrDefault(x => x.Id == id);

            if (cultureEntity == null)
            {
                throw new EntityNotFoundException(id, nameof(BorderEntity).Replace("Entity", ""));
            }

            return(cultureEntity);
        }
Example #4
0
        public IList <CultureHierarchyEntity> FindCultureHierarchyByCulture(CultureEntity culture)
        {
            try
            {
                var criteria = Restrictions.Where <CultureHierarchyEntity>(x => x.Culture.Id == culture.Id);

                return(GetValuesList <CultureHierarchyEntity>(FetchCollections, criteria, ResultQueryModifier));
            }
            catch (Exception ex)
            {
                throw new DataException("FindCultureHierarchyByCulture operation failed", ex);
            }
        }
Example #5
0
        internal static CultureDto ToDto(this CultureEntity ent)
        {
            if (ent == null)
            {
                return(null);
            }

            return(new CultureDto
            {
                Culture = ent.CultureCode,
                Name = ent.CultureName
            });
        }
        /// <summary>
        /// Converts the domain model into an entity.
        /// </summary>
        /// <returns>The entity.</returns>
        /// <param name="culture">Culture.</param>
        internal static CultureEntity ToEntity(this Culture culture)
        {
            CultureEntity cultureEntity = new CultureEntity
            {
                Id                 = culture.Id,
                Name               = culture.Name,
                Description        = culture.Description,
                TextureSet         = culture.TextureSet,
                PlaceNameGenerator = culture.PlaceNameGenerator.ToString(),
                PlaceNameSchema    = culture.PlaceNameSchema
            };

            return(cultureEntity);
        }
        /// <summary>
        /// Converts the entity into a domain model.
        /// </summary>
        /// <returns>The domain model.</returns>
        /// <param name="cultureEntity">Culture entity.</param>
        internal static Culture ToDomainModel(this CultureEntity cultureEntity)
        {
            Culture culture = new Culture
            {
                Id                 = cultureEntity.Id,
                Name               = cultureEntity.Name,
                Description        = cultureEntity.Description,
                TextureSet         = cultureEntity.TextureSet,
                PlaceNameGenerator = (NameGenerator)Enum.Parse(typeof(NameGenerator), cultureEntity.PlaceNameGenerator),
                PlaceNameSchema    = cultureEntity.PlaceNameSchema
            };

            return(culture);
        }
Example #8
0
        /// <summary>
        /// Adds the specified culture.
        /// </summary>
        /// <param name="cultureEntity">Culture.</param>
        public void Add(CultureEntity cultureEntity)
        {
            List <CultureEntity> cultureEntities = xmlDatabase.LoadEntities().ToList();

            cultureEntities.Add(cultureEntity);

            try
            {
                xmlDatabase.SaveEntities(cultureEntities);
            }
            catch
            {
                throw new DuplicateEntityException(cultureEntity.Id, nameof(CultureEntity).Replace("Entity", ""));
            }
        }
Example #9
0
        /// <summary>
        /// Updates the specified culture.
        /// </summary>
        /// <param name="cultureEntity">Culture.</param>
        public void Update(CultureEntity cultureEntity)
        {
            List <CultureEntity> cultureEntities       = xmlDatabase.LoadEntities().ToList();
            CultureEntity        cultureEntityToUpdate = cultureEntities.FirstOrDefault(x => x.Id == cultureEntity.Id);

            if (cultureEntityToUpdate == null)
            {
                throw new EntityNotFoundException(cultureEntity.Id, nameof(BorderEntity).Replace("Entity", ""));
            }

            cultureEntityToUpdate.Name        = cultureEntity.Name;
            cultureEntityToUpdate.Description = cultureEntity.Description;
            cultureEntityToUpdate.TextureSet  = cultureEntity.TextureSet;

            xmlDatabase.SaveEntities(cultureEntities);
        }
Example #10
0
        public virtual int AddCulture(string name)
        {
            using (var session = GetSession())
            {
                var cultureRepository = new CultureRepository(session);

                var culture = new CultureEntity
                {
                    Name = name
                };

                var result = (int)cultureRepository.Create(culture);

                return(result);
            }
        }
Example #11
0
        /// <summary>
        /// Converts a <see cref="CultureEntity"/> data object into a <see cref="Culture"/> domain model.
        /// </summary>
        /// <returns>The <see cref="Culture"/> domain model.</returns>
        /// <param name="dataObject">The <see cref="CultureEntity"/> data object.</param>
        internal static Culture ToDomainModel(this CultureEntity dataObject)
        {
            Culture domainModel = new Culture
            {
                Id                               = dataObject.Id,
                CultureGroupId                   = dataObject.CultureGroupId,
                ParentId                         = dataObject.ParentId,
                IsAvailableRandomly              = dataObject.IsAvailableRandomly,
                IsNomadicInAlternateStart        = dataObject.IsNomadicInAlternateStart,
                IsHorde                          = dataObject.IsHorde,
                GraphicalCultures                = dataObject.GraphicalCultures,
                SecondaryEventPictures           = dataObject.SecondaryEventPictures,
                Colour                           = GetColorFromIntArray(dataObject.Colour),
                FemaleNames                      = dataObject.FemaleNames,
                MaleNames                        = dataObject.MaleNames,
                FromDynastyPrefix                = dataObject.FromDynastyPrefix,
                BastardDynastyPrefix             = dataObject.BastardDynastyPrefix,
                GrammarTransformation            = dataObject.GrammarTransformation,
                MalePatronym                     = dataObject.MalePatronym,
                FemalePatronym                   = dataObject.FemalePatronym,
                IsPatronymPrefix                 = dataObject.IsPatronymPrefix,
                IsDynastyNameFirst               = dataObject.IsDynastyNameFirst,
                PatrilinealGrandfatherNameChance = dataObject.PatrilinealGrandfatherNameChance,
                PatrilinealGrandmotherNameChance = dataObject.PatrilinealGrandmotherNameChance,
                MatrilinealGrandfatherNameChance = dataObject.MatrilinealGrandfatherNameChance,
                MatrilinealGrandmotherNameChance = dataObject.MatrilinealGrandmotherNameChance,
                FatherNameChance                 = dataObject.FatherNameChance,
                MotherNameChance                 = dataObject.MotherNameChance,
                IsDisinheritedFromBlinding       = dataObject.IsDisinheritedFromBlinding,
                AreDukesCalledKings              = dataObject.AreDukesCalledKings,
                AreBaronTitlesHidden             = dataObject.AreBaronTitlesHidden,
                AreCountTitlesHidden             = dataObject.AreCountTitlesHidden,
                AreDynastiesNamedByFounders      = dataObject.AreDynastiesNamedByFounders,
                HasDynasticTitleNames            = dataObject.HasDynasticTitleNames,
                HasCastes                        = dataObject.HasCastes,
                IsAllowedToLoot                  = dataObject.IsAllowedToLoot,
                IsSeafarer                       = dataObject.IsSeafarer,
                TribalName                       = dataObject.TribalName,
                CulturalModifier                 = dataObject.CulturalModifier
            };

            return(domainModel);
        }
        public T GetByNameAndCultureAndScopeWithHierarchies(
            string name, string cultureName, string dictionaryScopeName
            )
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException(EmptyArgumentMessage, nameof(name));
            }
            if (string.IsNullOrEmpty(dictionaryScopeName))
            {
                throw new ArgumentException(EmptyArgumentMessage, nameof(dictionaryScopeName));
            }

            try
            {
                var session = GetSession();

                DictionaryScopeEntity  dictionaryScope  = null;
                CultureEntity          culture          = null;
                CultureHierarchyEntity cultureHierarchy = null;
                CultureEntity          childCulture     = null;

                var query = session.QueryOver <T>()
                            .Where(x => x.Name == name)
                            .Fetch(SelectMode.Fetch, x => x.Culture)
                            .Fetch(SelectMode.Fetch, x => x.DictionaryScope)
                            .JoinAlias(x => x.DictionaryScope, () => dictionaryScope)
                            .JoinAlias(x => x.Culture, () => culture)
                            .Where(x => dictionaryScope.Name == dictionaryScopeName)
                            .JoinAlias(x => culture.ChildCultureHierarchy, () => cultureHierarchy)
                            .JoinAlias(x => cultureHierarchy.Culture, () => childCulture)
                            .Where(x => childCulture.Name == cultureName)
                            .OrderBy(() => cultureHierarchy.LevelProperty).Asc
                            .Take(4).List();

                return(query.FirstOrDefault());
            }
            catch (Exception ex)
            {
                throw new DataException("GetByNameAndCultureAndScopeWithHierarchies operation failed", ex);
            }
        }
        public virtual int AddCultureHierarchy(
            CultureEntity culture,
            CultureEntity parentCulture,
            byte levelProperty
            )
        {
            using (var session = GetSession())
            {
                var cultureHierarchyRepository = new CultureHierarchyRepository(session);

                var cultureHierarchy = new CultureHierarchyEntity
                {
                    Culture       = culture,
                    ParentCulture = parentCulture,
                    LevelProperty = levelProperty,
                };

                var result = (int)cultureHierarchyRepository.Create(cultureHierarchy);

                return(result);
            }
        }
Example #14
0
        public T GetByNameAndCultureAndScope(
            string name, string cultureName, string dictionaryScopeName
            )
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException(EmptyArgumentMessage, nameof(name));
            }
            if (string.IsNullOrEmpty(cultureName))
            {
                throw new ArgumentException(EmptyArgumentMessage, nameof(cultureName));
            }
            if (string.IsNullOrEmpty(dictionaryScopeName))
            {
                throw new ArgumentException(EmptyArgumentMessage, nameof(dictionaryScopeName));
            }

            try
            {
                var criteria = Restrictions.Where <T>(
                    x => x.Name == name
                    );

                return(GetSingleValue <T>(FetchCollections, criteria, query =>
                {
                    DictionaryScopeEntity dictionaryScope = null;
                    CultureEntity culture = null;
                    return query
                    .JoinAlias(x => x.DictionaryScope, () => dictionaryScope)
                    .JoinAlias(x => x.Culture, () => culture)
                    .Where(x => culture.Name == cultureName)
                    .Where(x => dictionaryScope.Name == dictionaryScopeName);
                }));
            }
            catch (Exception ex)
            {
                throw new DataException("GetByNameAndCultureAndScope operation failed", ex);
            }
        }
Example #15
0
 public CultureDefinition()
 {
     Entity = new CultureEntity();
 }