internal static ProfileEvent ToDomainModel(this ProfileEventEntity profileEventEntity)
        {
            ProfileEvent profileEvent = new ProfileEvent
            {
                Id      = profileEventEntity.Id,
                Trigger = profileEventEntity.Trigger.ToDomainModel()
            };

            return(profileEvent);
        }
        internal static ProfileEventEntity ToEntity(this ProfileEvent profileEvent)
        {
            ProfileEventEntity profileEventEntity = new ProfileEventEntity
            {
                Id      = profileEvent.Id,
                Trigger = profileEvent.Trigger.ToEntity(),
                Action  = profileEvent.Action.ToEntity()
            };

            return(profileEventEntity);
        }
        public ProfileEventEntity Get(string id)
        {
            List <ProfileEventEntity> profileEventEntities = xmlDatabase.LoadEntities().ToList();
            ProfileEventEntity        profileEventEntity   = profileEventEntities.FirstOrDefault(x => x.Id == id);

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

            return(profileEventEntity);
        }
        public void Update(ProfileEventEntity profileEventEntity)
        {
            List <ProfileEventEntity> profileEventEntities       = xmlDatabase.LoadEntities().ToList();
            ProfileEventEntity        profileEventEntityToUpdate = profileEventEntities.FirstOrDefault(x => x.Id == profileEventEntity.Id);

            if (profileEventEntityToUpdate == null)
            {
                throw new EntityNotFoundException(profileEventEntity.Id, nameof(ProfileEventEntity).Replace("Entity", ""));
            }

            profileEventEntityToUpdate.Trigger = profileEventEntity.Trigger;
            profileEventEntityToUpdate.Action  = profileEventEntity.Action;

            xmlDatabase.SaveEntities(profileEventEntities);
        }
        public void Add(ProfileEventEntity profileEventEntity)
        {
            List <ProfileEventEntity> profileEventEntities = xmlDatabase.LoadEntities().ToList();

            profileEventEntities.Add(profileEventEntity);

            try
            {
                xmlDatabase.SaveEntities(profileEventEntities);
            }
            catch
            {
                throw new DuplicateEntityException(profileEventEntity.Id, nameof(ProfileEventEntity).Replace("Entity", ""));
            }
        }