/// <summary>Gets the dimensions.</summary>
        /// <param name="item">The item.</param>
        /// <param name="options">The options.</param>
        /// <param name="image">The image.</param>
        private void SetDimensions(MediaItem item, MediaUrlOptions options, Tag image)
        {
            Assert.ArgumentNotNull((object)item, ExtensionMethods.nameof(() => item));
            Assert.ArgumentNotNull((object)options, ExtensionMethods.nameof(() => options));
            Assert.ArgumentNotNull((object)image, ExtensionMethods.nameof(() => image));
            NameValueCollection form = HttpContext.Current.Request.Form;

            if (!string.IsNullOrEmpty(form["Width"]) && form["Width"] != item.InnerItem["Width"] && form["Height"] != item.InnerItem["Height"])
            {
                int result1;
                if (int.TryParse(form["Width"], out result1))
                {
                    options.Width = result1;
                    image.Add("width", result1.ToString());
                }
                int result2;
                if (!int.TryParse(form["Height"], out result2))
                {
                    return;
                }
                options.Height = result2;
                image.Add("height", result2.ToString());
            }
            else
            {
                image.Add("width", item.InnerItem["Width"]);
                image.Add("height", item.InnerItem["Height"]);
            }
        }
Example #2
0
        private Tag getSlideContent(IMaterial material, Context context)
        {
            Tag result = new Tag("div");

            result.AddClasses("MaterialCardSlider");
            result.Add(new Title(material.Title, " .", 4).Generate(context));
            result.Add(material.Description.Generate(context));
            return(result);
        }
Example #3
0
        private void AddNode(Tag parent, string name, Node node)
        {
            if (node.Value == null)
            {
                return;
            }
            switch (((IList <Type>)supported).IndexOf(node.Value.GetType()))
            {
            case 8:
                List <Node> l = (List <Node>)node.Value;
                Tag         list;
                if (name == null)
                {
                    list = parent.AddList(ListType(l));
                }
                else
                {
                    list = parent.AddList(name, ListType(l));
                }
                foreach (Node n in l)
                {
                    AddNode(list, n);
                }
                break;

            case 9:
                Dictionary <string, Node> dict = (Dictionary <string, Node>)node.Value;
                Tag compound;
                if (name == null)
                {
                    compound = parent.AddCompound();
                }
                else
                {
                    compound = parent.AddCompound(name);
                }
                foreach (KeyValuePair <string, Node> kvp in dict)
                {
                    AddNode(compound, kvp.Key, kvp.Value);
                }
                break;

            default:
                if (name == null)
                {
                    parent.Add(node.Value);
                }
                else
                {
                    parent.Add(name, node.Value);
                }
                break;
            }
        }
        /// <summary>Handles a click on the OK button.</summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The arguments.</param>
        /// <remarks>
        /// When the user clicks OK, the dialog is closed by calling
        /// the <see cref="M:Sitecore.Web.UI.Sheer.ClientResponse.CloseWindow">CloseWindow</see> method.
        /// </remarks>
        protected override void OnOK(object sender, EventArgs args)
        {
            Assert.ArgumentNotNull(sender, ExtensionMethods.nameof(() => sender));
            Assert.ArgumentNotNull((object)args, ExtensionMethods.nameof(() => args));
            string str = this.Filename.Value;

            if (str.Length == 0)
            {
                SheerResponse.Alert("Select a media item.");
            }
            else
            {
                Item root = this.DataContext.GetRoot();
                if (root != null)
                {
                    Item rootItem = root.Database.GetRootItem();
                    if (rootItem != null && root.ID != rootItem.ID)
                    {
                        str = FileUtil.MakePath(root.Paths.Path, str, '/');
                    }
                }
                MediaItem mediaItem = (MediaItem)this.DataContext.GetItem(str, this.ContentLanguage, Sitecore.Data.Version.Latest);
                if (mediaItem == null)
                {
                    SheerResponse.Alert("The media item could not be found.");
                }
                else if (!(MediaManager.GetMedia(MediaUri.Parse((Item)mediaItem)) is ImageMedia))
                {
                    SheerResponse.Alert("The selected item is not an image. Select an image to continue.");
                }
                else
                {
                    MediaUrlOptions shellOptions = MediaUrlOptions.GetShellOptions();
                    shellOptions.Language = this.ContentLanguage;
                    string text  = !string.IsNullOrEmpty(HttpContext.Current.Request.Form["AlternateText"]) ? HttpContext.Current.Request.Form["AlternateText"] : mediaItem.Alt;
                    Tag    image = new Tag("img");
                    this.SetDimensions(mediaItem, shellOptions, image);
                    image.Add("Src", MediaManager.GetMediaUrl(mediaItem, shellOptions));
                    image.Add("Alt", StringUtil.EscapeQuote(text));
                    image.Add("_languageInserted", "true");
                    if (this.Mode == "webedit")
                    {
                        SheerResponse.SetDialogValue(StringUtil.EscapeJavascriptString(image.ToString()));
                        base.OnOK(sender, args);
                    }
                    else
                    {
                        SheerResponse.Eval("TinyMCEEditor.InsertImage.scClose(" + StringUtil.EscapeJavascriptString(image.ToString()) + ")");
                    }
                }
            }
        }
 protected override void _Apply()
 {
     Tag.UnTagAll();
     if (Controller.Field.Contains(Card))
     {
         Tag.Add(Controller);
     }
 }
Example #6
0
        private static void TestDropFrames()
        {
            Version        v  = Version.v2_3;
            TagDescription td = TagDescriptionMap.Instance[v];

            Tag tag = new Tag(td);

            tag.Add(new Frame(td, "TALB", "My Album"));
            tag.Add(new Frame(td, "EQUA"));

            UnitTest.Test(tag.Contains("TALB"));
            UnitTest.Test(tag.Contains("EQUA"));

            new TagProcessorDropFrames(v).Process(tag);

            UnitTest.Test(tag.Contains("TALB"));
            UnitTest.Test(!tag.Contains("EQUA"));
        }
Example #7
0
        public override void ModifyBody(Tag body, Context context, IMaterial material)
        {
            base.ModifyBody(body, context, material);

            body.Add((HeaderLogo.Generate(context) as Tag).AddClasses("Logo"));



            body.Add(new Behaviour("TemplateSideMenuInit", LeftWidth, RightWidth, ContentWidth, AnchorLineWidth).Generate(context));

            AddContainer(body, context, "LeftSideContainer", LeftSideElements);
            AddContainer(body, context, "RightSideContainer", RightSideElements);

            context.EstimatedWidth = ContentWidth;
            body.Add(WriteMaterial(context, material)
                     .AddClasses("Content anchorsOutside")
                     );

            body.Add(new Behaviour("TemplateSideMenuAlign").Generate(context));
        }
Example #8
0
 public void Add(Node node)
 {
     if (currentElements.Count == 0)
     {
         Result.Add(node);
     }
     else
     {
         currentElements.Peek().Add(node);
     }
 }
Example #9
0
        public Tag ToTag()
        {
            Tag tag = this.tag.Clone();

            tag.Clear();

            foreach (TagModelItem item in Items)
            {
                item.Commit();
                tag.Add(item.Frame.Clone());
            }

            return(tag);
        }
Example #10
0
        private void FillTagHash(IEnumerable <Profiler.Tag> tags)
        {
            if (tags == null)
            {
                return;
            }

            var valid = tags.Where(IsNotNull);

            foreach (var tag in tags)
            {
                Tag.Add(new TagKey(tag));
            }
        }
        ICollection <Tag> GetTags(string tags_string)
        {
            string[]          tag_names = tags_string.Trim().Split();
            ICollection <Tag> tags      = new Tag[tag_names.Length];

            foreach (string tag_name in tag_names)
            {
                tags.Add(new Tag()
                {
                    Name = tag_name
                });
            }

            return(tags);
        }
Example #12
0
        private void addbtn_Click(object sender, EventArgs e)
        {
            try
            {
                if (ValidateBeforeAdd())
                {
                    using (Tag tg = new Tag(true))
                    {
                        tg.Name        = nameTextBoxX.Text;
                        tg.Description = descriptionText.Text;

                        if (occuID == 0)
                        {
                            if (tg.Add() == 1)
                            {
                                MessageView.ShowMsg("Sucessfully Added");

                                //errorProvider1.SetError(idTxt, string.Empty);
                                //errorProvider1.SetError(nameTxt, string.Empty);

                                clear();
                            }
                        }
                        else
                        {
                            tg.ID = occuID;

                            if (MessageView.ShowQuestionMsg("Update School") == DialogResult.OK)
                            {
                                if (tg.Update() == 1)
                                {
                                    MessageView.ShowMsg("Sucessfully Updated");

                                    //errorProvider1.SetError(idTxt, string.Empty);
                                    //errorProvider1.SetError(nameTxt, string.Empty);

                                    clear();
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageView.ShowErrorMsg(ex.Message);
            }
        }
Example #13
0
        private int ReadFrame(Tag tag, Reader reader)
        {
            Frame frame = tag.DescriptionMap.CreateFrame();

            int numBytesHeaderRead = frame.Codec.ReadHeader(reader, frame);

            if (numBytesHeaderRead == -1)
            {
                // Invalid but known padding (e.g. 'MP3e')
                return(-1);
            }
            if (frame.Codec.SizeHeader != numBytesHeaderRead)
            {
                throw new Exception(GetType().Name + " failed: headersize="
                                    + frame.Codec.SizeHeader + " bytesRead=" + numBytesHeaderRead);
            }


            int numBytesContentRead = frame.Codec.SizeContent;

            bool exceptionOccured = false;

            try
            {
                numBytesContentRead = frame.Codec.ReadContent(reader, frame);
            }
            catch (CorruptFrameContentException e)
            {
                exceptionOccured = true;
                e.Handle();
            }
            if (frame.Codec.SizeContent != numBytesContentRead)
            {
                throw new Exception(GetType().Name + " failed: numBytesContent="
                                    + frame.Codec.SizeContent + " numBytesContentRead=" + numBytesContentRead);
            }

            if (!exceptionOccured ||
                CorruptFrameContentException._handling
                == CorruptFrameContentException.Handling.Ignore)
            {
                tag.Add(frame);
            }

            return(frame.Codec.SizeHeader + frame.Codec.SizeContent);
        }
        /// <summary>
        /// Fügt eine Spalte hinzu
        /// </summary>
        /// <param name="name">Name der Spalte</param>
        /// <param name="tag">Der interne Name</param>
        public virtual void AddColumn(string name, string tag)
        {
            int i = Columns.Cells.Count;

            if (string.IsNullOrWhiteSpace(ID))
            {
                Columns.Cells.Add(new ControlLink(Page, null)
                {
                    Text   = name,
                    Class  = (SelectedColumnID == i ? Order == SortOrder.Ascending ? "sort_up" : Order == SortOrder.Descending ? "sort_down" : string.Empty : string.Empty),
                    Params = Parameter.Create
                             (
                        new Parameter("order", Order == SortOrder.Ascending ? 'd' : Order == SortOrder.Descending ? 'a' : 'a')
                    {
                        Scope = ParameterScope.Local
                    },
                        new Parameter("column", i)
                    {
                        Scope = ParameterScope.Local
                    }
                             )
                });
            }
            else
            {
                Columns.Cells.Add(new ControlLink(Page, null)
                {
                    Text   = name,
                    Class  = (SelectedColumnID == i ? Order == SortOrder.Ascending ? "sort_up" : Order == SortOrder.Descending ? "sort_down" : string.Empty : string.Empty),
                    Params = Parameter.Create
                             (
                        new Parameter(ID + "_order", Order == SortOrder.Ascending ? 'd' : Order == SortOrder.Descending ? 'a' : 'a')
                    {
                        Scope = ParameterScope.Session
                    },
                        new Parameter(ID + "_column", i)
                    {
                        Scope = ParameterScope.Session
                    }
                             )
                });
            }

            Tag.Add(i, tag);
        }
Example #15
0
            protected override void _Apply()
            {
                // We refresh tags on each update cycle
                Tag.UnTagAll();
                if (!Controller.Field.Contains(Card))
                {
                    return;
                }
                foreach (var card in Controller.Field)
                {
                    if (card == Card)
                    {
                        continue;
                    }

                    Tag.Add(card);
                }
            }
Example #16
0
        private void InsertTags()
        {
            ReportStart(_cache.Tag, "Tag");

            var currentProgress = 0;

            foreach (var item in _cache.Tag)
            {
                var entity = new Entity.tTag()
                {
                    FullName = item.FullName,
                    Name     = item.Name,
                };

                _context.tTag.Add(entity);

                Tag.Add(item, entity);

                IncreaseCurrent(ref currentProgress);
            }

            ReportFinish();
        }
Example #17
0
        public override void Read(Tag tag, Reader reader)
        {
            tag.Clear();

            tag.DescriptionMap = TagDescriptionMap.Instance[
                Version.VersionByMajorMinor(header.VersionMajor, header.VersionMinor)];

            List <string> frameIds = TagDescriptionV1_0.FrameIds;

            foreach (string frameId in frameIds)
            {
                tag.Add(new Frame(TagDescriptionMap.Instance[Version.v1_0], frameId));
            }

            reader.Seek(reader.Length - HeaderV1.totalSize, SeekOrigin.Begin);
            header.Read(reader);

            foreach (Frame f in tag.Frames)
            {
                f.Codec.ReadHeader(reader, f);
                f.Codec.ReadContent(reader, f);
            }
        }
Example #18
0
        private void AddContainer(Tag body, Context context, string className, IEnumerable <IElement> elements)
        {
            if (elements == null)
            {
                return;
            }

            var container = new Tag("div").AddClasses(className);

            bool isEmpty = true;

            foreach (var e in elements)
            {
                container.Add(e.Generate(context));
                isEmpty = false;
            }

            if (isEmpty)
            {
                return;
            }

            body.Add(container);
        }
Example #19
0
 public Player()
 {
     Tag.Add("Player", "");
 }
Example #20
0
 private void AddNode(Tag parent,string name,Node node)
 {
     if (node.Value==null) return;
     switch (((IList<Type>)supported).IndexOf(node.Value.GetType())) {
         case 8:
             List<Node> l = (List<Node>)node.Value;
             Tag list;
             if (name==null) list = parent.AddList(ListType(l));
             else list = parent.AddList(name,ListType(l));
             foreach (Node n in l) AddNode(list,n);
             break;
         case 9:
             Dictionary<string,Node> dict = (Dictionary<string,Node>)node.Value;
             Tag compound;
             if (name==null) compound = parent.AddCompound();
             else compound = parent.AddCompound(name);
             foreach (KeyValuePair<string,Node> kvp in dict)
                 AddNode(compound,kvp.Key,kvp.Value);
             break;
         default:
             if (name==null) parent.Add(node.Value);
             else parent.Add(name, node.Value);
             break;
     }
 }
 /// <summary>Adds the parameters.</summary>
 /// <param name="tag">The tag.</param>
 /// <param name="args">The arguments.</param>
 private void AddParameters(Tag tag, RenderFieldArgs args)
 {
     Assert.ArgumentNotNull((object)tag, "tag");
     Assert.ArgumentNotNull((object)args, "args");
     if (args.WebEditParameters.Count <= 0)
         return;
     UrlString urlString = new UrlString();
     foreach (KeyValuePair<string, string> webEditParameter in (SafeDictionary<string, string>)args.WebEditParameters)
         urlString.Add(webEditParameter.Key, webEditParameter.Value);
     tag.Add("sc_parameters", urlString.ToString());
 }
 /// <summary>Creates the field tag.</summary>
 /// <param name="tagName">Name of the tag.</param>
 /// <param name="args">The arguments.</param>
 /// <param name="controlID"> </param>
 /// <returns>The field tag.</returns>
 private static Tag CreateFieldTag(string tagName, RenderFieldArgs args, string controlID)
 {
     Assert.ArgumentNotNull((object)tagName, "tagName");
     Assert.ArgumentNotNull((object)args, "args");
     Tag tag = new Tag(tagName)
     {
         ID = controlID + "_edit"
     };
     tag.Add("scFieldType", args.FieldTypeKey);
     return tag;
 }
		/// <summary>
		/// Called when someone clicks OK.
		/// </summary>
		/// <param name="sender">Sending object.</param>
		/// <param name="args">Event arguments.</param>
		protected override void OnOK(object sender, EventArgs args)
		{
			Assert.ArgumentNotNull(sender, "sender");
			Assert.ArgumentNotNull(args, "args");
			var str = this.Filename.Value;
			if (str.Length == 0)
			{
				SheerResponse.Alert("Select a media item.", new string[0]);
			}
			else
			{
				var root = this.DataContext.GetRoot();
				if (root != null)
				{
					var rootItem = root.Database.GetRootItem();
					if ((rootItem != null) && (root.ID != rootItem.ID))
					{
						str = FileUtil.MakePath(root.Paths.Path, str, '/');
					}
				}

				MediaItem item = this.DataContext.GetItem(str);

				if (item == null)
				{
					SheerResponse.Alert("The media item could not be found.", new string[0]);
				}
				else if (!(MediaManager.GetMedia(MediaUri.Parse(item)) is ImageMedia))
				{
					SheerResponse.Alert("The selected item is not an image. Select an image to continue.", new string[0]);
				}
				else
				{
					var options = new MediaUrlOptions { UseItemPath = false, AbsolutePath = false };
					var text = !string.IsNullOrEmpty(HttpContext.Current.Request.Form["AlternateText"]) ? HttpContext.Current.Request.Form["AlternateText"] : item.Alt;
					var desc = !string.IsNullOrEmpty(HttpContext.Current.Request.Form["Description"]) ? HttpContext.Current.Request.Form["Description"] : item.Description;
					var image = new Tag("img");

					// Use reflection to access the private method to set the image's dimensions
					// ReSharper disable PossibleNullReferenceException
					var dynMethod = this.GetType().BaseType.GetMethod("SetDimensions", BindingFlags.NonPublic | BindingFlags.Instance);
					// ReSharper restore PossibleNullReferenceException
					dynMethod.Invoke(this, new object[] { item, options, image });

					image.Add("Src", MediaManager.GetMediaUrl(item, options));
					image.Add("Alt", StringUtil.EscapeQuote(text));
					image.Add("longdesc", StringUtil.EscapeQuote(desc));
					if (this.Mode == "webedit")
					{
						SheerResponse.SetDialogValue(StringUtil.EscapeJavascriptString(image.ToString()));
						base.OnOK(sender, args);
					}
					else
					{
						SheerResponse.Eval("scClose(" + StringUtil.EscapeJavascriptString(image.ToString()) + ")");
					}
				}
			}

			this.StoreLastAccessedMediaLibraryItem();
		}
        public SrcStack(Construct scope, string id, IStackProps props) : base(scope, id, props)
        {
            #region VPC, Subnets and Security Groups
            IVpc batchVpc = new Vpc(this, Constants.VPC_ID, new VpcProps {
                Cidr   = Constants.CIDR_RANGE,
                MaxAzs = 4
            });

            var privateSubnetIds = new List <string>();
            foreach (Subnet subnet in batchVpc.PrivateSubnets)
            {
                privateSubnetIds.Add(subnet.SubnetId);
            }

            var batchSecurityGroup = new SecurityGroup(this, Constants.BATCH_SECURITY_GROUP_ID,
                                                       new SecurityGroupProps {
                Vpc = batchVpc,
                SecurityGroupName = Constants.BATCH_SECURITY_GROUP_NAME,
                Description       = Constants.BATCH_SECURITY_GROUP_DESCRIPTION,
            }
                                                       );

            var batchSecurityGroupIds = new List <string>()
            {
                batchSecurityGroup.SecurityGroupId
            };

            #endregion

            #region S3, DynamoDB, Lambda (to trigger the batch on file drop)
            s3.Bucket bucket = new s3.Bucket(this, Constants.S3_BUCKET_ID, new s3.BucketProps {
                BucketName = Constants.S3_BUCKET_NAME + this.Account
            });
            var bucketName = bucket.BucketName;

            var gsi = new dynamo.GlobalSecondaryIndexProps()
            {
                IndexName    = "GSI",
                PartitionKey = new dynamo.Attribute {
                    Name = "CreatedTime", Type = dynamo.AttributeType.STRING
                },
                ProjectionType = dynamo.ProjectionType.KEYS_ONLY
            };

            dynamo.Table table = new dynamo.Table(this, Constants.DynamoDB_TABLE_ID, new dynamo.TableProps {
                TableName    = Constants.DynamoDB_TABLE_ID,
                PartitionKey = new dynamo.Attribute {
                    Name = "ProductId", Type = dynamo.AttributeType.STRING
                },
                BillingMode = dynamo.BillingMode.PAY_PER_REQUEST
            });
            table.AddGlobalSecondaryIndex(gsi);


            var lambdaBatchExecutionRoleProvider = new LambdaBatchExecutionRole(this, Constants.LAMBDA_BATCH_EXECUTION_ROLE_ID);
            #endregion

            DockerImageAsset imageAsset = new DockerImageAsset(this, "BatchProcessorImage", new DockerImageAssetProps {
                Directory      = Constants.BATCH_PROCESSOR_PYTHON_CODE_PATH,
                RepositoryName = Constants.ECR_REPOSITORY_NAME
            });

            #region Batch - ComputeEnvironment - Job Queue - Job Definition
            var batchServiceRole     = new BatchServiceRole(this, Constants.BATCH_SERVICE_ROLE_ID);
            var ecsInstanceRole      = new EcsInstanceRole(this, Constants.ECS_INSTANCE_ROLE_ID);
            var batchInstanceProfile = new InstanceProfile(this, Constants.BATCH_INSTANCE_PROFILE_ID, ecsInstanceRole);

            var computeEnvironment = new batch.CfnComputeEnvironment(this, Constants.BATCH_COMPUTE_ENVIRONMENT_ID,
                                                                     new batch.CfnComputeEnvironmentProps {
                ComputeEnvironmentName = Constants.BATCH_COMPUTE_ENVIRONMENT_NAME,
                Type             = Constants.BATCH_COMPUTE_TYPE,
                ServiceRole      = batchServiceRole.Role.RoleName,
                ComputeResources = new batch.CfnComputeEnvironment.ComputeResourcesProperty {
                    Type          = Constants.BATCH_COMPUTE_RESOURCE_TYPE,
                    MinvCpus      = 0,
                    MaxvCpus      = 32,
                    DesiredvCpus  = 0,
                    InstanceRole  = ecsInstanceRole.Role.RoleName,
                    InstanceTypes = new string[] {
                        Constants.BATCH_INSTANCE_TYPE
                    },
                    SecurityGroupIds = batchSecurityGroupIds.ToArray(),
                    Subnets          = privateSubnetIds.ToArray()
                }
            });

            var computeEnvironmentOrders = new List <batch.CfnJobQueue.ComputeEnvironmentOrderProperty>();
            var computeEnvironmentOrder  = new batch.CfnJobQueue.ComputeEnvironmentOrderProperty()
            {
                Order = 1,
                ComputeEnvironment = computeEnvironment.Ref
            };
            computeEnvironmentOrders.Add(computeEnvironmentOrder);

            var batchProcessingJobQueue = new batch.CfnJobQueue(this, Constants.BATCH_JOB_QUEUE_ID, new batch.CfnJobQueueProps {
                JobQueueName            = Constants.BATCH_PROCESSING_JOB_QUEUE,
                Priority                = 1,
                ComputeEnvironmentOrder = computeEnvironmentOrders.ToArray()
            });

            var batchProcessingJobDefinition = new batch.CfnJobDefinition(this, Constants.BATCH_JOB_DEFINITION_ID, new batch.CfnJobDefinitionProps {
                Type = Constants.CONTAINER,
                JobDefinitionName   = Constants.BATCH_JOB_DEFINITION_NAME,
                ContainerProperties = new batch.CfnJobDefinition.ContainerPropertiesProperty()
                {
                    Image   = imageAsset.ImageUri,
                    Vcpus   = Constants.BATCH_JOB_DEFINITION_VCPU,
                    Memory  = Constants.BATCH_JOB_DEFINITION_MemoryLimitMiB,
                    Command = new string[] {
                        "python",
                        "batch_processor.py"
                    }
                }
            });
            #endregion


            #region lambda s3 event trigger

            BatchTriggerLambdaInput batchTriggerLambdaInput = new BatchTriggerLambdaInput {
                BucketName         = bucketName,
                FileName           = "sample.csv",
                Region             = "us-east-1",
                BatchJobDefinition = batchProcessingJobDefinition.JobDefinitionName,
                BatchJobName       = Constants.BATCH_JOB_NAME,
                BatchJobQueue      = batchProcessingJobQueue.JobQueueName,
                DBTable            = table.TableName
            };

            lambda.Function lambda = BatchTriggerLambda.BatchTriggerLambdaFunction(this, Constants.LAMBDA_NAME,
                                                                                   batchTriggerLambdaInput, lambdaBatchExecutionRoleProvider);

            var batchLambdaFunction = new LambdaFunction(
                lambda
                );

            var eventPutSource = new eventsources.S3EventSource(bucket, new eventsources.S3EventSourceProps {
                Events = new s3.EventType[] {
                    s3.EventType.OBJECT_CREATED_PUT
                }
            });

            lambda.AddEventSource(eventPutSource);

            #endregion

            #region OUTPUTS
            var cfnComputeOutput = new CfnOutput(this, Constants.BATCH_COMPUTE_ENVIRONMENT_NAME_OUTPUT_ID,
                                                 new CfnOutputProps {
                Value = computeEnvironment.Ref
            }
                                                 );

            var cfnS3Output = new CfnOutput(this, Constants.S3_BUCKET_OUTPUT_ID,
                                            new CfnOutputProps {
                Value = bucket.BucketName
            }
                                            );

            var cfnEcrRepositoryOutput = new CfnOutput(this, Constants.ECR_REPOSITORY_OUTPUT_ID,
                                                       new CfnOutputProps {
                Value = imageAsset.Repository.RepositoryArn
            }
                                                       );

            var cfnDynamoTableOutput = new CfnOutput(this, Constants.DYNAMO_TABLE_OUTPUT_ID,
                                                     new CfnOutputProps {
                Value = table.TableName
            }
                                                     );

            var cfnLambdaRepositoryOutput = new CfnOutput(this, Constants.LAMBDA_OUTPUT_ID,
                                                          new CfnOutputProps {
                Value = lambda.FunctionArn
            }
                                                          );

            #endregion

            Tag.Add(this, "Name", Constants.APP_NAME);
        }
 /// <summary>Renders the field without a wrapper.</summary>
 /// <param name="output">The output.</param>
 /// <param name="args">The arguments.</param>
 /// <param name="field"> </param>
 /// <param name="controlID"> </param>
 private void RenderWrapperlessField(HtmlTextWriter output, RenderFieldArgs args, Field field, string controlID)
 {
     Assert.ArgumentNotNull((object)output, "output");
     Assert.ArgumentNotNull((object)args, "args");
     Assert.ArgumentNotNull((object)controlID, "controlID");
     Tag fieldTag = CreateFieldTag("code", args, controlID);
     fieldTag.Class = "scpm";
     fieldTag.Add("kind", "open").Add("type", "text/sitecore").Add("chromeType", "field");
     string str = args.Result.FirstPart;
     if (string.IsNullOrEmpty(str))
     {
         fieldTag.Add("scWatermark", "true");
         string defaultText = GetDefaultText(args);
         str = defaultText;
         if (StringUtil.RemoveTags(defaultText) == defaultText)
             str = "<span class='scTextWrapper'>" + defaultText + "</span>";
     }
     this.AddParameters(fieldTag, args);
     string fieldData =GetFieldData(args, field, controlID);
     fieldTag.InnerHtml = fieldData;
     output.Write(fieldTag.ToString());
     output.Write(str);
     args.Result.FirstPart = output.InnerWriter.ToString();
     Tag tag = new Tag("code")
     {
         Class = "scpm"
     };
     tag.Add("kind", "close").Add("type", "text/sitecore").Add("chromeType", "field");
     args.Result.LastPart += tag.ToString();
 }
Example #26
0
		public Tag Read(Stream apeStream)
		{
			Tag tag = new Tag();
			
			//Check wether the file contains an APE tag--------------------------------
			apeStream.Seek( apeStream.Length - 32 , SeekOrigin.Begin);
			
			byte[] b = new byte[8];
			apeStream.Read(b, 0, b.Length);
			
			string tagS = new string( System.Text.Encoding.ASCII.GetChars(b) );
			if(tagS != "APETAGEX" ){
				throw new CannotReadException("There is no APE Tag in this file");
			}
			//Parse the tag -)------------------------------------------------
			//Version
			b = new byte[4];
			apeStream.Read( b , 0,  b .Length);
			int version = Utils.GetNumber(b, 0,3);
			if(version != 2000) {
				throw new CannotReadException("APE Tag other than version 2.0 are not supported");
			}
			
			//Size
			b = new byte[4];
			apeStream.Read( b , 0,  b .Length);
			long tagSize = Utils.GetLongNumber(b, 0,3);

			//Number of items
			b = new byte[4];
			apeStream.Read( b , 0,  b .Length);
			int itemNumber = Utils.GetNumber(b, 0,3);
			
			//Tag Flags
			b = new byte[4];
			apeStream.Read( b , 0,  b .Length);
			//TODO handle these
			
			apeStream.Seek(apeStream.Length - tagSize, SeekOrigin.Begin);
			
			for(int i = 0; i<itemNumber; i++) {
				//Content length
				b = new byte[4];
				apeStream.Read( b , 0,  b .Length);
				int contentLength = Utils.GetNumber(b, 0,3);
				if(contentLength > 500000)
					throw new CannotReadException("Item size is much too large: "+contentLength+" bytes");
				
				//Item flags
				b = new byte[4];
				apeStream.Read( b , 0,  b .Length);
				//TODO handle these
				bool binary = ((b[0]&0x06) >> 1) == 1;
				
				int j = 0;
				while(apeStream.ReadByte() != 0)
					j++;
				apeStream.Seek(apeStream.Position - j -1, SeekOrigin.Begin);
				int fieldSize = j;
				
				//Read Item key
				b = new byte[fieldSize];
				apeStream.Read( b , 0,  b .Length);
				apeStream.Seek(1, SeekOrigin.Current);
				string field = new string(System.Text.Encoding.GetEncoding("ISO-8859-1").GetChars(b));

				//Read Item content
				b = new byte[contentLength];
				apeStream.Read( b , 0,  b .Length);
				if(!binary) {
					string content = Encoding.UTF8.GetString(b);
					switch (field) {
					case "Track":
						string num, count;
						Utils.SplitTrackNumber(content, out num, out count);
						if (num != null)
							tag.AddTrack(num);
						if (count != null)
							tag.AddTrackCount(count);
						break;

					default:
					    tag.Add(field, content);
						break;
					}
					
				} //else FIXME
				   // tag.Add(new ApeTagBinaryField(field, b));
			}
			
			return tag;
		} 
Example #27
0
        public Tag Read(Stream apeStream)
        {
            Tag tag = new Tag();

            //Check wether the file contains an APE tag--------------------------------
            apeStream.Seek(apeStream.Length - 32, SeekOrigin.Begin);

            byte[] b = new byte[8];
            apeStream.Read(b, 0, b.Length);

            string tagS = new string( System.Text.Encoding.ASCII.GetChars(b));

            if (tagS != "APETAGEX")
            {
                throw new CannotReadException("There is no APE Tag in this file");
            }
            //Parse the tag -)------------------------------------------------
            //Version
            b = new byte[4];
            apeStream.Read(b, 0, b.Length);
            int version = Utils.GetNumber(b, 0, 3);

            if (version != 2000)
            {
                throw new CannotReadException("APE Tag other than version 2.0 are not supported");
            }

            //Size
            b = new byte[4];
            apeStream.Read(b, 0, b.Length);
            long tagSize = Utils.GetLongNumber(b, 0, 3);

            //Number of items
            b = new byte[4];
            apeStream.Read(b, 0, b.Length);
            int itemNumber = Utils.GetNumber(b, 0, 3);

            //Tag Flags
            b = new byte[4];
            apeStream.Read(b, 0, b.Length);
            //TODO handle these

            apeStream.Seek(apeStream.Length - tagSize, SeekOrigin.Begin);

            for (int i = 0; i < itemNumber; i++)
            {
                //Content length
                b = new byte[4];
                apeStream.Read(b, 0, b.Length);
                int contentLength = Utils.GetNumber(b, 0, 3);
                if (contentLength > 500000)
                {
                    throw new CannotReadException("Item size is much too large: " + contentLength + " bytes");
                }

                //Item flags
                b = new byte[4];
                apeStream.Read(b, 0, b.Length);
                //TODO handle these
                bool binary = ((b[0] & 0x06) >> 1) == 1;

                int j = 0;
                while (apeStream.ReadByte() != 0)
                {
                    j++;
                }
                apeStream.Seek(apeStream.Position - j - 1, SeekOrigin.Begin);
                int fieldSize = j;

                //Read Item key
                b = new byte[fieldSize];
                apeStream.Read(b, 0, b.Length);
                apeStream.Seek(1, SeekOrigin.Current);
                string field = new string(System.Text.Encoding.GetEncoding("ISO-8859-1").GetChars(b));

                //Read Item content
                b = new byte[contentLength];
                apeStream.Read(b, 0, b.Length);
                if (!binary)
                {
                    string content = Encoding.UTF8.GetString(b);
                    switch (field)
                    {
                    case "Track":
                        string num, count;
                        Utils.SplitTrackNumber(content, out num, out count);
                        if (num != null)
                        {
                            tag.AddTrack(num);
                        }
                        if (count != null)
                        {
                            tag.AddTrackCount(count);
                        }
                        break;

                    default:
                        tag.Add(field, content);
                        break;
                    }
                }                 //else FIXME
                                  // tag.Add(new ApeTagBinaryField(field, b));
            }

            return(tag);
        }
Example #28
0
 public Danmaku()
 {
     Tag.Add("Danmaku", "");
 }
Example #29
0
        /// <summary>
        /// 以指定的UserID为起点开始爬行
        /// </summary>
        /// <param name="lUid"></param>
        public void Start()
        {
            //获取上次中止处的用户ID并入队
            long lLastUID = SysArg.GetCurrentID(SysArgFor.USER_TAG);

            if (lLastUID > 0)
            {
                queueUserForUserTagRobot.Enqueue(lLastUID);
            }
            while (queueUserForUserTagRobot.Count == 0)
            {
                if (blnAsyncCancelled)
                {
                    return;
                }
                Thread.Sleep(GlobalPool.SleepMsForThread);   //若队列为空,则等待
            }

            AdjustRealFreq();
            SetCrawlerFreq();
            Log("The initial requesting interval is " + crawler.SleepTime.ToString() + "ms. " + api.ResetTimeInSeconds.ToString() + "s, " + api.RemainingIPHits.ToString() + " IP hits and " + api.RemainingUserHits.ToString() + " user hits left this hour.");

            //对队列无限循环爬行,直至有操作暂停或停止
            while (true)
            {
                if (blnAsyncCancelled)
                {
                    return;
                }
                while (blnSuspending)
                {
                    if (blnAsyncCancelled)
                    {
                        return;
                    }
                    Thread.Sleep(GlobalPool.SleepMsForThread);
                }

                //将队头取出
                //lCurrentID = queueUserForUserTagRobot.RollQueue();
                lCurrentID = queueUserForUserTagRobot.FirstValue;

                //日志
                Log("Recording current UserID: " + lCurrentID.ToString() + "...");
                SysArg.SetCurrentID(lCurrentID, SysArgFor.USER_TAG);

                #region 用户标签信息
                if (blnAsyncCancelled)
                {
                    return;
                }
                while (blnSuspending)
                {
                    if (blnAsyncCancelled)
                    {
                        return;
                    }
                    Thread.Sleep(GlobalPool.SleepMsForThread);
                }

                //日志
                Log("Crawling tags of User " + lCurrentID.ToString() + "...");
                LinkedList <Tag> lstTag = crawler.GetTagsOf(lCurrentID);
                if (lstTag.Count > 0 && lstTag.First.Value.tag_id > 0)
                {
                    //日志
                    Log(lstTag.Count.ToString() + " tags crawled.");
                    //日志
                    AdjustFreq();
                    SetCrawlerFreq();
                    Log("Requesting interval is adjusted as " + crawler.SleepTime.ToString() + "ms. " + api.ResetTimeInSeconds.ToString() + "s, " + api.RemainingIPHits.ToString() + " IP hits and " + api.RemainingUserHits.ToString() + " user hits left this hour.");

                    while (lstTag.Count > 0)
                    {
                        if (blnAsyncCancelled)
                        {
                            return;
                        }
                        while (blnSuspending)
                        {
                            if (blnAsyncCancelled)
                            {
                                return;
                            }
                            Thread.Sleep(GlobalPool.SleepMsForThread);
                        }
                        Tag tag = lstTag.First.Value;
                        if (!Tag.Exists(tag.tag_id))
                        {
                            //日志
                            Log("Saving Tag " + tag.tag_id.ToString() + " into database...");
                            tag.Add();
                        }
                        else
                        {
                            //日志
                            //Log( "Tag " + tag.tag_id.ToString() + " exists." );
                            Log("Updating Tag " + tag.tag_id.ToString() + " into database...");
                            tag.Update();
                        }

                        if (!UserTag.Exists(lCurrentID, tag.tag_id))
                        {
                            //日志
                            Log("Recording User " + lCurrentID.ToString() + " has Tag " + tag.tag_id.ToString() + "...");
                            UserTag user_tag = new UserTag();
                            user_tag.user_id = lCurrentID;
                            user_tag.tag_id  = tag.tag_id;
                            user_tag.Add();
                        }
                        else
                        {
                            //日志
                            Log("Tag " + tag.tag_id.ToString() + " of User " + lCurrentID.ToString() + " exists.");
                        }

                        lstTag.RemoveFirst();
                    }
                    queueUserForUserTagRobot.RollQueue();
                    //日志
                    Log("Tags of User " + lCurrentID.ToString() + " crawled.");
                }
                else if (lstTag.Count > 0 && lstTag.First.Value.tag_id == -1)
                {
                    lstTag.Clear();
                    int iSleepSeconds = GlobalPool.GetAPI(SysArgFor.USER_INFO).ResetTimeInSeconds;
                    Log("Service is forbidden now. I will wait for " + iSleepSeconds.ToString() + "s to continue...");
                    for (int i = 0; i < iSleepSeconds; i++)
                    {
                        if (blnAsyncCancelled)
                        {
                            return;
                        }
                        Thread.Sleep(1000);
                    }
                    continue;
                }
                else if (lstTag.Count > 0 && lstTag.First.Value.tag_id == -2)
                {
                    int iSleepSeconds = GlobalPool.GetAPI(SysArgFor.USER_INFO).ResetTimeInSeconds;
                    Log("Error! The error message is \"" + lstTag.First.Value.tag + "\". I will wait for " + iSleepSeconds.ToString() + "s to continue...");
                    lstTag.Clear();
                    for (int i = 0; i < iSleepSeconds; i++)
                    {
                        if (blnAsyncCancelled)
                        {
                            return;
                        }
                        Thread.Sleep(1000);
                    }
                    continue;
                }
                else
                {
                    queueUserForUserTagRobot.RollQueue();
                    //日志
                    Log("Tags of User " + lCurrentID.ToString() + " crawled.");
                }
                #endregion
            }
        }
Example #30
0
 public Character()
 {
     Tag.Add("Character", "");
 }
Example #31
0
        internal AutoScaledInstances(
            CdkStack stack,
            CfnParameter targetPlatform,
            Vpc vpc,
            bool publicAccess,
            SecurityGroup albSecurityGroup,
            SecurityGroup instanceSecurityGroup,
            Database database = null,
            Policy policy     = null,
            ApplicationLoadBalancer restApiLoadBalancer = null)
        {
            IMachineImage selectedImage;

            bool targetWindows = false;

            if (targetWindows)
            {
                var userData = UserData.ForWindows();
                userData.AddCommands(
                    "New-Item -Path c:\\temp -ItemType Directory -Force",
                    $"Read-S3Object -BucketName aws-codedeploy-{stack.Region}/latest -Key codedeploy-agent.msi -File c:\\temp\\codedeploy-agent.msi",
                    "Start-Process -Wait -FilePath c:\\temp\\codedeploy-agent.msi -WindowStyle Hidden"
                    );
                selectedImage = new WindowsImage(
                    WindowsVersion.WINDOWS_SERVER_2019_ENGLISH_CORE_BASE,
                    new WindowsImageProps
                {
                    UserData = userData
                }
                    );
            }
            else
            {
                var userData = UserData.ForLinux(new LinuxUserDataOptions {
                    Shebang = "#!/bin/bash -xe"
                });
                userData.AddCommands(
                    "exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1",
                    "yum install -y aws-cli ruby jq",
                    "yum -y update",
                    "cd /tmp/",
                    $"curl -O https://aws-codedeploy-{stack.Region}.s3.amazonaws.com/latest/install",
                    "chmod +x ./install",
                    "if ./install auto; then",
                    "    echo \"CodeDeploy Agent installation completed successfully!\"",
                    "    exit 0",
                    "else",
                    "    echo \"CodeDeploy Agent installation failed, please investigate.\"",
                    "    rm -f /tmp/install",
                    "    exit 1",
                    "fi",
                    "rm -rf /tmp/*"
                    );
                selectedImage = new AmazonLinuxImage(new AmazonLinuxImageProps
                {
                    Edition        = AmazonLinuxEdition.STANDARD,
                    Virtualization = AmazonLinuxVirt.HVM,
                    Generation     = AmazonLinuxGeneration.AMAZON_LINUX_2,
                    Storage        = AmazonLinuxStorage.EBS,
                    UserData       = userData
                });
            };

            var alb = new ApplicationLoadBalancer(stack, $"ApplicationLoadBalancer-{(publicAccess ? "public" : "private")}", new ApplicationLoadBalancerProps
            {
                InternetFacing = publicAccess,
                Vpc            = vpc,
                VpcSubnets     = new SubnetSelection {
                    SubnetType = publicAccess ? SubnetType.PUBLIC : SubnetType.PRIVATE
                },
                SecurityGroup = albSecurityGroup,
                IpAddressType = IpAddressType.IPV4,
                Http2Enabled  = true
            });

            var albTargetGroup = new ApplicationTargetGroup(stack, $"ApplicationTargetGroup-{(publicAccess ? "public" : "private")}", new ApplicationTargetGroupProps
            {
                Vpc         = vpc,
                Port        = 80,
                Protocol    = ApplicationProtocol.HTTP,
                TargetType  = TargetType.INSTANCE,
                HealthCheck = new Amazon.CDK.AWS.ElasticLoadBalancingV2.HealthCheck
                {
                    Timeout  = Duration.Seconds(5),
                    Interval = Duration.Seconds(10),
                    HealthyThresholdCount = 2
                }
            });
            var albListener = new ApplicationListener(stack, $"ApplicationListener-{(publicAccess ? "public" : "private")}", new ApplicationListenerProps
            {
                Port          = 80,
                Protocol      = ApplicationProtocol.HTTP,
                DefaultAction = ListenerAction.Forward(new[] { albTargetGroup }),
                LoadBalancer  = alb
            });

            var asg = new AutoScalingGroup(stack, $"ASG-{(publicAccess ? "public" : "private")}", new AutoScalingGroupProps
            {
                Vpc          = vpc,
                MinCapacity  = 2,
                InstanceType = InstanceType.Of(InstanceClass.BURSTABLE3, InstanceSize.MEDIUM),
                MachineImage = selectedImage,
                BlockDevices = new[] {
                    new Amazon.CDK.AWS.AutoScaling.BlockDevice()
                    {
                        DeviceName = "/dev/xvda",
                        Volume     = Amazon.CDK.AWS.AutoScaling.BlockDeviceVolume.Ebs(
                            targetWindows ? 30: 8,
                            new Amazon.CDK.AWS.AutoScaling.EbsDeviceOptions {
                            VolumeType          = Amazon.CDK.AWS.AutoScaling.EbsDeviceVolumeType.GP2,
                            DeleteOnTermination = true
                        }
                            )
                    }
                },
                AssociatePublicIpAddress = false,
                VpcSubnets = new SubnetSelection {
                    SubnetType = SubnetType.PRIVATE
                }
            });

            if (policy != null)
            {
                asg.Role.AttachInlinePolicy(policy);
            }
            asg.Role.AddToPrincipalPolicy(
                new PolicyStatement(new PolicyStatementProps
            {
                Effect    = Effect.ALLOW,
                Actions   = new[] { "ec2:DescribeTags" },
                Resources = new[] { "*" }
            })
                );
            asg.Role.AddManagedPolicy(ManagedPolicy.FromAwsManagedPolicyName("AmazonSSMManagedInstanceCore"));
            asg.Role.AddManagedPolicy(ManagedPolicy.FromAwsManagedPolicyName("AWSXRayDaemonWriteAccess"));
            asg.Role.AddManagedPolicy(ManagedPolicy.FromAwsManagedPolicyName("CloudWatchAgentServerPolicy"));

            Tag.Add(asg, "Application", stack.StackName);
            if (publicAccess)
            {
                Tag.Add(asg, "ApplicationRole", "Front End");
                Tag.Add(asg, "RESTAPIAddress", restApiLoadBalancer.LoadBalancerDnsName);
            }
            else
            {
                Tag.Add(asg, "ApplicationRole", "REST API");
            }
            if (database != null)
            {
                asg.Node.AddDependency(database.DatabaseResource);
                Tag.Add(asg, "DBSecretArn", database.Password.SecretArn);
            }

            // Enable access from the ALB
            asg.AddSecurityGroup(instanceSecurityGroup);
            Result = new LoadBalancedInstancesResult
            {
                AutoScalingGroup = asg,
                TargetGroup      = albTargetGroup,
                LoadBalancer     = alb
            };
        }
        /// <summary>
        /// Handles a click on the OK button.
        ///
        /// </summary>
        /// <param name="sender">The sender.</param><param name="args">The arguments.</param>
        /// <remarks>
        /// When the user clicks OK, the dialog is closed by calling
        ///             the <see cref="M:Sitecore.Web.UI.Sheer.ClientResponse.CloseWindow">CloseWindow</see> method.
        ///
        /// </remarks>
        protected override void OnOK(object sender, EventArgs args)
        {
            Assert.ArgumentNotNull(sender, "sender");
            Assert.ArgumentNotNull(args, "args");

            string str = Filename.Value;

            if (str.Length == 0)
            {
                SheerResponse.Alert("Select a media item.");
            }
            else
            {
                Item root     = DataContext.GetRoot();
                Item rootItem = root?.Database.GetRootItem();

                if (rootItem != null && root.ID != rootItem.ID)
                {
                    str = FileUtil.MakePath(root.Paths.Path, str, '/');
                }

                MediaItem mediaItem = DataContext.GetItem(str, ContentLanguage, Sitecore.Data.Version.Latest);
                if (mediaItem == null)
                {
                    SheerResponse.Alert("The media item could not be found.");
                }
                else if (!(MediaManager.GetMedia(MediaUri.Parse(mediaItem)) is ImageMedia || mediaItem.MimeType == "image/svg+xml"))
                {
                    SheerResponse.Alert("The selected item is not an image. Select an image to continue.");
                }
                else
                {
                    MediaUrlOptions shellOptions = MediaUrlOptions.GetShellOptions();
                    shellOptions.Language = ContentLanguage;
                    string text = !string.IsNullOrEmpty(HttpContext.Current.Request.Form["AlternateText"])
                        ? HttpContext.Current.Request.Form["AlternateText"]
                        : mediaItem.Alt;

                    if (mediaItem.MimeType == "image/svg+xml")
                    {
                        string svgImage = GetSVGImage(mediaItem, shellOptions);

                        if (Mode == "webedit")
                        {
                            SheerResponse.SetDialogValue(StringUtil.EscapeJavascriptString(svgImage));
                            base.OnOK(sender, args);
                        }
                        else
                        {
                            SheerResponse.Eval("scClose(" + StringUtil.EscapeJavascriptString(svgImage) + ")");
                        }
                    }
                    else
                    {
                        Tag image = new Tag("img");
                        SetDimensions(mediaItem, shellOptions, image);
                        image.Add("Src", MediaManager.GetMediaUrl(mediaItem, shellOptions));
                        image.Add("Alt", StringUtil.EscapeQuote(text));
                        image.Add("_languageInserted", "true");

                        if (Mode == "webedit")
                        {
                            SheerResponse.SetDialogValue(StringUtil.EscapeJavascriptString(image.ToString()));
                            base.OnOK(sender, args);
                        }
                        else
                        {
                            SheerResponse.Eval("scClose(" + StringUtil.EscapeJavascriptString(image.ToString()) + ")");
                        }
                    }
                }
            }
        }
Example #33
0
 public Mob()
 {
     Tag.Add("Mob", "");
 }
 protected override void Awake()
 {
     base.Awake();
     Tag.Add(this);
 }
Example #35
0
 private void AddDefToTag(ThingDef def)
 {
     curTag.Add(def);
 }
        /// <summary>Renders the item.</summary>
        /// <param name="output">The output.</param>
        /// <param name="item">The item to render.</param>
        /// <contract>
        ///   <requires name="output" condition="not null" />
        ///   <requires name="item" condition="not null" />
        /// </contract>
        protected override void RenderItem(HtmlTextWriter output, Item item)
        {
            Assert.ArgumentNotNull((object)output, "output");
            Assert.ArgumentNotNull((object)item, "item");
            string str1 = string.Empty;
            string str2 = string.Empty;
            string str3 = string.Empty;

            if (UploadedItems.Include(item))
            {
                UploadedItems.RenewExpiration();
            }
            string str4;
            int    num1;

            if (item.TemplateID == TemplateIDs.MediaFolder || item.TemplateID == TemplateIDs.Folder || item.TemplateID == TemplateIDs.Node)
            {
                str4 = Themes.MapTheme("Applications/48x48/folder.png");
                num1 = 48;
                int num2 = UserOptions.View.ShowHiddenItems ? item.Children.Count : this.GetVisibleChildCount(item);
                str1 = num2.ToString() + " " + Translate.Text(num2 == 1 ? "item" : "items");
            }
            else
            {
                MediaItem       mediaItem        = (MediaItem)item;
                MediaUrlOptions thumbnailOptions = MediaUrlOptions.GetThumbnailOptions((MediaItem)item);
                num1 = MediaManager.HasMediaContent((Item)mediaItem) ? 72 : 48;
                thumbnailOptions.Width          = num1;
                thumbnailOptions.Height         = num1;
                thumbnailOptions.UseDefaultIcon = true;
                str4 = MediaManager.GetMediaUrl(mediaItem, thumbnailOptions);
                MediaMetaDataFormatter metaDataFormatter = MediaManager.Config.GetMetaDataFormatter(mediaItem.Extension);
                if (metaDataFormatter != null)
                {
                    MediaMetaDataCollection metaData1 = mediaItem.GetMetaData();
                    MediaMetaDataCollection metaData2 = new MediaMetaDataCollection();
                    foreach (string key in metaData1.Keys)
                    {
                        metaData2[key] = HttpUtility.HtmlEncode(metaData1[key]);
                    }
                    if (str1 != null)
                    {
                        str1 = metaDataFormatter.Format(metaData2, MediaMetaDataFormatterOutput.HtmlNoKeys);
                    }
                }
                str2 = new MediaValidatorFormatter().Format(mediaItem.ValidateMedia(), MediaValidatorFormatterOutput.HtmlPopup);
                ItemLink[] referrers = Globals.LinkDatabase.GetReferrers(item);
                if (referrers.Length > 0)
                {
                    str3 = referrers.Length.ToString() + " " + Translate.Text(referrers.Length == 1 ? "usage" : "usages");
                }
            }
            Tag tag = new Tag("a");

            tag.Add("id", "I" + (object)item.ID.ToShortID());
            tag.Add("href", "#");
            tag.Add("onclick", "javascript:scForm.getParentForm().invoke('item:load(id=" + (object)item.ID + ")');return false");
            if (UploadedItems.Include(item))
            {
                tag.Add("class", "highlight");
            }
            tag.Start(output);
            ImageBuilder imageBuilder1 = new ImageBuilder();

            imageBuilder1.Src    = str4;
            imageBuilder1.Class  = "scMediaIcon";
            imageBuilder1.Width  = num1;
            imageBuilder1.Height = num1;
            ImageBuilder imageBuilder2 = imageBuilder1;
            string       str5          = string.Empty;

            if (num1 < 72)
            {
                str5 = string.Format("padding:{0}px {0}px {0}px {0}px", (object)((72 - num1) / 2));
            }
            if (!string.IsNullOrEmpty(str5))
            {
                str5 = " style=\"" + str5 + "\"";
            }
            output.Write("<div class=\"scMediaBorder\"" + str5 + ">");
            output.Write(imageBuilder2.ToString());
            output.Write("</div>");
            output.Write("<div class=\"scMediaTitle\">" + item.DisplayName + "</div>");
            if (!string.IsNullOrEmpty(str1))
            {
                output.Write("<div class=\"scMediaDetails\">" + str1 + "</div>");
            }
            if (!string.IsNullOrEmpty(str2))
            {
                output.Write("<div class=\"scMediaValidation\">" + str2 + "</div>");
            }
            if (!string.IsNullOrEmpty(str3))
            {
                output.Write("<div class=\"scMediaUsages\">" + str3 + "</div>");
            }
            tag.End(output);
        }