Example #1
0
    public string GetComments(TransitImage image)
    {
        if (image.CommentsCount == 0)
            return string.Empty;

        return string.Format("{0} Comment{1}", image.CommentsCount,
            image.CommentsCount != 1 ? "s" : string.Empty);
    }
Example #2
0
    public string GetCounter(TransitImage image)
    {
        if (!SessionManager.CountersEnabled)
            return string.Empty;

        if (image.Counter.Count == 0)
            return string.Empty;

        return string.Format("[{0}]", image.Counter.Count);
    }
Example #3
0
    public void save_Click(object sender, EventArgs e)
    {
        try
        {
            Post.Title = CheckInput("Title", inputTitle.Text);

            List<TransitTopic> topics = new List<TransitTopic>();
            foreach (ListItem topic in inputTopic.Items)
            {
                if (topic.Selected)
                {
                    TransitTopic t_topic = new TransitTopic();
                    t_topic.Name = topic.Text;
                    t_topic.Id = int.Parse(topic.Value);
                    topics.Add(t_topic);
                }
            }
            Post.Topics = topics.ToArray();

            Post.Body = inputBody.Content;
            Post.Publish = inputPublish.Checked;
            Post.Display = inputDisplay.Checked;
            Post.Sticky = inputSticky.Checked;
            Post.Export = inputExport.Checked;
            Post.Created = SessionManager.ToUTC(inputCreatedDate.SelectedDate.Add(
                inputCreatedTime.SelectedTime));
            Post.Id = PostId = SessionManager.BlogService.CreateOrUpdatePost(
                SessionManager.Ticket, Post);

            if (!string.IsNullOrEmpty(inputServerPath.Text))
            {
                string fullpath = Path.Combine(
                    SessionManager.GetSetting("Images", string.Empty),
                    inputServerPath.Text);

                ArrayList filenames = new ArrayList();
                filenames.AddRange(Directory.GetFiles(fullpath, "*.jpg"));
                filenames.AddRange(Directory.GetFiles(fullpath, "*.gif"));

                List<TransitPostImage> deleted = SessionManager.GetCachedCollection<TransitPostImage>(
                    "GetPostImages", SessionManager.Ticket, new TransitPostImageQueryOptions(Post.Id));

                List<TransitPostImage> updated = new List<TransitPostImage>();

                foreach (string filename in filenames)
                {

                    TransitImage image = new TransitImage();
                    image.Name = Path.GetFileName(filename);
                    image.Path = inputServerPath.Text;

                    for (int i = 0; i < deleted.Count; i++)
                    {
                        if (deleted[i].Image.Name == image.Name)
                        {
                            image = deleted[i].Image;
                            deleted.RemoveAt(i);
                            break;
                        }
                    }

                    ThumbnailBitmap bitmap = new ThumbnailBitmap(filename);
                    image.Thumbnail = bitmap.Thumbnail;

                    SessionManager.BlogService.CreateOrUpdatePostImage(
                        SessionManager.Ticket, PostId, image);
                }

                foreach (TransitPostImage dimage in deleted)
                {
                    SessionManager.BlogService.DeletePostImage(
                        SessionManager.Ticket, dimage.Id);
                }

                SessionManager.Invalidate<TransitPostImage>();

                images.Visible = true;
                GetDataImages(sender, e);
            }

            if (! string.IsNullOrEmpty(inputLogin.Text))
            {
                loginAdd_Click(sender, e);
            }

            SessionManager.Invalidate<TransitPost>();
            ReportInfo("Post Saved");
        }
        catch (Exception ex)
        {
            ReportException(ex);
        }
    }
Example #4
0
    public void inputImages_FilesPosted(object sender, DBlog.Tools.WebControls.FilesPostedEventArgs e)
    {
        if (PostId > 0)
        {
            foreach (HttpPostedFile file in e.PostedFiles)
            {
                TransitImage image = new TransitImage();
                image.Data = new BinaryReader(file.InputStream).ReadBytes(file.ContentLength);
                image.Name = Path.GetFileName(file.FileName);
                SessionManager.BlogService.CreateOrUpdatePostImage(SessionManager.Ticket, PostId, image);
            }

            if (e.PostedFiles.Count > 0)
            {
                SessionManager.Invalidate<TransitPostImage>();
                SessionManager.Invalidate<TransitPost>();
                images.Visible = true;
                GetDataImages(sender, e);
            }
        }
    }
Example #5
0
 private AtomEntry GetImage(TransitImage image)
 {
     AtomEntry atomEntry = new AtomEntry();
     atomEntry.Id = new AtomId(new Uri(string.Format("{0}Image/{1}", SessionManager.WebsiteUrl, image.Id)));
     atomEntry.Title = new AtomTextConstruct(image.Name);
     atomEntry.UpdatedOn = DateTime.UtcNow;
     atomEntry.Summary = new AtomTextConstruct();
     atomEntry.Content = new AtomContent("", "image/jpg");
     atomEntry.Content.Source = new Uri(string.Format("{0}ShowPicture.aspx?id={1}&ShowThumbnail=false", SessionManager.WebsiteUrl, image.Id));
     atomEntry.Links.Add(new AtomLink(new Uri(string.Format("{0}AtomImage.aspx?id={1}", SessionManager.WebsiteUrl, image.Id)), "edit"));
     AtomLink atomEntryUri = new AtomLink(new Uri(string.Format("{0}ShowPicture.aspx?id={1}&ShowThumbnail=false", SessionManager.WebsiteUrl, image.Id)), "edit-media");
     atomEntryUri.ContentType = "image/jpg";
     atomEntry.Links.Add(atomEntryUri);
     return atomEntry;
 }
Example #6
0
 public TransitImageComment(ISession session, DBlog.Data.ImageComment o, string ticket)
     : this(session, o, TransitImage.HasAccess(session, o.Image, ticket))
 {
     AssociatedType = "Image";
 }
Example #7
0
 public TransitPostImage(ISession session, DBlog.Data.PostImage o, string ticket)
     : base(o.Id)
 {
     Post = new TransitPost(session, o.Post, ticket);
     Image = new TransitImage(session, o.Image, ticket);
 }
Example #8
0
 public TransitPostImage(ISession session, DBlog.Data.PostImage o, string ticket)
     : base(o.Id)
 {
     Post  = new TransitPost(session, o.Post, ticket);
     Image = new TransitImage(session, o.Image, ticket);
 }
Example #9
0
        public int CreateOrUpdatePostImage(string ticket, int post_id, TransitImage t_image)
        {
            using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
            {
                ISession session = DBlog.Data.Hibernate.Session.Current;
                CheckAdministrator(session, ticket);

                Post post = (Post)session.Load(typeof(Post), post_id);

                Image image = t_image.GetImage(session);
                image.Modified = DateTime.UtcNow;
                session.SaveOrUpdate(image);

                PostImage post_image = session.CreateCriteria(typeof(PostImage))
                    .Add(Expression.Eq("Post.Id", post_id))
                    .Add(Expression.Eq("Image.Id", t_image.Id))
                    .UniqueResult<PostImage>();

                if (post_image == null)
                {
                    post_image = new PostImage();
                    post_image.Post = post;
                    post_image.Image = image;
                    session.SaveOrUpdate(post_image);
                }

                session.Flush();
                return image.Id;
            }
        }
Example #10
0
 public int CreateOrUpdateImageAttributes(string ticket, TransitImage t_image)
 {
     using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
     {
         ISession session = DBlog.Data.Hibernate.Session.Current;
         CheckAdministrator(session, ticket);
         Image image = t_image.GetImage(session, false);
         session.SaveOrUpdate(image);
         session.Flush();
         return image.Id;
     }
 }
Example #11
0
        public TransitImage GetImageWithThumbnailByIdIfModifiedSince(string ticket, int id, DateTime ifModifiedSince)
        {
            // todo: check permissions with ticket
            using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
            {
                ISession session = DBlog.Data.Hibernate.Session.Current;
                DBlog.Data.Image image = (DBlog.Data.Image)session.Load(typeof(DBlog.Data.Image), id);
                TransitImage img = new TransitImage(session, image, ticket);

                if (img.Modified <= ifModifiedSince)
                {
                    return null;
                }

                return new TransitImage(session, image, true, false, ticket);
            }
        }
Example #12
0
 public EXIFMetaData GetImageEXIFMetaDataById(string ticket, int id)
 {
     using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
     {
         ISession session = DBlog.Data.Hibernate.Session.Current;
         DBlog.Data.Image image = (DBlog.Data.Image)session.Load(typeof(DBlog.Data.Image), id);
         TransitImage t_image = new TransitImage(session, image, false, true, ticket);
         EXIFMetaData exif_metadata = (t_image.Data != null) ? new EXIFMetaData(
             new System.Drawing.Bitmap(new MemoryStream(t_image.Data)).PropertyItems) : null;
         return exif_metadata;
     }
 }