public override void Run()
        {
            while (true)
            {
                try
                {
                    CloudQueueMessage message = _queue.GetMessage();
                    if (message != null)
                    {
                        string[] messageArray = message.AsString.Split(new char[] { ',' });
                        string outputBlobUri = messageArray[0];
                        string partitionKey = messageArray[1];
                        string rowkey = messageArray[2];

                        _queue.PeekMessage();

                        string inputBlobUri = Regex.Replace(outputBlobUri, "([^\\.]+)(\\.[^\\.]+)?$", "$1-myimage$2");

                        _container.CreateIfNotExist();
                        CloudBlob inputBlob = _container.GetBlobReference(outputBlobUri);
                        CloudBlob outputBlob = _container.GetBlobReference(inputBlobUri);

                        using (BlobStream input = inputBlob.OpenRead())
                        using (BlobStream output = outputBlob.OpenWrite())
                        {
                            ProcessImage(input, output);

                            output.Commit();
                            outputBlob.Properties.ContentType = "image/jpeg";
                            outputBlob.SetProperties();

                            FunnyAppRepository<Post> postRepository = new FunnyAppRepository<Post>();
                            Post post = postRepository.Find(partitionKey, rowkey);
                            
                            post.PostImage = inputBlobUri;
                            post.State = true;
                            postRepository.Update(post);
                            postRepository.SubmitChange();

                            _queue.DeleteMessage(message);
                        }
                    }
                }
                catch (StorageClientException e)
                {
                    Trace.Write(e);
                }
            }
        }
Example #2
0
        public override void Run()
        {
            while (true)
            {
                try
                {
                    CloudQueueMessage message = _queue.GetMessage();
                    if (message != null)
                    {
                        string[] messageArray  = message.AsString.Split(new char[] { ',' });
                        string   outputBlobUri = messageArray[0];
                        string   partitionKey  = messageArray[1];
                        string   rowkey        = messageArray[2];

                        _queue.PeekMessage();

                        string inputBlobUri = Regex.Replace(outputBlobUri, "([^\\.]+)(\\.[^\\.]+)?$", "$1-myimage$2");

                        _container.CreateIfNotExist();
                        CloudBlob inputBlob  = _container.GetBlobReference(outputBlobUri);
                        CloudBlob outputBlob = _container.GetBlobReference(inputBlobUri);

                        using (BlobStream input = inputBlob.OpenRead())
                            using (BlobStream output = outputBlob.OpenWrite())
                            {
                                ProcessImage(input, output);

                                output.Commit();
                                outputBlob.Properties.ContentType = "image/jpeg";
                                outputBlob.SetProperties();

                                FunnyAppRepository <Post> postRepository = new FunnyAppRepository <Post>();
                                Post post = postRepository.Find(partitionKey, rowkey);

                                post.PostImage = inputBlobUri;
                                post.State     = true;
                                postRepository.Update(post);
                                postRepository.SubmitChange();

                                _queue.DeleteMessage(message);
                            }
                    }
                }
                catch (StorageClientException e)
                {
                    Trace.Write(e);
                }
            }
        }
Example #3
0
        public PostViewData PostRowByPost(string postRowKey, string postPartitionKey)
        {
            Post post = _postRepository.Find(postRowKey);

            if (post == null)
            {
                return(null);
            }
            if (!post.State)
            {
                return(null);
            }

            return(new PostViewData
            {
                PostContent = post.PostContent,
                PostImage = post.PostImage,
                PostTitle = post.PostTitle,
                RowKey = post.RowKey
            });
        }