예제 #1
0
        private void ProcessFile(FileModel file, string username, string password, Action <string, Exception> callback)
        {
            var session = Guid.NewGuid().ToString();

            using (var client = m_communicationProvider.GetStreamingClientAuthenticated(username, password))
            {
                file.CurrentState = FileStateType.Uploading;
                using (var dataStream = GetDataStream(file.FullPath))
                {
                    try
                    {
                        var contract = new UploadResourceContract
                        {
                            FileName  = file.FileName,
                            Data      = dataStream,
                            SessionId = session
                        };

                        client.AddResource(contract);
                    }
                    catch (Exception)
                    {
                        file.CurrentState = FileStateType.Error;
                        return;
                        //throw;
                    }
                }
            }

            file.CurrentState = FileStateType.Processing;

            using (var client = m_communicationProvider.GetAuthenticatedClient(username, password))
            {
                try
                {
                    client.ProcessSession(session, DefaultUploadMessage);
                    file.CurrentState = FileStateType.Done;
                }
                catch (FaultException ex)
                {
                    file.ErrorMessage = ex.Message;
                    file.CurrentState = FileStateType.Error;
                    return;
                }
                catch (Exception)
                {
                    file.CurrentState = FileStateType.Error;
                    return;
                }
            }

            callback(file.FullPath, null);
        }
예제 #2
0
        public ItJakubServiceStreamedClient GetStreamingClient()
        {
            if (!IsUserLoggedIn())
            {
                return(m_communication.GetStreamingClient());
            }

            var username = GetUserName();
            var password = GetCommunicationToken();

            return(m_communication.GetStreamingClientAuthenticated(username, password));
        }