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