コード例 #1
0
        //private void Page_Loaded(object sender, EventArgs e)
        //{

        //    // Grab SynchronizationContext while on UI Thread
        //    syncContext = SynchronizationContext.Current;



        //    // Create request
        //    HttpWebRequest request = WebRequest.Create("http://msite.com/myFeed") as HttpWebRequest;
        //    request.Method = "POST";
        //    request.Headers["x-custom-header"] = "value";


        //    // Make async call for request stream.  Callback will be called on a background thread.
        //    IAsyncResult asyncResult = request.BeginGetRequestStream(new AsyncCallback(RequestStreamCallback), request);

        //}

        //private void UploadBinaryFile(byte[] fileBits)
        //{
        //    string url = "http://chuckconway.com/gallery/photoupload.ashx";
        //    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
        //    request.ContentType = "application/octet-stream";
        //    request.Method = "POST";

        //    IAsyncResult asyncResult = request.BeginGetRequestStream(new AsyncCallback(RequestStreamCallback), request);

        //}


        //string chuck = "chuck";

        //  using(Stream requestStream = request.EndGetRequestStream(ar))
        //  {
        //     requestStream.Write(
        //  }



        //  StreamWriter streamWriter = new StreamWriter(requestStream);

        //  streamWriter.Write("<?xml version="1.0"?>"
        //                     + "<entry xmlns="http://www.w3.org/2005/Atom">"
        //                     + "<author>"
        //                    + "<name>Elizabeth Bennet</name>"
        //                     + "<email>[email protected]</email>"
        //                     + "</author>"
        //                    + "<title type="text">Entry 1</title>"
        //                    + "<content type="text">This is my entry</content>"
        //                    + "</entry>");


        //  streamWriter.Close();


        //// Make async call for response.  Callback will be called on a background thread.
        // request.BeginGetResponse(new AsyncCallback(ResponseCallback), request);

        //}

        //private void ResponseCallback(IAsyncResult ar)
        //{

        //    HttpWebRequest request = ar.AsyncState as HttpWebRequest;
        //    WebResponse response = request.EndGetResponse(ar);

        //    // Invoke onto UI thread
        //    syncContext.Post(ExtractResponse, response);

        //    // use response.  Could include reading response stream.

        //}

        //private void ExtractResponse(object state)
        //{
        //    HttpWebResponse response = state as HttpWebResponse;
        //    // use response.  Could include reading response stream.

        //}

        //private void OpenConnection()
        //{
        //    using (SocketClient client = new SocketClient("chuckconway.com", 80))
        //    {
        //        client.
        //    }

        //}

        //private void OnSocketConnectCompleted(object sender, SocketAsyncEventArgs e)
        //{
        //    byte[] response = new byte[1024];
        //    e.SetBuffer(response, 0, response.Length);
        //    e.Completed -= new EventHandler<SocketAsyncEventArgs>(OnSocketConnectCompleted);
        //    //e.Completed += new EventHandler<SocketAsyncEventArgs>(OnSocketReceive);
        //    Socket socket = (Socket)e.UserToken;
        //    socket.ReceiveAsync(e);
        //}

        /// <summary>
        /// Handles the Click event of the uploadButton control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        private void uploadButton_Click(object sender, RoutedEventArgs e)
        {
            //WebClient client = new WebClient();

            //string url = "http://chuckconway.com/gallery/photoupload.ashx";

            PhotoServiceSoapClient service = new PhotoServiceSoapClient();

            service.UploadCompleted += (service_UploadCompleted);

            //check for selected gallery, if none selected prompt the user to select a gallery.
            if (galleryListBox.SelectedItem != null && uploadListBox.Items.Count > 0)
            {
                CalculateProgressbar();

                foreach (object image in uploadListBox.Items)
                {
                    ClientImage clientImage = (ClientImage)image;

                    string extension = File.GetFileExtension(clientImage.ImageName);
                    byte[] bytes     = File.GetByteArrayFromStream(clientImage.FileInfo.OpenRead());

                    //Upload the photos
                    service.UploadAsync(userToken, bytes, clientImage.GalleryId, extension);
                }
            }
            else
            {
                //if there is no gallery selected then show the gallery error message
                //otherwise the problem must be no photos in the upload listbox
                uploadErrorMessage.Text = (galleryListBox.SelectedItem == null ? "Please select a gallery." : "Please choose a photo to upload.");
            }
        }
コード例 #2
0
        public async Task GetQueryGallery(string name)
        {
            try
            {
                FavouriteImage.main();
                var imageCount = 0;
                if (_imageGallery.Count == 0)
                {
                    var client     = new ImgurClient(_clientId);
                    var endpoint   = new GalleryEndpoint(client);
                    var tmpGallery = await endpoint.SearchGalleryAsync(name);

                    _imageGallery = tmpGallery.ToList();
                }

                foreach (IGalleryItem img in _imageGallery)
                {
                    var galleryAlbum = img as IGalleryAlbum;
                    if (galleryAlbum != null)
                    {
                        foreach (IImage albumImage in ((IGalleryAlbum)img).Images)
                        {
                            Debug.WriteLine("Album Image: " + albumImage.Link + "   " + albumImage.Id);
                            imageCount += 1;
                            if (albumImage.Link.Contains(".gif"))
                            {
                                continue;
                            }
                            Uri imageUri = new Uri(albumImage.Link);
                            var newImage = new ClientImage(new BitmapImage(imageUri), albumImage.Id, true);
                            _imagelist.Add(newImage);
                        }
                    }
                    else
                    {
                        var galleryImage = img as IGalleryImage;
                        imageCount += 1;
                        if (galleryImage.Link.Contains(".gif"))
                        {
                            continue;
                        }
                        Debug.WriteLine("Image: " + galleryImage.Link);
                        Uri imageUri = new Uri(galleryImage.Link);
                        var newImage = new ClientImage(new BitmapImage(imageUri), galleryImage.Id, false);
                        _imagelist.Add(newImage);
                    }
                }
            }
            catch (ImgurException imgurEx)
            {
                Debug.Write("An error occurred getting an image from Imgur.");
                Debug.Write(imgurEx.Message);
            }
        }
コード例 #3
0
        public IActionResult Create(ClientCreateViewModel model)
        {
            string[] validImageTypes = new string[]
            {
                "image/gif",
                "image/jpeg",
                "image/pjpeg",
                "image/png"
            };
            // Check on null or zero length file
            if (model.ImageUpload == null || model.ImageUpload.Length == 0)
            {
                ModelState.AddModelError("ImageUpload", "Изображение не может быть пустым");
            }
            // Check on image file
            else if (!validImageTypes.Contains(model.ImageUpload.ContentType))
            {
                ModelState.AddModelError("ImageUpload", "Изображение должно быть в формате JPG, GIF или PNG");
            }
            // Create new Client
            if (ModelState.IsValid)
            {
                // Add new Client
                Client client = new Client
                {
                    Name             = model.Name,
                    ShortDescription = model.ShortDescription,
                    Description      = model.Description,
                    HttpUrl          = model.HttpUrl
                };
                // Add Client's Image

                // Copy File To Server
                string pathDir      = _optionsAccessor.Value.ClientImages;
                string pathFileName = Guid.NewGuid().ToString();
                string pathFileExt  = Path.GetExtension(model.ImageUpload.FileName);

                _filesHelper.Copy(pathDir, pathFileName + pathFileExt, model.ImageUpload);

                // Add related record - reference on file, in Database
                ClientImage clientImage = new ClientImage {
                    IsPoster = true, Path = @"\" + pathDir + pathFileName + pathFileExt
                };
                client.ClientImages.Add(clientImage);
                _context.Set <Client>().Add(client);
                return(RedirectToAction("Index"));
            }
            // If Model is not valid
            return(View(model));
        }
コード例 #4
0
        /// <summary>
        /// Adds the items.
        /// </summary>
        /// <param name="files">The files.</param>
        private void AddItems(IEnumerable <FileInfo> files)
        {
            foreach (FileInfo item in files)
            {
                Gallery gallery = ((Gallery)galleryListBox.SelectedItem);

                ClientImage image = new ClientImage
                {
                    FileInfo    = item,
                    ImageName   = item.Name,
                    GalleryName = gallery.Name,
                    GalleryId   = gallery.GalleryId
                };

                uploadListBox.Items.Add(image);
            }
        }
コード例 #5
0
        /// <summary>
        /// Adds the items.
        /// </summary>
        /// <param name="files">The files.</param>
        private void AddItems(OpenFileDialog files)
        {
            Stream[] fileStreams = files.OpenFiles();
            for (int index = 0; index < files.FileNames.Length; index++)
            {
                Gallery gallery = ((Gallery)galleryListBox.SelectedItem);

                ClientImage image = new ClientImage
                {
                    ImageName   = TruncatePath(files.FileNames[index]),
                    GalleryName = gallery.Name,
                    GalleryId   = gallery.GalleryID,
                    PhotoBytes  = GetByteArrayFromStream(fileStreams[index])
                };

                uploadListBox.Items.Add(image);
            }
        }
コード例 #6
0
        private void uploadButton_Click(object sender, RoutedEventArgs e)
        {
            // PhotoServiceSoapClient service = new PhotoServiceSoapClient();

            //check for selected gallery, if none selected prompt the user to select a gallery.
            if (galleryListBox.SelectedItem != null && uploadListBox.Items.Count > 0)
            {
                List <ClientImage> images = new List <ClientImage>();

                foreach (object image in uploadListBox.Items)
                {
                    ClientImage clientImage = (ClientImage)image;
                    images.Add(clientImage);
                }


                Uploader upload = new Uploader(images);
                upload.FileUploadComplete += new FileUploadCompletedEventHandler(upload_FileUploadComplete);
                upload.Upload();

                //CalculateProgressbar();

                //foreach (object image in uploadListBox.Items)
                //{
                //    ClientImage clientImage = (ClientImage)image;
                //    images.Add(clientImage);

                //    //string extension = Path.GetExtension(clientImage.ImageName);

                //    ////Upload the photos
                //    //service.Upload(Client.Default.token, clientImage.PhotoBytes, clientImage.GalleryId, extension);
                //    //UploadComplete();
                //}
            }
            else
            {
                //if there is no gallery selected then show the gallery error message
                //otherwise the problem must be no photos in the upload listbox
                uploadErrorMessage.Text = (galleryListBox.SelectedItem == null ? "Please select a gallery." : "Please choose a photo to upload.");
            }
        }
コード例 #7
0
        public async Task getFavorites()
        {
            try
            {
                var client     = new ImgurClient(MainPage._clientId, MainPage.userToken);
                var endpoint   = new AccountEndpoint(client);
                var favourites = await endpoint.GetAccountFavoritesAsync();

                foreach (IGalleryItem img in favourites)
                {
                    var galleryAlbum = img as IGalleryAlbum;
                    if (galleryAlbum != null)
                    {
                        foreach (IImage albumImage in galleryAlbum.Images)
                        {
                            Debug.WriteLine("Album Image: " + albumImage.Link + "   " + albumImage.Id);
                            Uri imageUri = new Uri(albumImage.Link);
                            var newImage = new ClientImage(new BitmapImage(imageUri), albumImage.Id, true);
                            _favouriteList.Add(newImage);
                        }
                    }
                    else
                    {
                        var galleryImage = img as IGalleryImage;
                        Debug.WriteLine("Image: " + galleryImage.Link);
                        Uri imageUri = new Uri(galleryImage.Link);
                        var newImage = new ClientImage(new BitmapImage(imageUri), galleryImage.Id, false);
                        _favouriteList.Add(newImage);
                    }
                }
            }
            catch (ImgurException imgurEx)
            {
                Debug.Write("An error occurred getting an image from Imgur.");
                Debug.Write(imgurEx.Message);
            }
            catch (System.ArgumentNullException e)
            {
                Debug.WriteLine("An error occurred getting an image from Imgur." + e.Message);
            }
        }
コード例 #8
0
        void ReleaseDesignerOutlets()
        {
            if (ClientImage != null)
            {
                ClientImage.Dispose();
                ClientImage = null;
            }

            if (PicPageControl != null)
            {
                PicPageControl.Dispose();
                PicPageControl = null;
            }

            if (PictureScrollView != null)
            {
                PictureScrollView.Dispose();
                PictureScrollView = null;
            }

            if (PictureView != null)
            {
                PictureView.Dispose();
                PictureView = null;
            }

            if (ProgressRing != null)
            {
                ProgressRing.Dispose();
                ProgressRing = null;
            }

            if (WelcomeLabel != null)
            {
                WelcomeLabel.Dispose();
                WelcomeLabel = null;
            }
        }
コード例 #9
0
        public IActionResult Edit(ClientEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                string[] validImageTypes = new string[]
                {
                    "image/gif",
                    "image/jpeg",
                    "image/pjpeg",
                    "image/png"
                };
                // Find existed Client by Id
                Client client = _context.Set <Client>()
                                .FindBy(c => c.ClientId == new Guid(model.ClientId))
                                .Include(cl => cl.ClientImages)
                                .FirstOrDefault();
                if (client != null)
                {
                    // Update Client's Properties
                    client.Name             = model.Name;
                    client.ShortDescription = model.ShortDescription;
                    client.Description      = model.Description;
                    client.HttpUrl          = model.HttpUrl;
                }
                else
                {
                    return(NotFound($"Клиент с id: {model.ClientId} не найден"));
                }
                //// Check on null or zero length file
                if (model.ImageUpload != null && model.ImageUpload.Length > 0)
                {
                    if (validImageTypes.Contains(model.ImageUpload.ContentType))
                    {
                        // Remove existed File from Server
                        string pathDir         = _optionsAccessor.Value.ClientImages;
                        string pathExistedFile = client.ClientImages.FirstOrDefault()?.Path.Substring(1);
                        if (!string.IsNullOrEmpty(pathExistedFile))
                        {
                            _filesHelper.Delete(pathExistedFile);
                        }
                        // Copy New File to Server
                        string pathNewFileName = Guid.NewGuid().ToString();
                        string pathNewFileExt  = Path.GetExtension(model.ImageUpload.FileName);
                        string pathNewFile     = pathDir + pathNewFileName + pathNewFileExt;

                        _filesHelper.Copy(pathDir, pathNewFileName + pathNewFileExt, model.ImageUpload);

                        // SYNC changes to Database
                        ClientImage clientNewImage = new ClientImage
                        {
                            IsPoster = true,
                            Path     = @"\" + pathDir + pathNewFileName + pathNewFileExt
                        };

                        // Find existed image
                        ClientImage clientExistedImage = client.ClientImages.FirstOrDefault();

                        // Remove previous image
                        if (clientExistedImage != null)
                        {
                            client.ClientImages.Remove(clientExistedImage);
                        }
                        client.ClientImages.Add(clientNewImage);
                    }
                    //// Update DB
                    _context.Set <Client>().Update(client, new Guid(model.ClientId));
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ModelState.AddModelError("ImageUpload", "Файл пустой или не в формате JPG, GIF или PNG");
                }
            }
            // If Model has errors
            return(View(model));
        }