public async Task <ActionResult> DeleteImage(long ID)
        {
            var image = new ImagePostViewModel();

            using (var httpClient = new HttpClient())
            {
                var requestUri = $"{Configuration.DefaultAPI}/images/image/{ID}";
                httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString());
                httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString());

                using (var response = await httpClient.GetAsync(requestUri))
                {
                    string content = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        image = JsonConvert.DeserializeObject <ImagePostViewModel>(content);
                    }
                }
            }

            if (image == null)
            {
                return(Json(new { success = false, message = "404: Image does not exist." }));
            }
            else
            {
                return(Json(new { success = false, message = "404: Image does not exist." }));

                // TODO: This here needs to send request to API
                // Also, make sure directory path is outside of wwwroot
                //if (Directory.Exists(ImagesPath))
                //{
                //    var di = new DirectoryInfo(ImagesPath);
                //    foreach (var file in di.GetFiles())
                //    {
                //        if (file.Name == image.Name)
                //        {
                //            file.Delete();
                //            break;
                //        }
                //    }

                //    BaseWebService.Delete(image);

                //    return Json(new { success = true, message = "Image deleted successfully." });
                //}
                //else
                //    return Json(new { success = false, message = "404: Images path does not exist." });
            }
        }
예제 #2
0
        private string SaveImageToDB(IFormFile file, long targetObjectID, long currentUserID)
        {
            var image = new ImagePostViewModel()
            {
                Name           = file.FileName,
                FileSize       = HumanSizeConverter.ConvertFileLength(file),
                CreatedDate    = DateTime.Now,
                TargetObjectID = targetObjectID,
            };

            // We save the image once
            // Then we save again with modified Name property to add its ID
            Save(image);
            image.Name = $"{image.ID}_{targetObjectID}_{file.FileName}";
            Save(image);

            return(image.Name);
        }
예제 #3
0
        //Upload Pictures
        async Task UploadPictures()
        {
            if (TPicker.Visibility == Visibility.Collapsed)
            {
                var _Target = (await tempFolder.GetFilesAsync()).Where(x => x.DisplayName.StartsWith("_tmpPic")).ToList();
                if (_Target.Count > 1 && _Target.Count <= 10)
                {
                    InstaSharper.Classes.Models.InstaImage[] imgs = new InstaSharper.Classes.Models.InstaImage[_Target.Count];
                    for (int i = 0; i < imgs.Length; i++)
                    {
                        ImageProperties imageProperties = await _Target[i].Properties.GetImagePropertiesAsync();
                        imgs[i]        = new InstaSharper.Classes.Models.InstaImage();
                        imgs[i].URI    = _Target[i].Path;
                        imgs[i].Width  = int.Parse(imageProperties.Width.ToString());
                        imgs[i].Height = int.Parse(imageProperties.Height.ToString());
                    }
                    string PCap = "";
                    PostCaption.Document.GetText(Windows.UI.Text.TextGetOptions.None, out PCap);
                    var UpResult = await Api.InstaApi.UploadPhotosAlbumAsync(imgs, PCap);

                    ContentDialog End = new ContentDialog
                    {
                        FlowDirection   = FlowDirection.RightToLeft,
                        FontFamily      = new FontFamily("/Assets/Fonts/IRANSansWeb(FaNum).ttf#IRANSansWeb(FaNum)"),
                        Content         = "گالری با موفقیت ارسال شد",
                        CloseButtonText = "باشه"
                    };
                    await End.ShowAsync();
                }
                else if (_Target.Count == 1)
                {
                    string PCap = "";
                    PostCaption.Document.GetText(Windows.UI.Text.TextGetOptions.None, out PCap);
                    ImageProperties imageProperties = await _Target[0].Properties.GetImagePropertiesAsync();
                    var             UpResult        = await Api.InstaApi.UploadPhotoAsync(new InstaSharper.Classes.Models.InstaImage(_Target[0].Path, int.Parse(imageProperties.Width.ToString()), int.Parse(imageProperties.Height.ToString())), PCap);

                    ContentDialog End = new ContentDialog
                    {
                        FlowDirection   = FlowDirection.RightToLeft,
                        FontFamily      = new FontFamily("/Assets/Fonts/IRANSansWeb(FaNum).ttf#IRANSansWeb(FaNum)"),
                        Content         = "پست با موفقیت ارسال شد",
                        CloseButtonText = "باشه"
                    };
                    await End.ShowAsync();
                }
            }
            else
            {
                if (await WebApi.Check())
                {
                    var _Target = (await tempFolder.GetFilesAsync()).Where(x => x.DisplayName.StartsWith("_tmpPic")).ToList();
                    if (_Target.Count > 1 && _Target.Count <= 10)
                    {
                        string PCap = "";
                        PostCaption.Document.GetText(Windows.UI.Text.TextGetOptions.None, out PCap);
                        ImagePostViewModel imagePostViewModel = new ImagePostViewModel();
                        imagePostViewModel.caption = PCap;

                        foreach (var img in _Target)
                        {
                            var filestream = await img.OpenStreamForReadAsync();

                            var filebytes = new byte[(int)filestream.Length];
                            filestream.Read(filebytes, 0, (int)filestream.Length);
                            imagePostViewModel.images.Add(Convert.ToBase64String(filebytes));
                        }

                        Dictionary <string, string> dic = new Dictionary <string, string>();
                        dic.Add("type", InstaMediaType.Carousel.ToString());
                        dic.Add("accountusername", Api.Username);
                        dic.Add("data", Convert.ToBase64String(ToByteArray(imagePostViewModel)));
                        dic.Add("date", (new DateTime(DPicker.Date.Value.Year, DPicker.Date.Value.Month, DPicker.Date.Value.Day, TPicker.Time.Hours, TPicker.Time.Minutes, TPicker.Time.Seconds)).ToBinary().ToString());

                        var WResult = await WebApi.Post(WebApi.WebApiURL + "api/uwp/Add_Post", new HttpFormUrlEncodedContent(dic), new HttpCredentialsHeaderValue("Bearer", WebApi.Token));

                        if (WResult.IsSuccessStatusCode)
                        {
                            await Helper.ShowMessage("پست به صف افزوده شد", "پست به صف افزوده شد");
                        }
                        else
                        {
                            await Helper.ShowMessage("خطا در ارسال پست", "خطا در ارسال پست");
                        }
                    }
                    else if (_Target.Count == 1)
                    {
                        string PCap = "";
                        PostCaption.Document.GetText(Windows.UI.Text.TextGetOptions.None, out PCap);
                        ImagePostViewModel imagePostViewModel = new ImagePostViewModel();
                        imagePostViewModel.caption = PCap;

                        var filestream = await _Target[0].OpenStreamForReadAsync();
                        var filebytes  = new byte[(int)filestream.Length];
                        filestream.Read(filebytes, 0, (int)filestream.Length);
                        imagePostViewModel.images.Add(Convert.ToBase64String(filebytes));

                        Dictionary <string, string> dic = new Dictionary <string, string>();
                        dic.Add("type", InstaMediaType.Image.ToString());
                        dic.Add("accountusername", Api.Username);
                        dic.Add("data", Convert.ToBase64String(ToByteArray(imagePostViewModel)));
                        dic.Add("date", (new DateTime(DPicker.Date.Value.Year, DPicker.Date.Value.Month, DPicker.Date.Value.Day, TPicker.Time.Hours, TPicker.Time.Minutes, TPicker.Time.Seconds)).ToBinary().ToString());

                        var WResult = await WebApi.Post(WebApi.WebApiURL + "api/uwp/Add_Post", new HttpFormUrlEncodedContent(dic), new HttpCredentialsHeaderValue("Bearer", WebApi.Token));

                        if (WResult.IsSuccessStatusCode)
                        {
                            await Helper.ShowMessage("پست به صف افزوده شد", "پست به صف افزوده شد");
                        }
                        else
                        {
                            await Helper.ShowMessage("خطا در ارسال پست", "خطا در ارسال پست");
                        }
                    }
                }
            }
        }