Example #1
0
        public async Task<UploadsPostprocessorResultType> ProcessUploadAsync(ICompletedUpload upload)
        {
            PostprocessionResult result = null;

            try
            {
                switch (upload.ContentType)
                {
                    case FileContentType.Music:
                        result = await SaveAudioAsync(upload.ServerResponse);
                        break;
                    case FileContentType.Video:
                        result = SaveVideo(upload.ServerResponse);
                        break;
                    default:
                        result = await SaveDocumentAsync(upload.ServerResponse);
                        break;
                }
            }
            catch (Exception ex)
            {
                _logService.LogException(ex);
                if (ex.InnerException != null && ex.InnerException is HttpRequestException)
                    result = new PostprocessionResult { Result = UploadsPostprocessorResultType.ConnectionError };
                else
                    result = new PostprocessionResult { Result = UploadsPostprocessorResultType.Unknown };
            }

            if (result.Result == UploadsPostprocessorResultType.Success)
            {
                _appNotificationsService.SendNotification(new AppNotification
                {
                    Title = _locService["Toast_PostUploads_Success_Text"],
                    Content = upload.Name,
                    Type = AppNotificationType.Info
                });

                //var successToast = ToastContentFactory.CreateToastText02();
                //successToast.Audio.Content = ToastAudioContent.IM;
                //successToast.TextHeading.Text = _locService["Toast_PostUploads_Success_Text"];
                //successToast.TextBodyWrap.Text = upload.Name;

                //var successXml = successToast.GetXml();
                //ToastAudioHelper.SetSuccessAudio(successXml);
                //var toast = new ToastNotification(successXml);

                //ToastNotificationManager.CreateToastNotifier().Show(toast);
            }
            else
                ShowError(upload, result);

            return result.Result;
        } 
Example #2
0
        private void ShowError(ICompletedUpload upload, PostprocessionResult result)
        {
            //var fail = ToastContentFactory.CreateToastText02();
            //fail.Audio.Content = ToastAudioContent.IM;
            //fail.TextHeading.Text = _locService["Toast_PostUploads_Fail_Text"];
            //fail.TextBodyWrap.Text = upload.Name;

            //var failXml = fail.GetXml();
            //ToastAudioHelper.SetFailAudio(failXml);

            //ToastNotificationManager.CreateToastNotifier().Show(new ToastNotification(failXml));

            _appNotificationsService.SendNotification(new AppNotification
            {
                Title = $"{_locService["Toast_PostUploads_Fail_Text"]} - {upload.Name}",
                Content = "Коснитесь для подробностей",
                Type = AppNotificationType.Error,
                Duration = TimeSpan.FromSeconds(15),
                ActionToDo = () =>
                {
                    string text = null;
                    if (result.Result == UploadsPostprocessorResultType.ServerError)
                    {
                        text = String.Format(_locService["Message_PostUploads_ServerError_Text"],
                            upload.Name,
                            result.ErrorCode,
                            GetServerErrorDescription(result.ErrorCode, result.UploadErrorText));
                    }
                    else if (result.Result == UploadsPostprocessorResultType.ConnectionError)
                    {
                        text = String.Format(_locService["Message_PostUploads_ConnectionError_Text"],
                            upload.Name);
                    }
                    else
                    {
                        text = String.Format(_locService["Message_PostUploads_UnknownAppError_Text"],
                            upload.Name);
                    }

                    _dialogsService.Show(text, _locService["Message_PostUploads_Error_Title"]);
                }
            });
        }