/// <summary>
        /// Saves the momento.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="session">The session.</param>
        /// <param name="bytes">The bytes.</param>
        /// <returns>Momntz.Data.Schema.Momento.</returns>
        private Momento SaveMomento(Messaging.Models.Media message, ISession session, byte[] bytes)
        {
            var momento = Create(message, session);
            var dateime = SaveExifInformation(bytes, momento, session);

            using (var tran = session.BeginTransaction())
            {
                if (dateime.HasValue)
                {
                    momento.Day   = dateime.Value.Day;
                    momento.Month = dateime.Value.Month;
                    momento.Year  = dateime.Value.Year;

                    session.Update(momento);
                }

                var user = new MomentoUser {
                    Momento = momento, Username = message.Username
                };
                session.Save(user);
                tran.Commit();
            }

            return(momento);
        }
        /// <summary>
        /// Creates the momento.
        /// </summary>
        /// <param name="mediaMessage">The MediaMessage.</param>
        /// <param name="session">The session.</param>
        /// <returns>Momento.</returns>
        public virtual Momento Create(Messaging.Models.Media mediaMessage, ISession session)
        {
            var momento = PopulateMomentoObject(mediaMessage);

            using (var tran = session.BeginTransaction())
            {
                session.Save(momento);
                tran.Commit();
            }

            return(momento);
        }
        /// <summary>
        /// Populates the momento object.
        /// </summary>
        /// <param name="mediaMessage">The media message.</param>
        /// <returns>Momento.</returns>
        private static Momento PopulateMomentoObject(Messaging.Models.Media mediaMessage)
        {
            var momento = new Momento
            {
                InternalId = mediaMessage.Id,
                User       = new User {
                    Username = mediaMessage.Username
                },
                UploadedBy = mediaMessage.Username,
                Visibility = "Public"
            };

            return(momento);
        }
        public void Consume(Messaging.Models.Media message)
        {
            if (message != null)
            {
                var bytes  = _storage.GetFile(QueueConstants.MediaQueue, message.Id.ToString());
                var format = GetFormat(message.Extension);

                using (ISession session = _sessionFactory.OpenSession())
                {
                    var momento             = SaveMomento(message, session, bytes);
                    var imageConfigurations = GetImageConfigurations(bytes, format, message, momento);

                    ResizeAndSaveImages(imageConfigurations, session);

                    _storage.DeleteFile(QueueConstants.MediaQueue, message.Id.ToString());
                }
            }
        }
Example #5
0
        /// <summary>
        /// Consumes the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <exception cref="System.NotImplementedException"></exception>
        public void Consume(BrokeredMessage message)
        {
            // message as Messaging.Models.Media;
            Messaging.Models.Media msg = null;

            try
            {
                msg = message.GetBody <Messaging.Models.Media>();
                var processor = _processors.First(m => m.Extensions.Contains(msg.Extension.ToLower()));
                processor.MediaProcessor.Consume(msg);
            }
            catch (Exception ex)
            {
                string error = "MediaSaga exception ";

                if (msg != null)
                {
                    error += msg.ToString();
                }

                _log.Exception(ex, error);
            }
        }
 /// <summary>
 /// Processes the specified message.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <exception cref="System.NotImplementedException"></exception>
 public void Consume(Messaging.Models.Media message)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Gets the image configurations.
 /// </summary>
 /// <param name="bytes">The bytes.</param>
 /// <param name="format">The format.</param>
 /// <param name="mediaMessage">The media message.</param>
 /// <param name="momento">The momento.</param>
 /// <returns>List{InParameters}.</returns>
 private IEnumerable <InParameters> GetImageConfigurations(byte[] bytes, ImageFormat format, Messaging.Models.Media mediaMessage, Momento momento)
 {
     return(new List <InParameters>
     {
         new InParameters {
             Bytes = bytes, MomentoMediaType = MomentoMediaType.SmallImage, Format = format, MediaMessage = mediaMessage, MaxHeight = _settings.ImageSmallHeight, MaxWidth = _settings.ImageSmallWidth, Momento = momento
         },
         new InParameters {
             Bytes = bytes, MomentoMediaType = MomentoMediaType.MediumImage, Format = format, MediaMessage = mediaMessage, MaxHeight = _settings.ImageMediumHeight, MaxWidth = _settings.ImageMediumWidth, Momento = momento
         },
         new InParameters {
             Bytes = bytes, MomentoMediaType = MomentoMediaType.LargeImage, Format = format, MediaMessage = mediaMessage, MaxHeight = _settings.ImageLargeHeight, MaxWidth = _settings.ImageLargeWidth, Momento = momento
         },
         new InParameters {
             Bytes = bytes, MomentoMediaType = MomentoMediaType.OriginalImage, Format = format, MediaMessage = mediaMessage, MaxHeight = int.MaxValue, MaxWidth = int.MaxValue, Momento = momento
         },
     });
 }