Exemple #1
0
        public void SaveFileTransaction(FileTransferBase file)
        {
            try
            {
                rx.BeginTransaction();
                file.isCompleted = (file.Status == TransferStatus.Completed);

                RepositoryItem ri = GetRepositoryItem(file);
                if (ri != null)
                {
                    ri.Availability = StatusToAvailability(file, ri.Availability);
                    rx.Save(ri);
                }

                RepositoryItemVersion riv = GetRepositoryItemVersion(file);
                if (riv != null)
                {
                    riv.Availability = StatusToAvailability(file, riv.Availability);
                    rx.Save(riv);
                }

                rx.Save(file);
                rx.Commit();
            }
            catch (Exception ex)
            {
                rx.Rollback();

                throw ex;
            }
        }
Exemple #2
0
        public override void TransferFile(FileTransferBase f, Platform platform)
        {
            try
            {
                String sourcepath          = TemporarySanitizePath(f.Path);
                String sourcefilepath      = Path.Combine(sourcepath, f.Filename);
                String destinationfilepath = "";



                if (!platform.KeepFileStructure)
                {
                    destinationfilepath = Path.Combine(CurrentPlatform.WCF.PhysicalPath, f.Filename);
                }
                else
                {
                    String dirguid   = f.Path.Split(Path.VolumeSeparatorChar)[0];
                    String structure = f.Path.Substring(Path.GetPathRoot(f.Path).Length) + "\\";
                    destinationfilepath = Path.Combine(CurrentPlatform.WCF.PhysicalPath, dirguid, structure, f.Filename);
                }

                if (File.Exists(sourcefilepath))
                {
                    FileInfo fi = new FileInfo(sourcefilepath);



                    FileTransferServiceClient stc = new FileTransferServiceClient();

                    //stc.Endpoint.Address = new System.ServiceModel.EndpointAddress("net.tcp://#IP_SCORM_SERVER#:9999/");

                    using (FileStream fs = new FileStream(sourcefilepath, FileMode.Open, FileAccess.Read, FileShare.Read))
                    {
                        //Console.WriteLine(DateTime.Now.ToLongTimeString());
                        //FileTransferServiceClient proxy = new FileTransferServiceClient();



                        stc.Upload(destinationfilepath, platform.Name, fs);
                        stc.Close();
                    }



                    f.Status = f.Decompress ? TransferStatus.ReadyToUnzip : TransferStatus.Completed;
                    //return f;
                }
                else
                {
                    f.Status = TransferStatus.UploadFileNotFound;
                    // return f;
                }
            }
            catch (Exception ex)
            {
                f.Status = TransferStatus.Error;
                //return f;
                //throw ex;
            }
        }
Exemple #3
0
 public RepositoryItemVersion GetRepositoryItemVersion(FileTransferBase file)
 {
     try
     {
         return(rx.Get <RepositoryItemVersion>(file.IdVersion));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #4
0
 public RepositoryItem GetRepositoryItem(FileTransferBase file)
 {
     try
     {
         List <RepositoryItem> items = (from item in rx.Query <RepositoryItem>() where item.Id == file.IdItem && item.IdVersion == file.IdVersion select item).Skip(0).Take(1).ToList();
         if (items.Count() == 1)
         {
             return(items.FirstOrDefault());
         }
         return(null);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public void Unzip(FileTransferBase file, String filepath, String newpath)
        {
            try
            {
                Ionic.Zip.ZipFile f = new ZipFile(Path.Combine(filepath, file.Filename));

                //string folder="";

                f.ExtractAll(Path.Combine(newpath, file.UniqueIdVersion.ToString()), ExtractExistingFileAction.DoNotOverwrite);

                //file.Status = TransferStatus.Unzipped;
            }
            catch (Exception ex)
            {
                file.Status = TransferStatus.UnableToUnzip;
                throw;
            }
        }
Exemple #6
0
        private void button1_Click(object sender, EventArgs e)
        {
            FileMQServiceClient servicetransfer = new FileMQServiceClient();

            servicetransfer.InnerChannel.Opening += InnerChannel_Opening;
            servicetransfer.InnerChannel.Opened  += InnerChannel_Opened;
            servicetransfer.InnerChannel.Closing += InnerChannel_Closing;
            servicetransfer.InnerChannel.Closed  += InnerChannel_Closed;
            servicetransfer.InnerChannel.Faulted += InnerChannel_Faulted;
            servicetransfer.InnerChannel.UnknownMessageReceived += InnerChannel_UnknownMessageReceived;

            servicetransfer.Endpoint.Address = new System.ServiceModel.EndpointAddress(txtServerAddress.Text);

            List <FileTransferBase> list = new List <FileTransferBase>();



            String path = txtPath.Text;

            System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(path);

            System.IO.FileInfo[] files = di.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly);

            foreach (var item in files)
            {
                String dirname  = item.DirectoryName;
                String filename = item.Name;

                if (item.Length <= 104857600)
                {
                    FileTransferBase ftb1 = new FileTransferBase()
                    {
                        Path     = dirname,
                        Filename = filename
                    };

                    list.Add(ftb1);
                }
            }

            var n = list.Count;

            servicetransfer.TransferAllFilesDirect("TestTransfer", list.Take(n).ToArray());
        }
        private void ApplyVerificationResult(FileTransferBase ft, FileTransferVerificationResult result)
        {
            switch (result)
            {
            case FileTransferVerificationResult.Success:
                ft.State = FileTransferState.Success;
                break;

            case FileTransferVerificationResult.ChecksumMismatch:
                ft.State        = FileTransferState.Failure;
                ft.ErrorMessage = "Checksum mismatch";
                break;

            default:
                ft.State        = FileTransferState.Failure;
                ft.ErrorMessage = "Unknown failure";
                break;
            }
            ft.Delete();
            OnTransferStateChanged(ft);
        }
 public abstract void TransferFile(FileTransferBase f, Platform platform);
Exemple #9
0
 /// <summary>Register service method with a service binder with or without implementation. Useful when customizing the  service binding logic.
 /// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
 /// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
 /// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
 public static void BindService(grpc::ServiceBinderBase serviceBinder, FileTransferBase serviceImpl)
 {
     serviceBinder.AddMethod(__Method_FileDownload, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod <global::GrpcService.FileRequest, global::GrpcService.FileReply>(serviceImpl.FileDownload));
     serviceBinder.AddMethod(__Method_FileUpload, serviceImpl == null ? null : new grpc::DuplexStreamingServerMethod <global::GrpcService.FileReply, global::GrpcService.FileReturn>(serviceImpl.FileUpload));
 }
Exemple #10
0
 /// <summary>Creates service definition that can be registered with a server</summary>
 /// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
 public static grpc::ServerServiceDefinition BindService(FileTransferBase serviceImpl)
 {
     return(grpc::ServerServiceDefinition.CreateBuilder()
            .AddMethod(__Method_FileDownload, serviceImpl.FileDownload)
            .AddMethod(__Method_FileUpload, serviceImpl.FileUpload).Build());
 }
Exemple #11
0
 private ItemAvailability StatusToAvailability(FileTransferBase file, ItemAvailability current)
 {
     return(StatusToAvailability(file.Status, current));
 }
Exemple #12
0
 public void SaveFile(FileTransferBase file)
 {
     rx.Save(file);
 }