コード例 #1
0
 protected virtual string GetRelativePath(ISerializableItem item)
 {
     return
         (string.Concat(item.Database.Name,
                        item.FullPath.Replace('/', '\\')
                        ));
 }
コード例 #2
0
        /// <summary>
        /// Opens match profile and forces to download additional data
        /// </summary>
        /// <param name="item"></param>
        private void OpenMatchProfile(ISerializableItem item)
        {
            var obj = new PassAroundItem();

            obj.Item    = item;
            obj.DirPath = GetSourceFolder(item);

            Messenger.Default.Send(obj, MessengerToken.ShowMatchProfile);
        }
コード例 #3
0
ファイル: FileHandle.cs プロジェクト: ManuelJager/ProjectExa
        public FileHandle(ISerializableItem item, Func <string, string> pathFactory, Action <string> serializationFactory,
                          bool generatePath = true)
        {
            this.item                 = item;
            this.pathFactory          = pathFactory;
            this.serializationFactory = serializationFactory;

            if (generatePath)
            {
                this.CurrentPath = pathFactory(item.ItemName);
            }
        }
コード例 #4
0
        public MatchProfileView(ISerializableItem item, string dir)
        {
            InitializeComponent();
            //MatchProfileViewModel viewModel = DataContext as MatchProfileViewModel;
            PhotoScroller.MyDirPath = dir;
            DataContextChanged     += MatchProfileView_DataContextChanged;
            DataContext             = item;

            // Close window with ESC
            PreviewKeyDown += (object sender, KeyEventArgs e) =>
            {
                if (e.Key == Key.Escape)
                {
                    Close();
                }
            };
        }
コード例 #5
0
        public virtual void Remove(ISerializableItem item, ISerializableItem oldParentSerializable)
        {
            foreach (var serializableDefinition in _definitionsProvider.GetSerializationDefinitions(item.Database))
            {
                var file = new FileInfo(_pathProvider.GetOldPath(item, oldParentSerializable, serializableDefinition.Path));
                if (file.Exists)
                {
                    file.Delete();
                }

                var folder =
                    new DirectoryInfo(_pathProvider.GetOldFolderPath(item, oldParentSerializable,
                                                                     serializableDefinition.Path));
                if (folder.Exists)
                {
                    folder.Delete();
                }
            }
        }
コード例 #6
0
        public bool Evaluate(ISerializableItem item)
        {
            var scDatabase = item.Database as ScDatabase;

            if (scDatabase == null)
            {
                return(false);
            }
            if (!Enabled)
            {
                return(true);
            }
            var rules   = RuleFactory.ParseRules <SerializationRuleContext>(scDatabase.InnerDatabase, Filter);
            var context = new SerializationRuleContext {
                SerializationDefinition = this
            };

            item.InitializeSerializationRuleContext(context);
            return(rules.Rules.All(rule => rule.Evaluate(context)));
        }
コード例 #7
0
        public virtual void Serialize(ISerializableItem item)
        {
            // foreach serialization definition
            var serializationDefinitions = _definitionsProvider.
                                           GetSerializationDefinitions(item.Database);

            foreach (var serializationDefinition in serializationDefinitions)
            {
                //see if item needs to be serialized
                if (!serializationDefinition.Evaluate(item))
                {
                    continue;
                }
                // get the right folder

                var path = _pathProvider.GetPath(item, serializationDefinition.Path);
                //serialize it

                item.Dump(path);
            }
        }
コード例 #8
0
 private string GetSourceFolder(ISerializableItem item)
 {
     if (MatchList.Contains(item))
     {
         return(SerializationHelper.DIR_MATCHES);
     }
     else if (UnmatchedMeList != null && UnmatchedMeList.Contains(item))
     {
         return(SerializationHelper.DIR_UNMATCHED);
     }
     else if (UnmatchedByMeList != null && UnmatchedByMeList.Contains(item))
     {
         return(SerializationHelper.DIR_UNMATCHED_BY_ME);
     }
     else if (RecommendationsPassedList != null && RecommendationsPassedList.Any(x => x.Id == item.Id))
     {
         return(SerializationHelper.DIR_RECS_PASSED);
     }
     else if (RecommendationsPendingList != null && RecommendationsPendingList.Any(x => x.Id == item.Id))
     {
         return(SerializationHelper.DIR_RECS_PENDING);
     }
     return(string.Empty);
 }
コード例 #9
0
 public virtual bool IsSerialized(ISerializableItem item, ISerializationDefinition definition)
 {
     return(new FileInfo(_pathProvider.GetPath(item, definition.Path)).Exists);
 }
コード例 #10
0
 public virtual string GetPath(ISerializableItem item, string root)
 {
     return(string.Format("{0}\\{1}.{2}", SanitiseRootPath(root), GetRelativePath(item), Extension));
 }
コード例 #11
0
 public virtual string GetFolderPath(ISerializableItem item, string root)
 {
     return(string.Format("{0}\\{1}", SanitiseRootPath(root), GetRelativePath(item)));
 }
コード例 #12
0
 public virtual string GetOldFolderPath(ISerializableItem item, ISerializableItem oldParent, string root)
 {
     return(string.Format("{0}\\{1}\\{2}", SanitiseRootPath(root), GetRelativePath(oldParent), item.Name));
 }