示例#1
0
        private void GetTemplateData(int templateId, bool loadControl = true)
        {
            var template = new CommunicationTemplateService(new RockContext()).Get(templateId);

            if (template != null)
            {
                var mediumData = template.MediumData;
                if (!mediumData.ContainsKey("Subject"))
                {
                    mediumData.Add("Subject", template.Subject);
                }

                foreach (var dataItem in mediumData)
                {
                    if (!string.IsNullOrWhiteSpace(dataItem.Value))
                    {
                        if (MediumData.ContainsKey(dataItem.Key))
                        {
                            MediumData[dataItem.Key] = dataItem.Value;
                        }
                        else
                        {
                            MediumData.Add(dataItem.Key, dataItem.Value);
                        }
                    }
                }

                if (loadControl)
                {
                    LoadMediumControl(true);
                }
            }
        }
示例#2
0
    void SetVideo(MediumData medium, VideoClip video)
    {
        VideoPlayer vp = medium.slate.GetComponent <VideoPlayer>();

        vp.enabled = true;
        vp.clip    = video;
    }
示例#3
0
        /// <summary>
        /// Gets the medium data.
        /// </summary>
        private void GetMediumData()
        {
            if (phContent.Controls.Count == 1)
            {
                var mediumControl = phContent.Controls[0] as MediumControl;
                if (mediumControl != null)
                {
                    // If using simple mode, the control should be re-initialized from sender since sender fields
                    // are not presented for editing and user shouldn't be able to change them
                    if (!_fullMode && CurrentPerson != null)
                    {
                        mediumControl.InitializeFromSender(CurrentPerson);
                    }

                    foreach (var dataItem in mediumControl.MediumData)
                    {
                        if (MediumData.ContainsKey(dataItem.Key))
                        {
                            MediumData[dataItem.Key] = dataItem.Value;
                        }
                        else
                        {
                            MediumData.Add(dataItem.Key, dataItem.Value);
                        }
                    }
                }
            }
        }
示例#4
0
 void SetText(MediumData medium, int index)
 {
     medium.nameVertiefung.text  = nameVertiefung;
     medium.projektNr.text       = projektNr[index] > 0 ? projektNr[index].ToString("00") : "";
     medium.projektTitel.text    = titel[index] ? titel[index].text : "";
     medium.beschreibung.text    = beschreibung[index] ? beschreibung[index].text : "";
     medium.aufgabenbereich.text = aufgabenbereich[index] ? aufgabenbereich[index].text : "";
 }
示例#5
0
    void SetSound(MediumData medium, AudioClip audio, Texture2D image)
    {
        AudioSource audiosource = medium.slate.GetComponent <AudioSource>();

        audiosource.enabled = true;
        audiosource.clip    = audio;

        SetImage(medium, image);
    }
 public void SetMediumDataValue(string key, string value)
 {
     if (MediumData.ContainsKey(key))
     {
         MediumData[key] = value;
     }
     else
     {
         MediumData.Add(key, value);
     }
 }
 public string GetMediumDataValue(string key)
 {
     if (MediumData.ContainsKey(key))
     {
         return(MediumData[key]);
     }
     else
     {
         return(string.Empty);
     }
 }
 internal ItemDefaultSettings(MediumData AddressSpace, ulong Address)
 {
     addressSpace = AddressSpace;
     address      = Address;
 }
示例#9
0
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="communication">The communication.</param>
        private void ShowDetail(Rock.Model.Communication communication)
        {
            Recipients.Clear();

            if (communication != null)
            {
                this.AdditionalMergeFields = communication.AdditionalMergeFields.ToList();
                lTitle.Text = (communication.Subject ?? "New Communication").FormatAsHtmlTitle();

                foreach (var recipient in new CommunicationRecipientService(new RockContext())
                         .Queryable("PersonAlias.Person.PhoneNumbers")
                         .Where(r => r.CommunicationId == communication.Id))
                {
                    Recipients.Add(new Recipient(recipient.PersonAlias.Person, recipient.Status, recipient.StatusNote, recipient.OpenedClient, recipient.OpenedDateTime));
                }
            }
            else
            {
                communication = new Rock.Model.Communication()
                {
                    Status = CommunicationStatus.Transient
                };
                lTitle.Text = "New Communication".FormatAsHtmlTitle();

                int?personId = PageParameter("Person").AsIntegerOrNull();
                if (personId.HasValue)
                {
                    communication.IsBulkCommunication = false;
                    var person = new PersonService(new RockContext()).Get(personId.Value);
                    if (person != null)
                    {
                        Recipients.Add(new Recipient(person, CommunicationRecipientStatus.Pending, string.Empty, string.Empty, null));
                    }
                }
            }

            CommunicationId = communication.Id;

            MediumEntityTypeId = communication.MediumEntityTypeId;
            BindMediums();

            MediumData = communication.MediumData;
            MediumData.Add("Subject", communication.Subject);

            if (communication.Status == CommunicationStatus.Transient && !string.IsNullOrWhiteSpace(GetAttributeValue("DefaultTemplate")))
            {
                var template = new CommunicationTemplateService(new RockContext()).Get(GetAttributeValue("DefaultTemplate").AsGuid());

                // If a template guid was passed in, it overrides any default template.
                string templateGuid = PageParameter("templateGuid");
                if (!string.IsNullOrEmpty(templateGuid))
                {
                    var guid = new Guid(templateGuid);
                    template = new CommunicationTemplateService(new RockContext()).Queryable().Where(t => t.Guid == guid).FirstOrDefault();
                }

                if (template != null && template.MediumEntityTypeId == MediumEntityTypeId)
                {
                    foreach (ListItem item in ddlTemplate.Items)
                    {
                        if (item.Value == template.Id.ToString())
                        {
                            item.Selected = true;
                            GetTemplateData(template.Id, false);
                        }
                        else
                        {
                            item.Selected = false;
                        }
                    }
                }
            }

            cbBulk.Checked = communication.IsBulkCommunication;

            MediumControl control = LoadMediumControl(true);

            if (control != null && CurrentPerson != null)
            {
                control.InitializeFromSender(CurrentPerson);
            }

            dtpFutureSend.SelectedDateTime = communication.FutureSendDateTime;

            ShowStatus(communication);
            ShowActions(communication);
        }
示例#10
0
    void Start()
    {
        personData = GetComponent <PersonData>();

        personData.name.text           = name.text;
        personData.nameVertiefung.text = nameVertiefung = name.text + vertiefung.text;
        personData.interessen.text     = interessen.text;


        mediumContainer = personData.mediums;

        int nrOfAvailaibleSlots = mediumContainer.childCount;
        int nrOfUsedSlots       = 0;

        for (; nrOfUsedSlots < mediaAssets.Length && mediaAssets[nrOfUsedSlots]; nrOfUsedSlots++)
        {
            ;
        }

        mediumData = new MediumData[nrOfUsedSlots];
        for (int i = 0; i < nrOfUsedSlots; i++)
        {
            mediumData[i] = mediumContainer.GetChild(i).GetComponent <MediumData>();
        }

        GetComponent <Person>().hindmostMediumPosition = mediumContainer.GetChild(nrOfUsedSlots - 1).localPosition;

        // lösche ungenutzte Medium-Slots
        for (int i = nrOfAvailaibleSlots - 1; i >= nrOfUsedSlots; i--)
        {
            Destroy(mediumContainer.GetChild(i).gameObject);
        }


        // füge Medien-Assets ein
        for (int i = 0; i < nrOfUsedSlots; i++)
        {
            var         mediaAsset = mediaAssets[i];
            System.Type type       = mediaAsset.GetType();
            MediumData  medium     = mediumData[i];

            if (type == typeof(Texture2D))
            {
                SetImage(medium, (Texture2D)mediaAsset);
                Destroy(medium.slate.GetComponent <AudioSource>());
                Destroy(medium.slate.GetComponent <VideoPlayer>());
            }
            else if (type == typeof(VideoClip))
            {
                SetVideo(medium, (VideoClip)mediaAsset);
                Destroy(medium.slate.GetComponent <AudioSource>());
            }
            else if (type == typeof(AudioClip))
            {
                SetSound(medium, (AudioClip)mediaAsset, soundBilder[i]);
                Destroy(medium.slate.GetComponent <VideoPlayer>());
            }

            SetText(medium, i);
        }


        // lösche Setup-Komponenten

        /* Assets können wohl nur über Editor-Scripts gelöscht werden
         * Destroy(name);
         * Destroy(vertiefung);
         * Destroy(interessen);
         * foreach (TextAsset tc in titel) Destroy(tc);
         * foreach (TextAsset tc in beschreibung) Destroy(tc);
         * foreach (TextAsset tc in aufgabenbereich) Destroy(tc);
         */

        Destroy(personData);
        foreach (MediumData md in mediumData)
        {
            Destroy(md);
        }

        Destroy(this);
    }
示例#11
0
    void SetImage(MediumData medium, Texture2D texture)
    {
        Material mat = medium.slate.GetComponent <Renderer>().material;

        mat.mainTexture = texture;
    }