/// <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()); } } }
/// <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 }, }); }