public bool TryFindPlantPhoto(string photoId, out PlantPhoto plantPhoto) { var found = _plantPhotos.FirstOrDefault(p => p.PhotoId == photoId); if (found == null) { plantPhoto = new PlantPhoto {PhotoId = "Not found"}; return false; } plantPhoto = found; return true; }
public void RenameImageAndUsages(PlantPhoto plantPhoto) { var dateString = _now.ToString("yyyy-MM-dd HH:mm:ss.fff"); var fileManager = new TxFileManager(); try { using (var conn = new SqlConnection(_settings.ConnectionString)) using (var scope = new TransactionScope()) { conn.Open(); conn.Execute(_photoUpdateQuery, new { OldPhotoId = plantPhoto.PhotoId, NewPhotoId = plantPhoto.PhotoId.AddTif(), NewUpdatedAt = _now }); conn.Execute(_usageUpdateQuery, new { plantPhoto.PhotoId, NewPhotoId = plantPhoto.PhotoId.AddTif() }); foreach (var imageRoot in _settings.ImageRoots) { var imagePath = plantPhoto.GetActualImagePath(imageRoot); var newPath = plantPhoto.GetReplacementPath(imageRoot, _settings.TargetExtension); if (File.Exists(imagePath)) { fileManager.Move(imagePath, newPath); } } foreach (var thumbnailRoot in _settings.ThumbnailRoots) { var thumbPath = plantPhoto.GetThumbnailPath(thumbnailRoot); var newPath = plantPhoto.GetReplacementPath(thumbnailRoot, _settings.TargetExtension, true); if (File.Exists(thumbPath)) { fileManager.Move(thumbPath, newPath); } } scope.Complete(); var message = string.Format("{0}\t{0}{1}\t{2}", plantPhoto.PhotoId, _settings.TargetExtension, dateString); Logger.Info(message); } } catch (TransactionAbortedException trex) { Logger.Error(string.Format("{0}\t{1}", plantPhoto.PhotoId, trex.Message.Replace(Environment.NewLine, " "))); } catch (Exception exc) { Logger.Error(string.Format("{0}\t{1}", plantPhoto.PhotoId, exc.Message.Replace(Environment.NewLine, " "))); } }