public async Task <OperationResult <VoidResponse> > CreateOrEditPost(PreparePostModel model, CancellationToken ct) { var operationResult = await PreparePost(model, ct); if (!operationResult.IsSuccess) { return(new OperationResult <VoidResponse>(operationResult.Error)); } var preparedData = operationResult.Result; var category = model.Tags.Length > 0 ? model.Tags[0] : "steepshot"; var meta = JsonConverter.Serialize(preparedData.JsonMetadata); var commentModel = new CommentModel(model.Login, model.PostingKey, string.Empty, category, model.Login, model.Permlink, model.Title, preparedData.Body, meta); if (!model.IsEditMode) { commentModel.Beneficiaries = preparedData.Beneficiaries; } var result = await _ditchClient.CreateOrEdit(commentModel, ct); if (model.IsEditMode) { Trace($"post/{model.PostPermlink}/edit", model.Login, result.Error, model.PostPermlink, ct);//.Wait(5000); } else { Trace("post", model.Login, result.Error, model.PostPermlink, ct);//.Wait(5000); } return(result); }
public void HandlePostCreateResume(Intent intent) { var isEnable = intent.GetBooleanExtra(PostCreateResumeExtra, false); intent.RemoveExtra(PostCreateResumeExtra); if (!isEnable || !AppSettings.Temp.ContainsKey(PostCreateFragment.PostCreateGalleryTemp)) { return; } var json = AppSettings.Temp[PostCreateFragment.PostCreateGalleryTemp]; var media = JsonConvert.DeserializeObject <List <GalleryMediaModel> >(json); PreparePostModel model = null; if (AppSettings.Temp.ContainsKey(PostCreateFragment.PreparePostTemp)) { json = AppSettings.Temp[PostCreateFragment.PreparePostTemp]; model = JsonConvert.DeserializeObject <PreparePostModel>(json); } AppSettings.Temp.Remove(PostCreateFragment.PostCreateGalleryTemp); AppSettings.SaveTemp(); OpenNewContentFragment(new PostCreateFragment(media, model)); }
public async Task PreparePostTest(KnownChains apiName) { var user = Users[apiName]; var model = new PreparePostModel(user, AppSettings.AppInfo.GetModel()) { Title = "Test", Description = DateTime.Now.ToString(CultureInfo.InvariantCulture), Media = new[] { new MediaModel { Url = "http://steepshot.org/api/v1/image/034e7cc2-90df-4186-b475-9b7d4166e0a4.jpeg", IpfsHash = "QmUHaQDMc46pR21fNFt1Gxo5YeeFxD4uENywbevXe5XXWM", Size = new FrameSize { Height = 194, Width = 194 } } }, Tags = new[] { "test" } }; var createPostResponse = await Api[apiName].PreparePost(model, CancellationToken.None); AssertResult(createPostResponse); }
public async Task <OperationResult <VoidResponse> > CreateOrEditPost(PreparePostModel model, CancellationToken ct) { var operationResult = await PreparePost(model, ct); if (!operationResult.IsSuccess) { return(new OperationResult <VoidResponse>(operationResult.Error)); } var preparedData = operationResult.Result; var meta = JsonConverter.Serialize(preparedData.JsonMetadata); var commentModel = new CommentModel(model, preparedData.Body, meta); if (!model.IsEditMode) { commentModel.Beneficiaries = preparedData.Beneficiaries; } var result = await _ditchClient.CreateOrEdit(commentModel, ct); if (model.IsEditMode) { await Trace($"post/{model.PostPermlink}/edit", model.Login, result.Error, model.PostPermlink, ct); } else { await Trace("post", model.Login, result.Error, model.PostPermlink, ct); } return(result); }
public override void OnViewCreated(View view, Bundle savedInstanceState) { if (IsInitialized) { return; } base.OnViewCreated(view, savedInstanceState); TagEdit.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.Hashtag); TagEdit.SetFilters(new IInputFilter[] { new TextInputFilter(TextInputFilter.TagFilter), new InputFilterLengthFilter(40) }); TagLabel.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.Hashtag); Title.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.EnterPostTitle); Description.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.EnterPostDescription); PostButton.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PublishButtonText); PageTitle.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PostSettings); PageTitle.Typeface = Style.Semibold; Title.Typeface = Style.Regular; Description.Typeface = Style.Regular; PostButton.Typeface = Style.Semibold; TagLabel.Typeface = Style.Regular; PostButton.Click += OnPost; PostButton.Enabled = true; TopPanel.BringToFront(); LocalTagsList.SetLayoutManager(new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false)); LocalTagsAdapter.Click += LocalTagsAdapterClick; LocalTagsList.SetAdapter(LocalTagsAdapter); LocalTagsList.AddItemDecoration(new ListItemDecoration((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 15, Resources.DisplayMetrics))); var client = App.MainChain == KnownChains.Steem ? App.SteemClient : App.GolosClient; _tagPickerFacade = new TagPickerFacade(_localTagsAdapter.LocalTags); _tagPickerFacade.SetClient(client); _tagPickerFacade.SourceChanged += TagPickerFacadeOnSourceChanged; _postSearchTagsAdapter = new PostSearchTagsAdapter(_tagPickerFacade); TagsList.SetLayoutManager(new LinearLayoutManager(Activity)); _postSearchTagsAdapter.Click += OnTagsAdapterClick; TagsList.SetAdapter(_postSearchTagsAdapter); TagLabel.Click += TagLabelOnClick; TagEdit.TextChanged += OnTagOnTextChanged; TagEdit.KeyboardDownEvent += HideTagsList; TagEdit.OkKeyEvent += HideTagsList; ClearEdit.Click += (sender, args) => TagEdit.Text = string.Empty; BackButton.Click += OnBack; RootLayout.Click += OnRootLayoutClick; Timer = new Timer(OnTimer); Model = new PreparePostModel(AppSettings.User.UserInfo, AppSettings.AppInfo.GetModel()); }
public override void ViewDidLoad() { base.ViewDidLoad(); SetupTags(); SetupFields(); model = new PreparePostModel(AppSettings.User.UserInfo, post, AppSettings.AppInfo.GetModel()); }
public async Task <OperationResult <PreparePostResponse> > PreparePost(PreparePostModel model, CancellationToken ct) { var results = Validate(model); if (results.Any()) { return(new OperationResult <PreparePostResponse>(new ValidationError(results))); } return(await Gateway.Post <PreparePostResponse, PreparePostModel>(GatewayVersion.V1P1, "post/prepare", model, ct)); }
private void SetEditPost() { _model = new PreparePostModel(BasePresenter.User.UserInfo, _editPost.Permlink); _title.Text = _editPost.Title; _title.SetSelection(_editPost.Title.Length); _description.Text = _editPost.Description; _description.SetSelection(_editPost.Description.Length); foreach (var editPostTag in _editPost.Tags) { AddTag(editPostTag); } }
private void SetEditPost() { _model = new PreparePostModel(AppSettings.User.UserInfo, _editPost, AppSettings.AppInfo.GetModel()); _title.Text = _editPost.Title; _title.SetSelection(_editPost.Title.Length); _description.Text = _editPost.Description; _description.SetSelection(_editPost.Description.Length); foreach (var editPostTag in _editPost.Tags) { AddTag(editPostTag); } }
public void PreparePostModel_Empty_Title() { var user = Users.First().Value; var request = new PreparePostModel(user) { Media = new MediaModel[1] }; var result = Validate(request); Assert.IsTrue(result.Count == 1); Assert.IsTrue(result[0].ErrorMessage.Equals(nameof(LocalizationKeys.EmptyTitleField))); }
public async Task <OperationResult <PreparePostResponse> > PreparePost(PreparePostModel model, CancellationToken ct) { var results = Validate(model); if (results != null) { return(new OperationResult <PreparePostResponse>(results)); } var endpoint = $"{BaseUrl}/{GatewayVersion.V1P1}/post/prepare"; return(await HttpClient.Put <PreparePostResponse, PreparePostModel>(endpoint, model, ct)); }
public void PreparePostModel_Empty_Media() { var user = Users.First().Value; var request = new PreparePostModel(user, AppSettings.AppInfo.GetModel()) { Title = "title" }; var result = Validate(request); Assert.IsTrue(result.Count == 1); Assert.IsTrue(result[0].ErrorMessage.Equals(nameof(LocalizationKeys.EmptyFileField))); }
public async Task <OperationResult <PreparePostResponce> > PreparePost(PreparePostModel model, CancellationToken ct) { var results = Validate(model); if (results.Any()) { return(new OperationResult <PreparePostResponce>(new ValidationError(string.Join(Environment.NewLine, results.Select(i => i.ErrorMessage))))); } model.PostPermlink = OperationHelper.TitleToPermlink(model.Title); return(await Gateway.Post <PreparePostResponce, PreparePostModel>(GatewayVersion.V1P1, "post/prepare", model, ct)); }
public void PreparePostModel_Empty_Media() { var user = Users.First().Value; var request = new PreparePostModel(user) { Title = "title" }; var result = Validate(request); Assert.IsTrue(result.Count == 1); Assert.IsTrue(result[0].ErrorMessage == Localization.Errors.EmptyFileField); }
public void PreparePostModel_MaxTags() { var user = Users.First().Value; var request = new PreparePostModel(user) { Title = "title", Media = new MediaModel[1], Tags = new string[PreparePostModel.TagLimit + 1] }; var result = Validate(request); Assert.IsTrue(result.Count == 1); Assert.IsTrue(result[0].ErrorMessage == Localization.Errors.TagLimitError); }
protected async Task <OperationResult <VoidResponse> > CreatePost(PreparePostModel model, CancellationToken token) { for (var i = 0; i < model.Media.Length; i++) { var media = model.Media[i]; var uploadResult = await UploadPhoto(media.Url, token); if (!uploadResult.IsSuccess) { return(new OperationResult <VoidResponse>(uploadResult.Exception)); } model.Media[i] = uploadResult.Result; } return(await Client.CreateOrEditPost(model, token)); }
#pragma warning restore 0649 protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.lyt_post_description); Cheeseknife.Inject(this); _pageTitle.Typeface = Style.Semibold; _title.Typeface = Style.Regular; _description.Typeface = Style.Regular; _postButton.Typeface = Style.Semibold; _postButton.Click += OnPost; _photoFrame.Clickable = true; _photoFrame.Click += PhotoFrameOnClick; _postButton.Text = Localization.Texts.PublishButtonText; _postButton.Enabled = true; _localTagsList.SetLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.Horizontal, false)); _localTagsAdapter = new SelectedTagsAdapter(); _localTagsAdapter.Click += LocalTagsAdapterClick; _localTagsList.SetAdapter(_localTagsAdapter); _localTagsList.AddItemDecoration(new ListItemDecoration((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 15, Resources.DisplayMetrics))); _tagsList.SetLayoutManager(new LinearLayoutManager(this)); Presenter.SourceChanged += PresenterSourceChanged; _tagsAdapter = new TagsAdapter(Presenter); _tagsAdapter.Click += OnTagsAdapterClick; _tagsList.SetAdapter(_tagsAdapter); _tag.TextChanged += OnTagOnTextChanged; _tag.KeyboardDownEvent += HideTagsList; _tag.OkKeyEvent += HideTagsList; _tag.FocusChange += OnTagOnFocusChange; _topMarginTagsLayout.Click += OnTagsLayoutClick; _backButton.Click += OnBack; _rootLayout.Click += OnRootLayoutClick; _timer = new Timer(OnTimer); InitPhoto(); SetPostingTimer(); SearchTextChanged(); _model = new PreparePostModel(BasePresenter.User.UserInfo); }
public void PreparePostModel_MaxTags() { var user = Users.First().Value; var tags = new string[PreparePostModel.TagLimit + 1]; for (int i = 0; i < tags.Length; i++) { tags[i] = "tag_" + i; } var request = new PreparePostModel(user, AppSettings.AppInfo.GetModel()) { Title = "title", Media = new MediaModel[1], Tags = tags }; var result = Validate(request); Assert.IsTrue(result.Count == 1); Assert.IsTrue(result[0].ErrorMessage.Equals(nameof(LocalizationKeys.TagLimitError))); }
public async Task <OperationResult <VoidResponse> > CreateOrEditPost(PreparePostModel model, CancellationToken ct) { var operationResult = await PreparePost(model, ct); if (!operationResult.IsSuccess) { return(new OperationResult <VoidResponse>(operationResult.Exception)); } var preparedData = operationResult.Result; var meta = JsonConvert.SerializeObject(preparedData.JsonMetadata); var commentModel = new CommentModel(model, preparedData.Body, meta); if (!model.IsEditMode) { commentModel.Beneficiaries = preparedData.Beneficiaries; } var result = await _ditchClient.CreateOrEdit(commentModel, ct); if (model.IsEditMode) { await Trace($"post/{model.PostPermlink}/edit", model.Login, result.Exception, model.PostPermlink, ct); } else { await Trace("post", model.Login, result.Exception, model.PostPermlink, ct); } var infoModel = new NamedInfoModel($"@{model.Author}/{model.Permlink}") { Login = model.Login, ShowLowRated = true, ShowNsfw = true }; var postInfo = await GetPostInfo(infoModel, ct); return(result); }
private void UploadTest(StringBuilder sb, int num) { sb.Append($"{num}) UploadTest : "); StepFinished?.Invoke(sb.ToString()); var cat = "/9j/4AAQSkZJRgABAQEAwADAAAD/4QBqRXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAEAAAExAAIAAAAQAAAAModpAAQAAAABAAAAQgAAAABTaG90d2VsbCAwLjIyLjAAAAKgAgAJAAAAAQAAAMKgAwAJAAAAAQAAAMIAAAAAAAD/4Qn0aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPg0KCTxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+DQoJCTxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjE5NCIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjE5NCIgdGlmZjpJbWFnZVdpZHRoPSIxOTQiIHRpZmY6SW1hZ2VIZWlnaHQ9IjE5NCIvPg0KCTwvcmRmOlJERj4NCjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9J3cnPz7/2wBDAAIBAQIBAQICAgICAgICAwUD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"; byte[] byteArray = Encoding.ASCII.GetBytes(cat); MemoryStream stream = new MemoryStream(byteArray); var request = new UploadMediaModel(_user, stream, ".jpg") { GenerateThumbnail = false, }; var mediaResponse = _api.UploadMedia(request, CancellationToken.None).Result; if (!mediaResponse.IsSuccess) { sb.AppendLine($"fail. Reason:{Environment.NewLine} {mediaResponse.Error.Message}"); return; } var model = new PreparePostModel(_user, AppSettings.AppInfo.GetModel()) { Tags = new[] { "spam" }, Title = "Upload test", Media = new[] { mediaResponse.Result }, }; var response = _api.CreateOrEditPost(model, CancellationToken.None).Result; if (!response.IsSuccess) { sb.AppendLine($"fail. Reason:{Environment.NewLine} {response.Error.Message}"); return; } sb.AppendLine("pass."); }
private async void PostPhoto(object sender, EventArgs e) { if (string.IsNullOrEmpty(titleTextField.Text)) { ShowAlert(LocalizationKeys.EmptyTitleField); return; } await CheckOnSpam(); if (_isSpammer) { return; } ToggleAvailability(false); await Task.Run(() => { try { string title = null; string description = null; IList <string> tags = null; InvokeOnMainThread(() => { title = titleTextField.Text; description = descriptionTextField.Text; tags = _collectionviewSource.LocalTags; }); var mre = new ManualResetEvent(false); var shouldReturn = false; var photoUploadRetry = false; OperationResult <MediaModel> photoUploadResponse; do { photoUploadRetry = false; photoUploadResponse = UploadPhoto().Result; if (!photoUploadResponse.IsSuccess) { InvokeOnMainThread(() => { ShowDialog(photoUploadResponse.Error, LocalizationKeys.Cancel, LocalizationKeys.Retry, (arg) => { shouldReturn = true; mre.Set(); }, (arg) => { photoUploadRetry = true; mre.Set(); }); }); mre.Reset(); mre.WaitOne(); } } while (photoUploadRetry); if (shouldReturn) { return; } var model = new PreparePostModel(BasePresenter.User.UserInfo) { Title = title, Description = description, Tags = tags.ToArray(), Media = new[] { photoUploadResponse.Result } }; var pushToBlockchainRetry = false; do { pushToBlockchainRetry = false; var response = _presenter.TryCreateOrEditPost(model).Result; if (!(response != null && response.IsSuccess)) { InvokeOnMainThread(() => { ShowDialog(response.Error, LocalizationKeys.Cancel, LocalizationKeys.Retry, (arg) => { mre.Set(); }, (arg) => { pushToBlockchainRetry = true; mre.Set(); }); }); mre.Reset(); mre.WaitOne(); } else { InvokeOnMainThread(() => { ShouldProfileUpdate = true; NavigationController.ViewControllers = new UIViewController[] { NavigationController.ViewControllers[0], this }; NavigationController.PopViewController(false); }); } } while (pushToBlockchainRetry); } finally { InvokeOnMainThread(() => { ToggleAvailability(true); }); } }); }
private async void OnPostAsync() { if (!editMode) { await CheckOnSpam(); if (_isSpammer) { return; } } EnablePostAndEdit(false); if (_isFromCamera) { var croppedPhoto = _cropView.CropImage(new SavedPhoto(null, ImageAssets[0].Item2, _cropView.ContentOffset) { OriginalImageSize = _cropView.originalImageSize, Scale = _cropView.ZoomScale }); ImageAssets.RemoveAt(0); ImageAssets.Add(new Tuple <NSDictionary, UIImage>(null, croppedPhoto)); } await Task.Run(() => { try { string title = null; string description = null; IList <string> tags = null; InvokeOnMainThread(() => { title = titleTextField.Text; description = descriptionTextField.Text; tags = collectionviewSource.LocalTags; }); var mre = new ManualResetEvent(false); if (!editMode) { var shouldReturn = false; var photoUploadRetry = false; OperationResult <MediaModel>[] photoUploadResponse = new OperationResult <MediaModel> [ImageAssets.Count]; do { photoUploadRetry = false; for (int i = 0; i < ImageAssets.Count; i++) { photoUploadResponse[i] = UploadPhoto(ImageAssets[i].Item2, ImageAssets[i].Item1).Result; } if (photoUploadResponse.Any(r => r.IsSuccess == false)) { InvokeOnMainThread(() => { //Remake this ShowDialog(photoUploadResponse[0].Error, LocalizationKeys.Cancel, LocalizationKeys.Retry, (arg) => { shouldReturn = true; mre.Set(); }, (arg) => { photoUploadRetry = true; mre.Set(); }); }); mre.Reset(); mre.WaitOne(); } } while (photoUploadRetry); if (shouldReturn) { return; } model = new PreparePostModel(AppSettings.User.UserInfo, AppSettings.AppInfo.GetModel()) { Title = title, Description = description, Device = "iOS", Tags = tags.ToArray(), Media = photoUploadResponse.Select(r => r.Result).ToArray(), }; } else { model.Title = title; model.Description = description; model.Device = "iOS"; model.Tags = tags.ToArray(); model.Media = post.Media; } var pushToBlockchainRetry = false; do { pushToBlockchainRetry = false; var response = _presenter.TryCreateOrEditPost(model).Result; if (!(response != null && response.IsSuccess)) { InvokeOnMainThread(() => { ShowDialog(response.Error, LocalizationKeys.Cancel, LocalizationKeys.Retry, (arg) => { mre.Set(); }, (arg) => { pushToBlockchainRetry = true; mre.Set(); }); }); mre.Reset(); mre.WaitOne(); } else { InvokeOnMainThread(() => { ShouldProfileUpdate = true; NavigationController.ViewControllers = new UIViewController[] { NavigationController.ViewControllers[0], this }; NavigationController.PopViewController(false); }); } } while (pushToBlockchainRetry); } finally { InvokeOnMainThread(() => { EnablePostAndEdit(true); }); } }); }
protected virtual async void OnPostAsync(bool skipPreparationSteps) { if (!skipPreparationSteps) { await CheckOnSpam(true); if (_isSpammer) { return; } } EnablePostAndEdit(false); if (_isFromCamera && !skipPreparationSteps) { var croppedPhoto = _cropView.CropImage(new SavedPhoto(null, ImageAssets[0].Item2, _cropView.ContentOffset) { OriginalImageSize = _cropView.originalImageSize, Scale = _cropView.ZoomScale }); ImageAssets.RemoveAt(0); ImageAssets.Add(new Tuple <NSDictionary, UIImage>(null, croppedPhoto)); } await Task.Run(() => { try { var shouldReturn = false; string title = null; string description = null; IList <string> tags = null; InvokeOnMainThread(() => { title = titleTextField.Text; description = descriptionTextField.Text; tags = collectionviewSource.LocalTags; }); mre = new ManualResetEvent(false); if (!skipPreparationSteps) { var photoUploadRetry = false; OperationResult <MediaModel>[] photoUploadResponse = new OperationResult <MediaModel> [ImageAssets.Count]; do { photoUploadRetry = false; for (int i = 0; i < ImageAssets.Count; i++) { photoUploadResponse[i] = UploadPhoto(ImageAssets[i].Item2, ImageAssets[i].Item1).Result; } if (photoUploadResponse.Any(r => r.IsSuccess == false)) { InvokeOnMainThread(() => { //Remake this ShowDialog(photoUploadResponse[0].Exception, LocalizationKeys.Cancel, LocalizationKeys.Retry, (arg) => { shouldReturn = true; mre.Set(); }, (arg) => { photoUploadRetry = true; mre.Set(); }); }); mre.Reset(); mre.WaitOne(); } } while (photoUploadRetry); if (shouldReturn) { return; } model = new PreparePostModel(AppSettings.User.UserInfo, AppSettings.AppInfo.GetModel()) { Title = title, Description = description, Device = "iOS", Tags = tags.ToArray(), Media = photoUploadResponse.Select(r => r.Result).ToArray(), }; } CreateOrEditPost(skipPreparationSteps); } catch (Exception ex) { AppSettings.Logger.Warning(ex); } finally { InvokeOnMainThread(() => { EnablePostAndEdit(true); }); } }); }
public async Task <OperationResult <VoidResponse> > TryCreateOrEditPost(PreparePostModel model) { return(await TryRunTask <PreparePostModel, VoidResponse>(CreateOrEditPost, OnDisposeCts.Token, model)); }
#pragma warning restore 0649 protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.lyt_post_description); Cheeseknife.Bind(this); _tag.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.AddHashtag); _title.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.EnterPostTitle); _description.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.EnterPostDescription); _postButton.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PublishButtonText); _pageTitle.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PostSettings); _pageTitle.Typeface = Style.Semibold; _title.Typeface = Style.Regular; _description.Typeface = Style.Regular; _postButton.Typeface = Style.Semibold; _postButton.Click += OnPost; _photoFrame.Clickable = true; _rotate.Click += RotateOnClick; _postButton.Enabled = true; _localTagsList.SetLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.Horizontal, false)); _localTagsAdapter = new SelectedTagsAdapter(); _localTagsAdapter.Click += LocalTagsAdapterClick; _localTagsList.SetAdapter(_localTagsAdapter); _localTagsList.AddItemDecoration(new ListItemDecoration((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 15, Resources.DisplayMetrics))); var editPost = Intent.GetStringExtra(EditPost); if (!string.IsNullOrEmpty(editPost)) { _editpost = JsonConvert.DeserializeObject <Post>(editPost); _model = new PreparePostModel(BasePresenter.User.UserInfo, _editpost.Permlink); SetEditPost(_editpost); _rotate.Visibility = ViewStates.Gone; } else { _model = new PreparePostModel(BasePresenter.User.UserInfo); InitPhoto(); SetPostingTimer(); } _tagsList.SetLayoutManager(new LinearLayoutManager(this)); Presenter.SourceChanged += PresenterSourceChanged; _tagsAdapter = new TagsAdapter(Presenter); _tagsAdapter.Click += OnTagsAdapterClick; _tagsList.SetAdapter(_tagsAdapter); _tag.TextChanged += OnTagOnTextChanged; _tag.KeyboardDownEvent += HideTagsList; _tag.OkKeyEvent += HideTagsList; _tag.FocusChange += OnTagOnFocusChange; _topMarginTagsLayout.Click += OnTagsLayoutClick; _backButton.Click += OnBack; _rootLayout.Click += OnRootLayoutClick; _timer = new Timer(OnTimer); SearchTextChanged(); }
public async Task <OperationResult <PreparePostResponse> > CheckPostForPlagiarism(PreparePostModel model, CancellationToken ct) { var result = await PreparePost(model, ct); if (!result.IsSuccess) { return(new OperationResult <PreparePostResponse>(result.Exception)); } return(result); }
private async Task <OperationResult <VoidResponse> > CreateOrEditPost(PreparePostModel model, CancellationToken ct) { return(await Api.CreateOrEditPost(model, ct)); }
public override async void TryCreateNewPost(CancellationToken token) { var acc = GetOptionsOrDefault <ModuleOptionsModel>(AppId); var args = new Dictionary <string, object> { { "access_token", acc.AccessToken }, }; var rezult = await Client.HttpClient.Get <ModuleRecentMediaResult>("https://api.instagram.com/v1/users/self/media/recent/", args, token); if (!rezult.IsSuccess) { return; } if (acc.MinId == null) { var data = rezult.Result.Data.FirstOrDefault(i => i.Type.Equals("image", StringComparison.OrdinalIgnoreCase) || (i.CarouselMedia != null && i.CarouselMedia.Any(m => m.Type.Equals("image", StringComparison.OrdinalIgnoreCase)))); if (data != null) { acc.MinId = data.Id; } return; } ModuleData prevData = null; foreach (var data in rezult.Result.Data.Where(i => i.Type.Equals("image", StringComparison.OrdinalIgnoreCase) || (i.CarouselMedia != null && i.CarouselMedia.Any(m => m.Type.Equals("image", StringComparison.OrdinalIgnoreCase))))) { if (data.Id != acc.MinId) { prevData = data; } else { break; } } if (prevData == null) { return; } var model = new PreparePostModel(User.UserInfo, AppSettings.AppInfo.GetModel()) { Title = prevData.Caption.Text }; var tagsM = _tagRegex.Matches(model.Title); if (tagsM.Count > 0) { model.Tags = tagsM.Cast <Match>().Select(i => i.Value).ToArray(); } if (prevData.Type.Equals("image", StringComparison.OrdinalIgnoreCase)) { model.Media = new[] { new MediaModel { Url = prevData.Images.StandardResolution.Url } }; } else { model.Media = prevData.CarouselMedia .Where(i => i.Type.Equals("image", StringComparison.OrdinalIgnoreCase)) .Select(i => new MediaModel { Url = i.Images.StandardResolution.Url }) .ToArray(); } var result = await CreatePost(model, token); if (result.IsSuccess) { acc.MinId = prevData.Id; SaveOptions(AppId, acc); } }
public PostCreateFragment(List <GalleryMediaModel> media, PreparePostModel model) : this(media) { _tepmPost = model; }
public override void OnViewCreated(View view, Bundle savedInstanceState) { if (IsInitialized) { return; } base.OnViewCreated(view, savedInstanceState); _tag.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.AddHashtag); _title.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.EnterPostTitle); _description.Hint = AppSettings.LocalizationManager.GetText(LocalizationKeys.EnterPostDescription); _postButton.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PublishButtonText); _pageTitle.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PostSettings); _pageTitle.Typeface = Style.Semibold; _title.Typeface = Style.Regular; _description.Typeface = Style.Regular; _postButton.Typeface = Style.Semibold; _postButton.Click += OnPost; _postButton.Enabled = true; _topPanel.BringToFront(); _localTagsList.SetLayoutManager(new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false)); LocalTagsAdapter.Click += LocalTagsAdapterClick; _localTagsList.SetAdapter(LocalTagsAdapter); _localTagsList.AddItemDecoration(new ListItemDecoration((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 15, Resources.DisplayMetrics))); _tagsList.SetLayoutManager(new LinearLayoutManager(Activity)); Presenter.SourceChanged += PresenterSourceChanged; TagsAdapter.Click += OnTagsAdapterClick; _tagsList.SetAdapter(TagsAdapter); _tag.TextChanged += OnTagOnTextChanged; _tag.KeyboardDownEvent += HideTagsList; _tag.OkKeyEvent += HideTagsList; _tag.FocusChange += OnTagOnFocusChange; _topMarginTagsLayout.Click += OnTagsLayoutClick; _backButton.Click += OnBack; _rootLayout.Click += OnRootLayoutClick; _timer = new Timer(OnTimer); _model = new PreparePostModel(BasePresenter.User.UserInfo); SetPostingTimer(); if (_editPost != null) { SetEditPost(); } if (_media?.Count > 1 || _editPost?.Media.Length > 1) { _photos.Visibility = ViewStates.Visible; _previewContainer.Visibility = ViewStates.Gone; _photos.SetLayoutManager(new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false)); _photos.SetAdapter(GalleryAdapter); _photos.AddItemDecoration(new ListItemDecoration((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Resources.DisplayMetrics))); } else { _photos.Visibility = ViewStates.Gone; _previewContainer.Visibility = ViewStates.Visible; var margin = (int)BitmapUtils.DpToPixel(15, Resources); var layoutParams = new RelativeLayout.LayoutParams(Resources.DisplayMetrics.WidthPixels - margin * 2, Resources.DisplayMetrics.WidthPixels - margin * 2); layoutParams.SetMargins(margin, 0, margin, margin); _previewContainer.LayoutParameters = layoutParams; _preview.CornerRadius = BitmapUtils.DpToPixel(5, Resources); if (_media != null) { _preview.SetImageUri(Uri.Parse(_media[0].Path), _media[0].Parameters); } else if (_editPost != null) { _ratioBtn.Visibility = _rotateBtn.Visibility = ViewStates.Gone; var url = _editPost.Media[0].Thumbnails.Mini; Picasso.With(Activity).Load(url) .Resize(_previewContainer.LayoutParameters.Width, _previewContainer.LayoutParameters.Height) .Into(_preview); } _preview.Touch += PreviewOnTouch; _ratioBtn.Click += RatioBtnOnClick; _rotateBtn.Click += RotateBtnOnClick; } SearchTextChanged(); }