Example #1
0
 private void Child_Fetch(ChildCriteria criteria)
 {
     using (this.BypassPropertyChecks)
     {
         this.ReferenceType = criteria.ReferenceType;
         this.ValueType     = criteria.ValueType;
     }
 }
        private void AddChildCriteria(
            ChildCriteria criteria,
            int anchorAchievementId,
            int parentCriteriaId)
        {
            RegisterCriteriaWithAchievement(anchorAchievementId, criteria.Id);
            RegisterCriteriaWithCriteria(parentCriteriaId, criteria.Id);
            PersistChildCriteria(criteria);

            if (criteria.SubCriteria != null)
            {
                foreach (ChildCriteria childCriteria in criteria.SubCriteria)
                {
                    AddChildCriteria(childCriteria, anchorAchievementId, criteria.Id);
                }
            }
        }
        private void PersistChildCriteria(ChildCriteria criteria)
        {
            var currentCriteria = _dataContext.Criteria.Where(c => c.Id == criteria.Id).SingleOrDefault();

            entities::PlayerFaction?playerFaction = null;

            if (criteria.Faction?.Name != null)
            {
                playerFaction = (entities::PlayerFaction)Enum.Parse(typeof(entities::PlayerFaction), criteria.Faction.Name);
            }

            if (currentCriteria == null)
            {
                _dataContext.Criteria.Add(
                    new entities::Criteria
                {
                    Id            = criteria.Id,
                    Description   = criteria.Description,
                    Amount        = criteria.Amount,
                    OperatorType  = criteria.MustComplete?.Type,
                    OperatorName  = criteria.MustComplete?.Name,
                    Faction       = playerFaction,
                    AchievementId = criteria.Achievement?.Id
                });
            }
            else
            {
                currentCriteria.Id            = criteria.Id;
                currentCriteria.Description   = criteria.Description;
                currentCriteria.Amount        = criteria.Amount;
                currentCriteria.OperatorType  = criteria.MustComplete?.Type;
                currentCriteria.OperatorName  = criteria.MustComplete?.Name;
                currentCriteria.Faction       = playerFaction;
                currentCriteria.AchievementId = criteria.Achievement?.Id;
            }
        }
 private void DataPortal_Create(ChildCriteria criteria)
 {
     MarkAsChild();
     DoCreate();
 }