예제 #1
0
 public void AddRequiredFile(dtoCallRequestedFile dto)
 {
     try
     {
         RequestedFile file = CallService.AddRequestedFile(View.IdCall, dto);
         if (file == null)
         {
             View.DisplayError(EditorErrors.AddingRequestedFile);
         }
         else
         {
             if (View.CallType == CallForPaperType.CallForBids)
             {
                 View.SendUserAction(View.IdCommunity, View.IdCallModule, View.IdCall, ModuleCallForPaper.ActionType.AddRequestedFile);
             }
             else
             {
                 View.SendUserAction(View.IdCommunity, View.IdCallModule, View.IdCall, ModuleRequestForMembership.ActionType.AddRequestedFile);
             }
         }
     }
     catch (SubmissionLinked ex)
     {
         View.DisplayError(EditorErrors.AddingRequestedFile);
     }
     LoadRequiredFiles(View.IdCall);
 }
        private async void RequestFileCommandExecute()
        {
            var rfi = new RemoteFileInfo()
            {
                RemoteHost = this.ServerAddress,
                AuthKey    = this.AuthKey,
                FileName   = this.RemoteFile
            };

            try
            {
                var response = await DataHelper.FetchRemoteFile(rfi);

                if (response != null)
                {
                    Messenger.Send(rfi);

                    var f2 = new RequestedFile()
                    {
                        FileName    = this.RemoteFile,
                        FileContent = response.Data.FileContent
                    };
                    Messenger.Send(f2);
                }
                else
                {
                    MessageBox.Show("Empty response!", "Error");
                }
            }
            catch (TaskCanceledException e)
            {
                MessageBox.Show("Connection timed out!", "Error");
            }
            catch (HttpRequestException e)
            {
                MessageBox.Show("Connection timed out!!", "Error");
            }

            WindowManager.CloseRequestFileWindow();
        }
예제 #3
0
        public static async Task <FilePostResponse> FetchRemoteFile(RemoteFileInfo info)
        {
            FilePostResponse respFile = null;
            var reqFile = new RequestedFile()
            {
                FileName = info.FileName
            };

            string data = JsonSerializer.Serialize(reqFile);


            var response = await HttpHelper.PostRequestAsync("http://" + info.RemoteHost + "/file", data, info.AuthKey);

            if (response.IsSuccessStatusCode)
            {
                string body = await response.Content.ReadAsStringAsync();

                respFile = JsonSerializer.Deserialize <FilePostResponse>(body);
            }

            return(respFile);
        }