private PropertiesChangeResult UpdateImageAttributes(bool needToSetDateTaken, bool needToSetTitle)
        {
            DateTime valueForDateTaken = DateTime.MinValue;

            if (needToSetDateTaken)
            {
                valueForDateTaken = GetValueForDateTaken();
            }

            string valueForTitle = null;

            if (needToSetTitle)
            {
                valueForTitle = GetValueForTitle();
            }

            if (string.IsNullOrEmpty(valueForTitle) && valueForDateTaken == DateTime.MinValue)
            {
                string expectedToChangeValue = string.Concat(needToSetDateTaken ? "date taken " : null, needToSetTitle ? "title" : null);
                s_logger.Debug($"not changing {m_imageFileName} because didn't find meaningful values (expected to change {expectedToChangeValue})");
                return(PropertiesChangeResult.NoNeed);
            }

            var  runExifTool = new RunExifTool(m_imageFileName, m_simulationMode);
            bool operationResult;

            if (!string.IsNullOrEmpty(valueForTitle) && valueForDateTaken != DateTime.MinValue)
            {
                operationResult = runExifTool.SetDateAndTitle(valueForTitle, valueForDateTaken);
            }
            else if (valueForDateTaken == DateTime.MinValue)
            {
                operationResult = runExifTool.SetTitle(valueForTitle);
            }
            else
            {
                operationResult = runExifTool.SetDateTaken(valueForDateTaken);
            }

            return(operationResult ? PropertiesChangeResult.Success : PropertiesChangeResult.Failure);
        }
        private bool ChangeImageTitle(string valueForTitle)
        {
            var runExifTool = new RunExifTool(m_imageFileName, m_simulationMode);

            return(runExifTool.SetTitle(valueForTitle));
        }