Пример #1
0
        public string GetExample(string res, PhotoSession session, ICameraDevice device, string fileName)
        {
            Regex           regPattern = new Regex(@"\[(.*?)\]", RegexOptions.Singleline);
            MatchCollection matchX     = regPattern.Matches(res);

            foreach (Match match in matchX)
            {
                if (ServiceProvider.FilenameTemplateManager.Templates.ContainsKey(match.Value))
                {
                    res = res.Replace(match.Value,
                                      ServiceProvider.FilenameTemplateManager.Templates[match.Value].Pharse(match.Value, session, device,
                                                                                                            fileName));
                }
            }

            //prevent multiple \ if a tag is empty
            while (res.Contains(@"\\"))
            {
                res = res.Replace(@"\\", @"\");
            }
            // if the file name start with \ the Path.Combine isn't work right
            if (res.StartsWith("\\"))
            {
                res = res.Substring(1);
            }
            return(res);
        }
Пример #2
0
        /// <summary>
        /// Load files attached to a session
        /// </summary>
        /// <param name="session"></param>
        public void LoadData(PhotoSession session)
        {
            if (session == null)
            {
                return;
            }
            FileItem[] fileItems = new FileItem[session.Files.Count];
            session.Files.CopyTo(fileItems, 0);
            //session.Files.Clear();
            if (!Directory.Exists(session.Folder))
            {
                Directory.CreateDirectory(session.Folder);
            }
            string[] files = Directory.GetFiles(session.Folder);
            foreach (string file in files)
            {
                if (session.SupportedExtensions.Contains(Path.GetExtension(file).ToLower()))
                {
                    if (!session.ContainFile(file))
                    {
                        session.AddFile(file);  // TODO: Check if this is exploding session with proshots.jar running
                    }
                }
            }
            // remove files which was deleted or not exist
            List <FileItem> removedItems = session.Files.Where(fileItem => !File.Exists(fileItem.FileName)).ToList();

            foreach (FileItem removedItem in removedItems)
            {
                session.Files.Remove(removedItem);
            }
            //session.Files = new AsyncObservableCollection<FileItem>(session.Files.OrderBy(x => x.FileDate));
        }
Пример #3
0
 public void AddTemplates(ICameraDevice device, PhotoSession session)
 {
     string[] skipItems =
     {
         "[Session Name]",           "[Counter 3 digit]",        "[Counter 4 digit]",        "[Counter 5 digit]",
         "[Counter 6 digit]",        "[Counter 7 digit]",        "[Counter 8 digit]",        "[Counter 9 digit]",
         "[Camera Counter 3 digit]", "[Camera Counter 4 digit]", "[Camera Counter 5 digit]", "[Camera Counter 6 digit]",
         "[Camera Counter 7 digit]", "[Camera Counter 8 digit]", "[Camera Counter 9 digit]"
     };
     foreach (var template in ServiceProvider.FilenameTemplateManager.Templates)
     {
         if (skipItems.Contains(template.Key))
         {
             continue;
         }
         var val = template.Value.Pharse(template.Key, session, device, FileName);
         if (!string.IsNullOrWhiteSpace(val))
         {
             FileNameTemplates.Add(new ValuePair()
             {
                 Name = template.Key, Value = val
             });
         }
     }
 }
 public void ExecuteCommand(string cmd, object param)
 {
     switch (cmd)
       {
     case WindowsCmdConsts.BrowseWnd_Show:
       ServiceProvider.Settings.PropertyChanged += Settings_PropertyChanged;
       Dispatcher.Invoke(new Action(delegate
                                  {
                                    SelectedPhotoSession = ServiceProvider.Settings.DefaultSession;
                                    Show();
                                    Activate();
                                    Topmost = true;
                                    Focus();
                                  }));
       break;
     case WindowsCmdConsts.BrowseWnd_Hide:
       {
     ServiceProvider.Settings.PropertyChanged -= Settings_PropertyChanged;
     Dispatcher.Invoke(new Action(Hide));
       }
       break;
     case CmdConsts.All_Close:
       Dispatcher.Invoke(new Action(delegate
                                  {
                                    Hide();
                                    Close();
                                  }));
       break;
       }
 }
 public EditSession(PhotoSession session)
 {
     Session = session;
     Session.BeginEdit();
     InitializeComponent();
     DataContext = Session;
     ServiceProvider.Settings.ApplyTheme(this);
 }
Пример #6
0
        public void SaveSession(PhotoSession session, string filename)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(PhotoSession));
            // Create a FileStream to write with.

            Stream writer = new FileStream(filename, FileMode.Create);

            // Serialize the object, and close the TextWriter
            serializer.Serialize(writer, session);
            writer.Close();
        }
Пример #7
0
 public string Pharse(string template, PhotoSession session, ICameraDevice device, string fileName, string tempfileName)
 {
     if (!File.Exists(tempfileName))
         return "";
     FileItem item = new FileItem(tempfileName);
     BitmapLoader.Instance.GetMetadata(item);
     string tag = template.Replace("[", "").Replace("]", "");
     if (item.FileInfo.ExifTags.ContainName(tag))
         return item.FileInfo.ExifTags[tag].Replace(":", "_").Replace("?", "_").Replace("*", "_").Replace("\\", "_"); ;
     return template;
 }
Пример #8
0
 public Settings()
 {
     ConfigFile       = Path.Combine(DataFolder, "settings.xml");
     CameraPresets    = new AsyncObservableCollection <CameraPreset>();
     DefaultSession   = new PhotoSession();
     PhotoSessions    = new ObservableCollection <PhotoSession>();
     SelectedBitmap   = new BitmapFile();
     ImageLoading     = false;
     CameraProperties = new CameraPropertyEnumerator();
     DeviceConfigs    = new CustomConfigEnumerator();
     ResetSettings();
 }
 public BraketingWnd(ICameraDevice device, PhotoSession session)
 {
     InitializeComponent();
       _device = device;
       _photoSession = session;
       _photoSession.Braketing.IsBusy = false;
       backgroundWorker.DoWork += delegate { _photoSession.Braketing.TakePhoto(ServiceProvider.DeviceManager.SelectedCameraDevice); };
       _photoSession.Braketing.IsBusyChanged += Braketing_IsBusyChanged;
       _photoSession.Braketing.PhotoCaptured += Braketing_PhotoCaptured;
       _photoSession.Braketing.BracketingDone += Braketing_BracketingDone;
       ServiceProvider.Settings.ApplyTheme(this);
 }
Пример #10
0
 public Settings()
 {
     ConfigFile       = Path.Combine(DataFolder, "settings.json");
     CameraPresets    = new AsyncObservableCollection <CameraPreset>();
     DefaultSession   = new PhotoSession(true, TranslationStrings.MenuSessionName);
     SelectedSession  = new PhotoSession(true, "History");
     PhotoSessions    = new ObservableCollection <PhotoSession>();
     SelectedBitmap   = new BitmapFile();
     ImageLoading     = false;
     CameraProperties = new CameraPropertyEnumerator();
     DeviceConfigs    = new CustomConfigEnumerator();
     PluginSettings   = new ObservableCollection <PluginSetting>();
     ResetSettings();
 }
Пример #11
0
        public PhotoSession LoadSession(string filename)
        {
            PhotoSession photoSession = new PhotoSession();

            try
            {
                if (File.Exists(filename))
                {
                    if (Path.GetExtension(filename) == ".json")
                    {
                        photoSession = JsonConvert.DeserializeObject <PhotoSession>(File.ReadAllText(filename));
                    }
                    else
                    {
                        XmlSerializer mySerializer =
                            new XmlSerializer(typeof(PhotoSession));
                        FileStream myFileStream = new FileStream(filename, FileMode.Open);
                        photoSession = (PhotoSession)mySerializer.Deserialize(myFileStream);
                        myFileStream.Close();
                        photoSession.ConfigFile = filename;
                        // upgrade to new fie template
                        var s = photoSession.FileNameTemplate;
                        s = s.Replace("$C", "[Counter 4 digit]");
                        s = s.Replace("$N", "[Session Name]");
                        s = s.Replace("$E", "[Exposure Compensation]");
                        s = s.Replace("$D", "[Date yyyy-MM-dd]");
                        s = s.Replace("$B", "[Barcode]");
                        s = s.Replace("$Type", "[File format]");
                        s = s.Replace("$X", "[Camera Name]");
                        s = s.Replace("$Tag1", "[Selected Tag1]");
                        s = s.Replace("$Tag2", "[Selected Tag2]");
                        s = s.Replace("$Tag3", "[Selected Tag3]");
                        s = s.Replace("$Tag4", "[Selected Tag4]");
                        photoSession.FileNameTemplate = s;
                    }
                }
            }
            catch (Exception e)
            {
                Log.Error(e);
            }

            if (photoSession == null)
            {
                photoSession = new PhotoSession();
            }

            return(photoSession);
        }
Пример #12
0
 public EditSession(PhotoSession session)
 {
     try
     {
         Session = session;
         Session.BeginEdit();
         InitializeComponent();
         DataContext = Session;
         ServiceProvider.Settings.ApplyTheme(this);
     }
     catch (Exception ex)
     {
         Log.Error("EditSession init", ex);
     }
 }
Пример #13
0
        /// <summary>
        /// Load files attached to a session
        /// </summary>
        /// <param name="session"></param>
        public void LoadData(PhotoSession session)
        {
            try
            {
                if (session == null)
                {
                    return;
                }
                if (!Directory.Exists(session.Folder))
                {
                    return;
                }
                if (session.AlowFolderChange && session.ReloadOnFolderChange)
                {
                    session.Files.Clear();
                }

                FileItem[] fileItems = new FileItem[session.Files.Count];
                session.Files.CopyTo(fileItems, 0);
                ////session.Files.Clear();
                //if (!Directory.Exists(session.Folder))
                //{
                //    Directory.CreateDirectory(session.Folder);
                //}
                string[] files = Directory.GetFiles(session.Folder);
                foreach (string file in files)
                {
                    if (session.SupportedExtensions.Contains(Path.GetExtension(file).ToLower()))
                    {
                        if (!string.IsNullOrEmpty(file) && !session.ContainFile(file))
                        {
                            session.AddFile(file);
                        }
                    }
                }
                // remove files which was deleted or not exist
                List <FileItem> removedItems = session.Files.Where(fileItem => !File.Exists(fileItem.FileName)).ToList();
                foreach (FileItem removedItem in removedItems)
                {
                    session.Files.Remove(removedItem);
                }
                //session.Files = new AsyncObservableCollection<FileItem>(session.Files.OrderBy(x => x.FileDate));
            }
            catch (Exception exception)
            {
                Log.Error("Error loading session ", exception);
            }
        }
Пример #14
0
 public void Save(PhotoSession session)
 {
     if (session == null)
     {
         return;
     }
     try
     {
         string filename = Path.Combine(SessionFolder, session.Name + ".json");
         SaveSession(session, filename);
         session.ConfigFile = filename;
     }
     catch (Exception exception)
     {
         Log.Error("Unable to save session " + session.Name, exception);
     }
 }
Пример #15
0
 public Settings()
 {
     ConfigFile     = Path.Combine(DataFolder, "settings.xml");
     CameraPresets  = new AsyncObservableCollection <CameraPreset>();
     DefaultSession = new PhotoSession();
     PhotoSessions  = new ObservableCollection <PhotoSession>();
     SelectedBitmap = new BitmapFile();
     ImageLoading   = false;
     VideoTypes     = new ObservableCollection <VideoType>
     {
         new VideoType("HD 1080 16:9", 1920, 1080),
         new VideoType("UXGA 4:3", 1600, 1200),
         new VideoType("HD 720 16:9", 1280, 720),
         new VideoType("Super VGA 4:3", 800, 600),
     };
     CameraProperties = new CameraPropertyEnumerator();
     DeviceConfigs    = new CustomConfigEnumerator();
     ResetSettings();
 }
Пример #16
0
 public Settings()
 {
     ConfigFile = Path.Combine(DataFolder, "settings.xml");
     CameraPresets = new AsyncObservableCollection<CameraPreset>();
     DefaultSession = new PhotoSession();
     PhotoSessions = new ObservableCollection<PhotoSession>();
     SelectedBitmap = new BitmapFile();
     ImageLoading = false;
     VideoTypes = new ObservableCollection<VideoType>
              {
                new VideoType("HD 1080 16:9", 1920, 1080),
                new VideoType("UXGA 4:3", 1600, 1200),
                new VideoType("HD 720 16:9", 1280, 720),
                new VideoType("Super VGA 4:3", 800, 600),
              };
     CameraProperties = new CameraPropertyEnumerator();
     DeviceConfigs = new CustomConfigEnumerator();
     ResetSettings();
 }
Пример #17
0
        public PhotoSession Load(string filename)
        {
            PhotoSession photoSession = new PhotoSession();

            try
            {
                if (File.Exists(filename))
                {
                    XmlSerializer mySerializer =
                        new XmlSerializer(typeof(PhotoSession));
                    FileStream myFileStream = new FileStream(filename, FileMode.Open);
                    photoSession = (PhotoSession)mySerializer.Deserialize(myFileStream);
                    myFileStream.Close();
                    photoSession.ConfigFile = filename;
                }
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
            return(photoSession);
        }
Пример #18
0
        public void Save(PhotoSession session)
        {
            if (session == null)
            {
                return;
            }
            try
            {
                string        filename   = Path.Combine(SessionFolder, session.Name + ".xml");
                XmlSerializer serializer = new XmlSerializer(typeof(PhotoSession));
                // Create a FileStream to write with.

                Stream writer = new FileStream(filename, FileMode.Create);
                // Serialize the object, and close the TextWriter
                serializer.Serialize(writer, session);
                writer.Close();
                session.ConfigFile = filename;
            }
            catch (Exception exception)
            {
                Log.Error("Unable to save session " + session.Name, exception);
            }
        }
Пример #19
0
        public void Save(PhotoSession session)
        {
            if (session == null)
            {
                return;
            }
            try
            {
                string filename = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), AppName,
                                               "Sessions", session.Name + ".xml");
                XmlSerializer serializer = new XmlSerializer(typeof(PhotoSession));
                // Create a FileStream to write with.

                Stream writer = new FileStream(filename, FileMode.Create);
                // Serialize the object, and close the TextWriter
                serializer.Serialize(writer, session);
                writer.Close();
            }
            catch (Exception exception)
            {
                Log.Error("Unable to save session " + session.Name, exception);
            }
        }
        public string GetExample(string res, PhotoSession session, ICameraDevice device, string fileName)
        {
            Regex regPattern = new Regex(@"\[(.*?)\]", RegexOptions.Singleline);
            MatchCollection matchX = regPattern.Matches(res);
            foreach (Match match in matchX)
            {
                if (ServiceProvider.FilenameTemplateManager.Templates.ContainsKey(match.Value))
                {
                    res = res.Replace(match.Value,
                        ServiceProvider.FilenameTemplateManager.Templates[match.Value].Pharse(match.Value, session, device,
                            fileName));
                }
            }

            //prevent multiple \ if a tag is empty 
            while (res.Contains(@"\\"))
            {
                res = res.Replace(@"\\", @"\");
            }
            // if the file name start with \ the Path.Combine isn't work right 
            if (res.StartsWith("\\"))
                res = res.Substring(1);
            return res;
        }
Пример #21
0
 public void Save(PhotoSession session)
 {
     if (session == null)
         return;
     try
     {
         string filename = Path.Combine(SessionFolder, session.Name + ".xml");
         SaveSession(session, filename);
         session.ConfigFile = filename;
     }
     catch (Exception exception)
     {
         Log.Error("Unable to save session " + session.Name, exception);
     }
 }
Пример #22
0
 private void NewSession()
 {
     try
     {
         var defaultsessionfile = Path.Combine(Core.Classes.Settings.SessionFolder, "Default.xml");
         var session = new PhotoSession();
         // copy session with default name
         if (File.Exists(defaultsessionfile))
         {
             session = ServiceProvider.Settings.LoadSession(defaultsessionfile);
             session.Files.Clear();
         }
         var editSession = new EditSession(session);
         editSession.Owner = ServiceProvider.PluginManager.SelectedWindow as Window;
         ServiceProvider.Settings.ApplyTheme(editSession);
         if (editSession.ShowDialog() == true)
         {
             ServiceProvider.Settings.Add(editSession.Session);
             ServiceProvider.Settings.DefaultSession = editSession.Session;
         }
     }
     catch (Exception ex)
     {
         Log.Error("Error create session ", ex);
         ServiceProvider.WindowsManager.ExecuteCommand(WindowsCmdConsts.MainWnd_Message, "Error create session " + ex.Message);
     }
 }
Пример #23
0
 public string Pharse(string template, PhotoSession session, ICameraDevice device, string fileName)
 {
     CameraProperty property = device.LoadProperties();
     switch (template)
     {
         case "[Counter 3 digit]":
         case "[Counter 4 digit]":
         case "[Counter 5 digit]":
         case "[Counter 6 digit]":
         case "[Counter 7 digit]":
         case "[Counter 8 digit]":
         case "[Counter 9 digit]":
             return session.Counter.ToString(new string('0', Convert.ToInt16(template.Substring(9, 1))));
         case "[Series 4 digit]":
             return session.Series.ToString(new string('0', 4));
         case "[Camera Counter 3 digit]":
         case "[Camera Counter 4 digit]":
         case "[Camera Counter 5 digit]":
         case "[Camera Counter 6 digit]":
         case "[Camera Counter 7 digit]":
         case "[Camera Counter 8 digit]":
         case "[Camera Counter 9 digit]":
             return property.Counter.ToString(new string('0', Convert.ToInt16(template.Substring(16, 1))));
         case "[Session Name]":
             return session.Name;
         case "[Capture Name]":
             return session.CaptureName;
         case "[Exposure Compensation]":
             if (device!=null && device.ExposureCompensation != null)
                 return device.ExposureCompensation.Value != "0" ? device.ExposureCompensation.Value : "";
             return "";
         case "[FNumber]":
             if (device != null && device.FNumber != null)
                 return device.FNumber.Value ?? "";
             return "";
         case "[Date yyyy-MM-dd]":
             return DateTime.Now.ToString("yyyy-MM-dd");
         case "[Date yyyy]":
             return DateTime.Now.ToString("yyyy");
         case "[Date yyyy-MM]":
             return DateTime.Now.ToString("yyyy-MM");
         case "[Date MMM]":
             return DateTime.Now.ToString("MMM");
         case "[Date yyyy-MM-dd-hh-mm-ss]":
             return DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss");
         case "[Time hh-mm-ss]":
             return DateTime.Now.ToString("hh-mm-ss");
         case "[Time hh-mm]":
             return DateTime.Now.ToString("hh-mm");
         case "[Time hh]":
             return DateTime.Now.ToString("hh");
         case "[Barcode]":
             return session.Barcode;
         case "[File format]":
             return GetType(fileName);
         case "[Original Filename]":
             return Path.GetFileNameWithoutExtension(fileName);
         case "[Camera Name]":
             return property.DeviceName.Replace(":", "_").Replace("?", "_").Replace("*", "_");
         case "[Selected Tag1]":
             return session.SelectedTag1 != null ? session.SelectedTag1.Value.Trim() : "";
         case "[Selected Tag2]":
             return session.SelectedTag2 != null ? session.SelectedTag2.Value.Trim() : "";
         case "[Selected Tag3]":
             return session.SelectedTag3 != null ? session.SelectedTag3.Value.Trim() : "";
         case "[Selected Tag4]":
             return session.SelectedTag4 != null ? session.SelectedTag4.Value.Trim() : "";
         case "[Unix Time]":
             var date = new DateTime(1970, 1, 1, 0, 0, 0, DateTime.Now.Kind);
             var unixTimestamp = System.Convert.ToInt64((DateTime.Now - date).TotalSeconds);
             return unixTimestamp.ToString();
         case "[DB Row 1]":
             return (session.ExternalData != null && session.ExternalData.Row1 != null)
                 ? session.ExternalData.Row1
                 : "";
         case "[DB Row 2]":
             return (session.ExternalData != null && session.ExternalData.Row2 != null)
                 ? session.ExternalData.Row2
                 : "";
         case "[DB Row 3]":
             return (session.ExternalData != null && session.ExternalData.Row3 != null)
                 ? session.ExternalData.Row3
                 : "";
         case "[DB Row 4]":
             return (session.ExternalData != null && session.ExternalData.Row4 != null)
                 ? session.ExternalData.Row4
                 : "";
         case "[DB Row 5]":
             return (session.ExternalData != null && session.ExternalData.Row5 != null)
                 ? session.ExternalData.Row5
                 : "";
         case "[DB Row 6]":
             return (session.ExternalData != null && session.ExternalData.Row6 != null)
                 ? session.ExternalData.Row6
                 : "";
         case "[DB Row 7]":
             return (session.ExternalData != null && session.ExternalData.Row7 != null)
                 ? session.ExternalData.Row7
                 : "";
         case "[DB Row 8]":
             return (session.ExternalData != null && session.ExternalData.Row8 != null)
                 ? session.ExternalData.Row8
                 : "";
         case "[DB Row 9]":
             return (session.ExternalData != null && session.ExternalData.Row9 != null)
                 ? session.ExternalData.Row9
                 : "";
     }
     return "";
 }
Пример #24
0
 public void Add(PhotoSession session)
 {
     Save(session);
     PhotoSessions.Add(session);
 }
Пример #25
0
 private void Settings_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == "DefaultSession")
     {
         SelectedPhotoSession = ServiceProvider.Settings.DefaultSession;
     }
 }
Пример #26
0
        public void Save(PhotoSession session)
        {
            if (session == null)
                return;
            try
            {
                string filename = Path.Combine(DataFolder, "Sessions", session.Name + ".xml");
                XmlSerializer serializer = new XmlSerializer(typeof(PhotoSession));
                // Create a FileStream to write with.

                Stream writer = new FileStream(filename, FileMode.Create);
                // Serialize the object, and close the TextWriter
                serializer.Serialize(writer, session);
                writer.Close();
                session.ConfigFile = filename;
            }
            catch (Exception exception)
            {
                Log.Error("Unable to save session " + session.Name, exception);
            }
        }
Пример #27
0
 public PhotoSession Load(string filename)
 {
     PhotoSession photoSession = new PhotoSession();
     try
     {
         if (File.Exists(filename))
         {
             XmlSerializer mySerializer =
                 new XmlSerializer(typeof (PhotoSession));
             FileStream myFileStream = new FileStream(filename, FileMode.Open);
             photoSession = (PhotoSession) mySerializer.Deserialize(myFileStream);
             myFileStream.Close();
             photoSession.ConfigFile = filename;
             // upgrade to new fie template
             var s = photoSession.FileNameTemplate;
             s = s.Replace("$C", "[Counter 4 digit]");
             s = s.Replace("$N", "[Session Name]");
             s = s.Replace("$E", "[Exposure Compensation]");
             s = s.Replace("$D", "[Date yyyy-MM-dd]");
             s = s.Replace("$B", "[Barcode]");
             s = s.Replace("$Type", "[File format]");
             s = s.Replace("$X", "[Camera Name]");
             s = s.Replace("$Tag1", "[Selected Tag1]");
             s = s.Replace("$Tag2", "[Selected Tag2]");
             s = s.Replace("$Tag3", "[Selected Tag3]");
             s = s.Replace("$Tag4", "[Selected Tag4]");
             photoSession.FileNameTemplate = s;
         }
     }
     catch (Exception e)
     {
         Log.Error(e);
     }
     return photoSession;
 }
Пример #28
0
 /// <summary>
 /// Load files attached to a session
 /// </summary>
 /// <param name="session"></param>
 public void LoadData(PhotoSession session)
 {
     try
     {
         if (session == null)
             return;
         FileItem[] fileItems = new FileItem[session.Files.Count];
         session.Files.CopyTo(fileItems, 0);
         //session.Files.Clear();
         if (!Directory.Exists(session.Folder))
         {
             Directory.CreateDirectory(session.Folder);
         }
         string[] files = Directory.GetFiles(session.Folder);
         foreach (string file in files)
         {
             if (session.SupportedExtensions.Contains(Path.GetExtension(file).ToLower()))
             {
                 if (!string.IsNullOrEmpty(file) && !session.ContainFile(file))
                     session.AddFile(file);
             }
         }
         // remove files which was deleted or not exist
         List<FileItem> removedItems = session.Files.Where(fileItem => !File.Exists(fileItem.FileName)).ToList();
         foreach (FileItem removedItem in removedItems)
         {
             session.Files.Remove(removedItem);
         }
         //session.Files = new AsyncObservableCollection<FileItem>(session.Files.OrderBy(x => x.FileDate));
     }
     catch (Exception exception)
     {
         Log.Error("Error loading session ", exception);
     }
 }
Пример #29
0
 public BraketingWnd(ICameraDevice device, PhotoSession session)
 {
     InitializeComponent();
     ServiceProvider.Settings.ApplyTheme(this);
 }
Пример #30
0
 public PhotoSession Load(string filename)
 {
     PhotoSession photoSession = new PhotoSession();
     try
     {
         if (File.Exists(filename))
         {
             XmlSerializer mySerializer =
               new XmlSerializer(typeof(PhotoSession));
             FileStream myFileStream = new FileStream(filename, FileMode.Open);
             photoSession = (PhotoSession)mySerializer.Deserialize(myFileStream);
             myFileStream.Close();
             photoSession.ConfigFile = filename;
         }
     }
     catch (Exception e)
     {
         Log.Error(e);
     }
     return photoSession;
 }
Пример #31
0
        public string Pharse(string template, PhotoSession session, ICameraDevice device, string fileName, string tempfileName)
        {
            CameraProperty property = device.LoadProperties();

            switch (template)
            {
            case "[Counter 3 digit]":
            case "[Counter 4 digit]":
            case "[Counter 5 digit]":
            case "[Counter 6 digit]":
            case "[Counter 7 digit]":
            case "[Counter 8 digit]":
            case "[Counter 9 digit]":
                return(session.Counter.ToString(new string('0', Convert.ToInt16(template.Substring(9, 1)))));

            case "[Series 4 digit]":
                return(session.Series.ToString(new string('0', 4)));

            case "[Camera Counter 3 digit]":
            case "[Camera Counter 4 digit]":
            case "[Camera Counter 5 digit]":
            case "[Camera Counter 6 digit]":
            case "[Camera Counter 7 digit]":
            case "[Camera Counter 8 digit]":
            case "[Camera Counter 9 digit]":
                return(property.Counter.ToString(new string('0', Convert.ToInt16(template.Substring(16, 1)))));

            case "[Session Name]":
                return(session.Name);

            case "[Capture Name]":
                return(session.CaptureName);

            case "[Exposure Compensation]":
                if (device != null && device.ExposureCompensation != null)
                {
                    return(device.ExposureCompensation.Value != "0" ? device.ExposureCompensation.Value : "");
                }
                return("");

            case "[FNumber]":
                if (device != null && device.FNumber != null)
                {
                    return(device.FNumber.Value ?? "");
                }
                return("");

            case "[Date yyyy-MM-dd]":
                return(DateTime.Now.ToString("yyyy-MM-dd"));

            case "[Date yyyy]":
                return(DateTime.Now.ToString("yyyy"));

            case "[Date yyyy-MM]":
                return(DateTime.Now.ToString("yyyy-MM"));

            case "[Date MMM]":
                return(DateTime.Now.ToString("MMM"));

            case "[Date yyyy-MM-dd-hh-mm-ss]":
                return(DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"));

            case "[Time hh-mm-ss]":
                return(DateTime.Now.ToString("HH-mm-ss"));

            case "[Time hh-mm]":
                return(DateTime.Now.ToString("HH-mm"));

            case "[Time hh]":
                return(DateTime.Now.ToString("HH"));

            case "[Barcode]":
                return(session.Barcode);

            case "[File format]":
                return(GetType(fileName));

            case "[Original Filename]":
                return(Path.GetFileNameWithoutExtension(fileName));

            case "[Camera Order]":
                return(property.SortOrder.ToString("D3"));

            case "[Camera Name]":
                return(property.DeviceName.Replace(":", "_").Replace("?", "_").Replace("*", "_"));

            case "[Selected Tag1]":
                return(session.SelectedTag1 != null?session.SelectedTag1.Value.Trim() : "");

            case "[Selected Tag2]":
                return(session.SelectedTag2 != null?session.SelectedTag2.Value.Trim() : "");

            case "[Selected Tag3]":
                return(session.SelectedTag3 != null?session.SelectedTag3.Value.Trim() : "");

            case "[Selected Tag4]":
                return(session.SelectedTag4 != null?session.SelectedTag4.Value.Trim() : "");

            case "[Unix Time]":
                var date          = new DateTime(1970, 1, 1, 0, 0, 0, DateTime.Now.Kind);
                var unixTimestamp = System.Convert.ToInt64((DateTime.Now - date).TotalSeconds);
                return(unixTimestamp.ToString());

            case "[DB Row 1]":
                return((session.ExternalData != null && session.ExternalData.Row1 != null)
                        ? session.ExternalData.Row1
                        : "");

            case "[DB Row 2]":
                return((session.ExternalData != null && session.ExternalData.Row2 != null)
                        ? session.ExternalData.Row2
                        : "");

            case "[DB Row 3]":
                return((session.ExternalData != null && session.ExternalData.Row3 != null)
                        ? session.ExternalData.Row3
                        : "");

            case "[DB Row 4]":
                return((session.ExternalData != null && session.ExternalData.Row4 != null)
                        ? session.ExternalData.Row4
                        : "");

            case "[DB Row 5]":
                return((session.ExternalData != null && session.ExternalData.Row5 != null)
                        ? session.ExternalData.Row5
                        : "");

            case "[DB Row 6]":
                return((session.ExternalData != null && session.ExternalData.Row6 != null)
                        ? session.ExternalData.Row6
                        : "");

            case "[DB Row 7]":
                return((session.ExternalData != null && session.ExternalData.Row7 != null)
                        ? session.ExternalData.Row7
                        : "");

            case "[DB Row 8]":
                return((session.ExternalData != null && session.ExternalData.Row8 != null)
                        ? session.ExternalData.Row8
                        : "");

            case "[DB Row 9]":
                return((session.ExternalData != null && session.ExternalData.Row9 != null)
                        ? session.ExternalData.Row9
                        : "");
            }
            return("");
        }
 private void Settings_SessionSelected(PhotoSession oldvalue, PhotoSession newvalue)
 {
     if (oldvalue != null)
         ServiceProvider.Settings.Save(oldvalue);
     ServiceProvider.QueueManager.Clear();
     if (ServiceProvider.DeviceManager.SelectedCameraDevice != null)
     {
         ServiceProvider.DeviceManager.SelectedCameraDevice.AttachedPhotoSession = newvalue;
     }
 }
Пример #33
0
 public void Add(PhotoSession session)
 {
     Save(session);
     PhotoSessions.Add(session);
 }
Пример #34
0
 public Settings()
 {
     ConfigFile = Path.Combine(DataFolder, "settings.xml");
     CameraPresets = new AsyncObservableCollection<CameraPreset>();
     DefaultSession = new PhotoSession();
     PhotoSessions = new ObservableCollection<PhotoSession>();
     SelectedBitmap = new BitmapFile();
     ImageLoading = false;
     CameraProperties = new CameraPropertyEnumerator();
     DeviceConfigs = new CustomConfigEnumerator();
     ResetSettings();
 }
Пример #35
0
        public void SaveSession(PhotoSession session, string filename)
        {
            var json = JsonConvert.SerializeObject(session);

            File.WriteAllText(filename, json);
        }
Пример #36
0
        public void SaveSession(PhotoSession session, string filename)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(PhotoSession));
            // Create a FileStream to write with.

            Stream writer = new FileStream(filename, FileMode.Create);
            // Serialize the object, and close the TextWriter
            serializer.Serialize(writer, session);
            writer.Close();
        }
Пример #37
0
 /// <summary>
 /// Called when default session is assigned or changed
 /// </summary>
 /// <param name="oldvalue">The oldvalue.</param>
 /// <param name="newvalue">The newvalue.</param>
 private void Settings_SessionSelected(PhotoSession oldvalue, PhotoSession newvalue)
 {
     // check if same session is used
     if (oldvalue == newvalue)
         return;
     if (oldvalue != null && ServiceProvider.Settings.PhotoSessions.Contains(oldvalue))
         ServiceProvider.Settings.Save(oldvalue);
     ServiceProvider.QueueManager.Clear();
     if (ServiceProvider.DeviceManager.SelectedCameraDevice != null)
         ServiceProvider.DeviceManager.SelectedCameraDevice.AttachedPhotoSession = newvalue;
 }
Пример #38
0
 public void AddTemplates(ICameraDevice device,PhotoSession session)
 {
     string[] skipItems =
     {
         "[Session Name]", "[Counter 3 digit]", "[Counter 4 digit]", "[Counter 5 digit]",
         "[Counter 6 digit]", "[Counter 7 digit]", "[Counter 8 digit]", "[Counter 9 digit]",
         "[Camera Counter 3 digit]","[Camera Counter 4 digit]","[Camera Counter 5 digit]","[Camera Counter 6 digit]",
         "[Camera Counter 7 digit]","[Camera Counter 8 digit]","[Camera Counter 9 digit]"
     };
     foreach (var template in ServiceProvider.FilenameTemplateManager.Templates)
     {
         if(skipItems.Contains(template.Key))
             continue;
         var val = template.Value.Pharse(template.Key, session, device, FileName);
         if (!string.IsNullOrWhiteSpace(val))
             FileNameTemplates.Add(new ValuePair() {Name = template.Key, Value = val});
     }
 }