コード例 #1
0
ファイル: PhotoService.cs プロジェクト: icotting/Phocalstream
        public Photo AddTag(long photoID, string tags)
        {
            //Get the photo to be tagged
            Photo photo = PhotoRepository.Single(p => p.ID == photoID, p => p.Site, p => p.Tags);
            if (photo == null)
            {
                return null;
            }

            //Create the array of tags
            string[] tagArray = tags.Split(',');

            foreach (string name in tagArray)
            {
                //all tags are stored in lowercase
                String text = name.ToLower(); ;

                //Need to check if the tag exists
                Tag tag = TagRepository.Find(t => t.Name.Equals(text)).FirstOrDefault();

                //if tag is null, create one
                if (tag == null)
                {
                    tag = new Tag(name);
                }

                //add the tag
                photo.Tags.Add(tag);
            }

            //commit changes
            Unit.Commit();

            photo.AvailableTags = GetUnusedTagNames(photoID);

            return photo;
        }
コード例 #2
0
        private ThumbnailModel GetDetailsForTag(Tag tag)
        {
            TagDetails details = PhotoRepository.GetTagDetails(tag);
            details.CoverPhotoID = details.LastPhotoID;

            return new ThumbnailModel()
                {
                    ID = details.TagID,
                    Name = details.TagName,
                    First = details.First,
                    Last = details.Last,
                    PhotoCount = details.PhotoCount,
                    CoverPhotoID = details.CoverPhotoID,
                    Link = "/search/index?tag=" + details.TagName
                };
        }
コード例 #3
0
 public ActionResult Tags()
 {
     var tags = TagRepository.GetAll(t => t.Photos).ToList();
     Tag tag = new Tag();
     return View(tags);
 }
コード例 #4
0
        public TagDetails GetTagDetails(Tag tag)
        {
            TagDetails details = new TagDetails();
            details.TagName = tag.Name;
            details.TagID = tag.ID;

            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                string command_string = "select min(Captured), max(Captured), count(*), max(Photos.ID) from Photos " +
                                        "INNER JOIN PhotoTags ON Photos.ID = PhotoTags.Photo_ID " +
                                        "INNER JOIN Tags ON PhotoTags.Tag_ID = Tags.ID " +
                                        "where PhotoTags.Tag_ID = @tagID";
                using (SqlCommand command = new SqlCommand(command_string, conn))
                {
                    command.Parameters.AddWithValue("@tagID", tag.ID);
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        if (reader.Read())
                        {
                            details.First = reader.GetDateTime(0);
                            details.Last = reader.GetDateTime(1);
                            details.PhotoCount = reader.GetInt32(2);
                            details.LastPhotoID = reader.GetInt64(3);
                        }
                    }
                }
            }
            return details;
        }