Ejemplo n.º 1
0
        /// <summary>
        /// Returns the image for the Marker Type.
        /// </summary>
        /// <param name="markerType"></param>
        /// <returns></returns>
        public static Image GetMarkerImage(MarkerType markerType)
        {
            string fileName = DirectoryAndFileHelper.GetMarkerTypeImagePath(markerType.Symbol);

            if (File.Exists(fileName))
            {
                Image image     = Image.FromFile(fileName);
                Size  imageSize = new Size();
                switch (markerType.Size)
                {
                case "Small":
                {
                    imageSize.Height = 15;
                    imageSize.Width  = 15;
                    break;
                }

                case "Medium":
                {
                    imageSize.Height = 30;
                    imageSize.Width  = 30;
                    break;
                }

                case "Large":
                {
                    imageSize.Height = 60;
                    imageSize.Width  = 60;
                    break;
                }

                default:
                {
                    imageSize.Height = 30;
                    imageSize.Width  = 30;
                    break;
                }
                }

                return(ResizeImage(image, imageSize));
            }
            return(null);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Transmit data to the given URI.
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="partsToSend"></param>
        /// <returns>A result that includes parsed JMF results if available.</returns>
        public IJmfResult Transmit(Uri uri, ITransmissionPartCollection partsToSend)
        {
            ParameterCheck.ParameterRequired(uri, "uri");
            ParameterCheck.ParameterRequired(partsToSend, "partsToSend");
            if (partsToSend.Count == 0)
            {
                throw new PreconditionException(Messages.FileTransmitter_Transmit_AtLeastOneTransmissionPartIsRequired);
            }
            if (!uri.IsFile && !uri.IsUnc)
            {
                throw new PreconditionException(Messages.FileTransmitter_Transmit_RequiresHttpUrl);
            }

            var transmissionEncoder = GetFileTransmitterEncoder(uri);

            if (transmissionEncoder != null)
            {
                FileTransmitterEncoder actualEncoder;

                if (transmissionEncoder.FolderInfo.Count == 0)
                {
                    actualEncoder = FileTransmitterEncoder.BuildDefaultFolderInfoCollection(transmissionEncoder);
                }
                else
                {
                    actualEncoder = transmissionEncoder;
                }

                List <FileTransmissionItem> results = null;
                try {
                    results = actualEncoder.PrepareTransmission(partsToSend, transmissionPartFactory, encodingfactory, transmissionLogger);

                    foreach (var item in results.OrderBy(item => item.Order))
                    {
                        if (item.Stream.CanSeek)
                        {
                            item.Stream.Seek(0, SeekOrigin.Begin);
                        }
                        var fileInfo = new FileInfo(item.DestinationUri.LocalPath);
                        DirectoryAndFileHelper.EnsureFolderExists(fileInfo.Directory, logger);
                        DirectoryAndFileHelper.SaveStreamToFile(item.Stream, fileInfo, false, logger);
                    }
                }
                catch (Exception err) {
                    logger.Error(string.Format(Messages.HttpTransmitter_Transmit_HttpTransmitter_UnexpectedException, uri), err);
                    throw;
                }
                finally {
                    if (results != null)
                    {
                        try {
                            foreach (var item in results)
                            {
                                item.Dispose();
                            }
                        }
                        finally {
                            //do nothing
                        }
                    }
                }

                return(new FileTransmissionJmfResult());
            }
            else
            {
                //This code is no longer valid
                //TODO delete this code since mime is no longer the default.
                var fileInfo = new FileInfo(uri.LocalPath);
                DirectoryAndFileHelper.EnsureFolderExists(fileInfo.Directory, logger);
                try {
                    var encodingResult = encodingfactory.GetEncodingForTransmissionParts(partsToSend).Encode(partsToSend);
                    transmissionLogger.Log(new TransmissionData(encodingResult.Stream, encodingResult.ContentType, "Request"));

                    if (encodingResult.Stream.CanSeek)
                    {
                        encodingResult.Stream.Seek(0, SeekOrigin.Begin);
                    }

                    DirectoryAndFileHelper.SaveStreamToFile(encodingResult.Stream, fileInfo, false, logger);

                    return(new FileTransmissionJmfResult());
                }
                catch (Exception err) {
                    logger.Error(string.Format(Messages.HttpTransmitter_Transmit_HttpTransmitter_UnexpectedException, uri), err);
                    throw;
                }
            }
        }