/// <summary>
        /// Enables processing of HTTP Web requests by a custom HttpHandler that implements the <see cref="T:System.Web.IHttpHandler" /> interface.
        /// </summary>
        /// <param name="context">An <see cref="T:System.Web.HttpContext" /> object that provides references to the intrinsic server objects (for example, Request, Response, Session, and Server) used to service HTTP requests.</param>
        public void ProcessRequest(HttpContext context)
        {
            //Image formats
            //jpg, jpeg, png, gif, tiff

            //Documents Formats
            //PDF, doc, docx, text
            var file = context.Request.Files[FormConstants.UploadParameterName];
            var albumId = context.Request[FormConstants.AlbumIdParameterName];

            var bytes = GetBytes(file);
            var username = BaseController.AuthenticatedUsername();

            var extension = Path.GetExtension(file.FileName).Replace(".", string.Empty);

            var id = Guid.NewGuid();
            var media = new MediaMessage
            {
                AlbumId = (string.IsNullOrEmpty(albumId) ? null : (int?)Convert.ToInt32(albumId)),
                Extension = extension,
                Filename = file.FileName,
                Id = id,
                Size = bytes.Length,
                Username = username
            };

            _repository.Save(new SaveMediaParameters(id, bytes, media));
        }
Beispiel #2
0
        /// <summary>
        /// Consumes the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <exception cref="System.NotImplementedException"></exception>
        public void Consume(MediaMessage message)
        {
            try
            {
                var processor = _processors.First(m => m.Extensions.Contains(message.Extension.ToLower()));
                processor.MediaProcessor.Consume(message);
            }
            catch (Exception ex)
            {
                string error = "MediaSaga exception ";

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

                _log.Exception(ex, error);
            }
        }
        public void Consume(MediaMessage 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);

                    SaveToAlbum(message, session, momento);

                    var imageConfigurations = GetImageConfigurations(bytes, format, message, momento);

                    ResizeAndSaveImages(imageConfigurations, session);

                    _storage.DeleteFile(QueueConstants.MediaQueue, message.Id.ToString());
                }
            }
        }
 /// <summary>
 /// Processes the specified message.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <exception cref="System.NotImplementedException"></exception>
 public void Consume(MediaMessage message)
 {
     throw new System.NotImplementedException();
 }
        /// <summary>
        /// Creates the momento.
        /// </summary>
        /// <param name="mediaMessage">The MediaMessage.</param>
        /// <param name="session">The session.</param>
        /// <returns>Momento.</returns>
        public virtual Momento Create(MediaMessage mediaMessage, ISession session)
        {
            var momento = PopulateMomentoObject(mediaMessage);

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

            return momento;
        }
        /// <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(MediaMessage 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>
        /// Saves the automatic album.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="session">The session.</param>
        /// <param name="momento">The momento.</param>
        private static void SaveToAlbum(MediaMessage message, ISession session, Momento momento)
        {
            if (message.AlbumId.HasValue)
            {
                var album = session.Get<Album>(message.AlbumId);
                var albumMomento = new AlbumMomento {Album = album, Momento = momento};

                session.Save(albumMomento);
            }
        }
 /// <summary>
 /// Populates the momento object.
 /// </summary>
 /// <param name="mediaMessage">The media message.</param>
 /// <returns>Momento.</returns>
 private static Momento PopulateMomentoObject(MediaMessage mediaMessage)
 {
     var momento = new Momento
         {
             InternalId = mediaMessage.Id,
             User = new User {Username = mediaMessage.Username},
             UploadedBy = mediaMessage.Username,
             Visibility = "Public"
         };
     return momento;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SaveMediaParameters"/> class.
 /// </summary>
 /// <param name="id">The unique identifier.</param>
 /// <param name="bytes">The bytes.</param>
 /// <param name="message">The message.</param>
 public SaveMediaParameters(Guid id, byte[] bytes, MediaMessage message)
 {
     Id = id;
     Bytes = bytes;
     Message = message;
 }