示例#1
0
        public void AddActions(Element element)
        {
            if (element.Actions.Any(a => a.TagValue == "edit"))
            {
                return;
            }

            var resourceWriter = ResourceFacade.GetResourceWriter(UserSettings.ActiveLocaleCultureInfo);

            if (resourceWriter == null)
            {
                return;
            }

            var editFormActionToken = new WorkflowActionToken(typeof(EditFormSettingsWorkflow));

            element.AddAction(new ElementAction(new ActionHandle(editFormActionToken))
            {
                TagValue = "edit",

                VisualData = new ActionVisualizedData
                {
                    Label          = "Edit",
                    ToolTip        = "Edit",
                    Icon           = new ResourceHandle("Composite.Icons", "generated-type-data-edit"),
                    ActionLocation = ActionLocation
                }
            });
        }
示例#2
0
        public override void OnFinish(object sender, EventArgs e)
        {
            var formToken      = GetBinding <DataEntityToken>("BoundToken");
            var modelReference = (IModelReference)formToken.Data;

            var definition = DynamicFormsFacade.GetFormByName(modelReference.Name);

            var submitButtonLabel = GetBinding <string>("SubmitButtonLabel");

            SwitchAttribute <RequiresCaptchaAttribute>("RequiresCaptcha", definition.Model.Attributes);
            SwitchAttribute <ForceHttpsConnectionAttribute>("ForceHttpsConnection", definition.Model.Attributes);

            var submitButtonLabelAttr = definition.Model.Attributes.OfType <SubmitButtonLabelAttribute>().SingleOrDefault();

            if (submitButtonLabel != null)
            {
                definition.Model.Attributes.Remove(submitButtonLabelAttr);
            }

            if (!String.IsNullOrEmpty(submitButtonLabel))
            {
                submitButtonLabelAttr = new SubmitButtonLabelAttribute(submitButtonLabel);
                definition.Model.Attributes.Add(submitButtonLabelAttr);

                using (var writer = ResourceFacade.GetResourceWriter())
                {
                    writer.AddResource(GetKey("SubmitButtonLabel"), submitButtonLabel);
                }
            }

            Save(definition);
        }
示例#3
0
        public override void OnFinish(object sender, EventArgs e)
        {
            var token      = (FieldValidatorsEntityToken)EntityToken;
            var definition = DynamicFormsFacade.GetFormByName(token.FormName);
            var field      = definition.Model.Fields.Get(token.FieldName);

            var validatorType = Type.GetType(GetBinding <string>("ValidatorType"));
            var message       = GetBinding <string>("Message");
            var attribute     = (FormValidationAttribute)Activator.CreateInstance(validatorType, message);

            field.Attributes.Add(attribute);

            DynamicFormsFacade.SaveForm(definition);

            using (var writer = ResourceFacade.GetResourceWriter())
            {
                var setting = token.FieldName + ".Validation." + attribute.GetType().Name;
                var key     = Localization.GenerateKey(token.FormName, setting);

                writer.AddResource(key, message);
            }

            var editToken     = new FieldValidatorsEntityToken(token.FormName, token.FieldName, validatorType);
            var workflowToken = new WorkflowActionToken(typeof(EditFieldValidatorWorkflow));

            CreateSpecificTreeRefresher().PostRefreshMessages(EntityToken);
            ExecuteAction(editToken, workflowToken);
        }
示例#4
0
    public void PlayBgm(string bgmName)
    {
        var bgm            = ResourceFacade.LoadAudioClip(bgmName);
        var bgmAudioSource = _bgmPlayer.GetComponent <AudioSource>();

        bgmAudioSource.clip = bgm;
        bgmAudioSource.loop = true;
        bgmAudioSource.Play();
    }
示例#5
0
    public async void PlaySfx(string sfxName)
    {
        var sfx            = ResourceFacade.LoadAudioClip(sfxName);
        var sfxAudioSource = _sfxPlayer.AddComponent <AudioSource>();

        sfxAudioSource.clip = sfx;
        sfxAudioSource.Play();

        await PlaySfxDelay(sfxAudioSource, sfxAudioSource.clip.length);
    }
示例#6
0
        public ActionResult VisitVillage(int id)
        {
            var resources = new List <ResourceDTO>(ResourceFacade.ListResourcesByVillage(id));
            var products  = new List <ProductDTO>(ProductFacade.ListProductsByVillage(id));

            var model = new VisitVillageViewModel {
                VillageId = id, Resources = resources, Products = products
            };

            return(View("VisitVillageView", model));
        }
示例#7
0
        public ActionResult AddResources()
        {
            var player = PlayerFacade.GetPlayerAccordingToUserName(User.Identity.Name);

            var villages = VillageFacade.ListVillagesByPlayer(player.ID);

            foreach (var item in villages)
            {
                ResourceFacade.AddResources(new TimeSpan(0, 0, 1), item.ID);
            }

            return(Content("Resources added"));
        }
示例#8
0
        public override void OnFinish(object sender, EventArgs e)
        {
            var introText       = GetBinding <string>("IntroText");
            var successResponse = GetBinding <string>("SuccessResponse");

            using (var writer = ResourceFacade.GetResourceWriter())
            {
                writer.AddResource(Localization.GenerateKey(ModelReference.Name, "IntroText"), introText);
                writer.AddResource(Localization.GenerateKey(ModelReference.Name, "SuccessResponse"), successResponse);
            }

            var treeRefresher = CreateParentTreeRefresher();

            treeRefresher.PostRefreshMessages(EntityToken);

            SetSaveStatus(true);
        }
        public override void OnFinish(object sender, EventArgs e)
        {
            var label = GetBinding <string>("Label");

            using (var writer = ResourceFacade.GetResourceWriter())
            {
                writer.AddResource(GetKey("Label"), label);

                var model = ModelsFacade.GetModel <FormModel>(FieldEntityToken.FormName);
                var field = model.Fields.Get(FieldEntityToken.FieldName);

                if (field.Attributes.OfType <PlaceholderTextAttribute>().Any())
                {
                    var placeholderText = GetBinding <string>("PlaceholderText");

                    writer.AddResource(GetKey("PlaceholderText"), placeholderText);
                }

                if (field.Attributes.OfType <FieldHelpAttribute>().Any())
                {
                    var help = GetBinding <string>("Help");

                    writer.AddResource(GetKey("Help"), help);
                }

                var validationAttributes = field.Attributes.OfType <FormValidationAttribute>();
                foreach (var attr in validationAttributes)
                {
                    var name = attr.GetType().Name;

                    var key     = "Validation." + name;
                    var binding = "Validation-" + name;

                    var value = GetBinding <string>(binding);

                    writer.AddResource(GetKey(key), value);
                }
            }

            var treeRefresher = CreateParentTreeRefresher();

            treeRefresher.PostRefreshMessages(EntityToken);

            SetSaveStatus(true);
        }
        protected void Save(IDynamicDefinition definition)
        {
            SaveExtraSettings(definition);

            var token          = GetBinding <DataEntityToken>("BoundToken");
            var modelReference = (IModelReference)token.Data;

            var name = GetBinding <string>("Name");

            var introText       = GetBinding <string>("IntroText");
            var successResponse = GetBinding <string>("SuccessResponse");

            using (var writer = ResourceFacade.GetResourceWriter())
            {
                writer.AddResource(GetKey("IntroText"), introText);
                writer.AddResource(GetKey("SuccessResponse"), successResponse);
            }

            var isNewName = name != modelReference.Name;

            if (isNewName)
            {
                LocalizationsFacade.RenameNamespace(Localization.KeyPrefix + "." + modelReference.Name, Localization.KeyPrefix + "." + name, Localization.ResourceSet);

                DefinitionsFacade.Copy(definition, name);
                DefinitionsFacade.Delete(definition);

                modelReference = ModelReferenceFacade.GetModelReference(name);
                token          = modelReference.GetDataEntityToken();

                UpdateBinding("BoundToken", token);
                SetSaveStatus(true, token);
            }
            else
            {
                DefinitionsFacade.Save(definition);

                SetSaveStatus(true);
            }

            CreateParentTreeRefresher().PostRefreshMessages(EntityToken);
        }
示例#11
0
        public override void OnFinish(object sender, EventArgs e)
        {
            var token = (FieldValidatorsEntityToken)EntityToken;

            var message = GetBinding <string>("Message");

            var definition = DynamicFormsFacade.GetFormByName(token.FormName);
            var field      = definition.Model.Fields.Get(token.FieldName);
            var validator  = field.ValidationAttributes.Single(v => v.GetType().AssemblyQualifiedName == token.Type);

            using (var writer = ResourceFacade.GetResourceWriter())
            {
                var setting = token.FieldName + ".Validation." + validator.GetType().Name;
                var key     = Localization.GenerateKey(token.FormName, setting);

                writer.AddResource(key, message);
            }

            CreateSpecificTreeRefresher().PostRefreshMessages(EntityToken);
            SetSaveStatus(true);
        }
        public void AddActions(Element element)
        {
            if (element.Actions.Any(a => a.TagValue == "edit"))
            {
                return;
            }

            var resourceWriter = ResourceFacade.GetResourceWriter(UserSettings.ActiveLocaleCultureInfo);

            if (resourceWriter == null)
            {
                return;
            }

            var token = (FormFieldEntityToken)element.ElementHandle.EntityToken;
            var model = ModelsFacade.GetModel(token.FormName);
            var field = model.Fields.Get(token.FieldName);

            if (!field.Attributes.OfType <FieldLabelAttribute>().Any())
            {
                return;
            }

            var editFieldActionToken = new WorkflowActionToken(typeof(EditFormFieldSettingsWorkflow));

            element.AddAction(new ElementAction(new ActionHandle(editFieldActionToken))
            {
                TagValue = "edit",

                VisualData = new ActionVisualizedData
                {
                    Label          = "Edit",
                    ToolTip        = "Edit",
                    Icon           = new ResourceHandle("Composite.Icons", "generated-type-data-edit"),
                    ActionLocation = ActionLocation
                }
            });
        }
        public override void OnFinish(object sender, EventArgs e)
        {
            var fieldToken = GetBinding <FormFieldEntityToken>("BoundToken");

            var fieldName        = GetBinding <string>("FieldName");
            var label            = GetBinding <string>("Label");
            var placeholderText  = GetBinding <string>("PlaceholderText");
            var help             = GetBinding <string>("Help");
            var defaultValue     = GetBinding <string>("DefaultValue");
            var inputElementType = Type.GetType(GetBinding <string>("InputElementType"));
            var isReadOnly       = GetBinding <bool>("IsReadOnly");

            var definition = DynamicFormsFacade.GetFormByName(fieldToken.FormName);
            var field      = definition.Model.Fields.Get(fieldToken.FieldName);

            var isNewName = field.Name != fieldName;

            if (isNewName)
            {
                var oldNs = Localization.GenerateKey(fieldToken.FormName, field.Name);
                var newNs = Localization.GenerateKey(fieldToken.FormName, fieldName);

                LocalizationsFacade.RenameNamespace(oldNs, newNs, Localization.ResourceSet);

                if (RenderingLayoutFacade.HasCustomRenderingLayout(fieldToken.FormName))
                {
                    var layout = RenderingLayoutFacade.GetRenderingLayout(fieldToken.FormName);

                    var fieldElement = layout.Body.Descendants().SingleOrDefault(el => el.Name == Namespaces.Xhtml + "p" && el.Value.Trim() == "%" + field.Name + "%");
                    if (fieldElement != null)
                    {
                        fieldElement.Value = $"%{fieldName}%";
                    }

                    RenderingLayoutFacade.SaveRenderingLayout(fieldToken.FormName, layout);
                }
            }

            field.Name       = fieldName;
            field.IsReadOnly = isReadOnly;

            using (var writer = ResourceFacade.GetResourceWriter())
            {
                writer.AddResource(GetKey("Label"), (string)null);
                writer.AddResource(GetKey("PlaceholderText"), (string)null);
                writer.AddResource(GetKey("Help"), (string)null);

                var labelAttr = field.Attributes.OfType <FieldLabelAttribute>().SingleOrDefault();
                if (labelAttr != null)
                {
                    field.Attributes.Remove(labelAttr);
                }

                if (!String.IsNullOrEmpty(label))
                {
                    labelAttr = new FieldLabelAttribute(label);
                    field.Attributes.Add(labelAttr);

                    writer.AddResource(GetKey("Label"), label);
                }

                var placeholderAttr = field.Attributes.OfType <PlaceholderTextAttribute>().SingleOrDefault();
                if (placeholderAttr != null)
                {
                    field.Attributes.Remove(placeholderAttr);
                }

                if (!String.IsNullOrEmpty(placeholderText))
                {
                    placeholderAttr = new PlaceholderTextAttribute(placeholderText);
                    field.Attributes.Add(placeholderAttr);

                    writer.AddResource(GetKey("PlaceholderText"), placeholderText);
                }

                var helpAttribute = field.Attributes.OfType <FieldHelpAttribute>().FirstOrDefault();
                if (helpAttribute != null)
                {
                    field.Attributes.Remove(helpAttribute);
                }

                if (!String.IsNullOrEmpty(help))
                {
                    helpAttribute = new FieldHelpAttribute(help);
                    field.Attributes.Add(helpAttribute);

                    writer.AddResource(GetKey("Help"), help);
                }
            }

            definition.DefaultValues.Remove(field.Name);
            if (!String.IsNullOrEmpty(defaultValue))
            {
                definition.DefaultValues.Add(field.Name, XElement.Parse(defaultValue));
            }

            var inputTypeAttribute = field.Attributes.OfType <InputElementTypeAttribute>().FirstOrDefault();

            if (inputTypeAttribute != null)
            {
                field.Attributes.Remove(inputTypeAttribute);
            }

            inputTypeAttribute = (InputElementTypeAttribute)Activator.CreateInstance(inputElementType);
            field.Attributes.Add(inputTypeAttribute);

            field.EnsureValueType();

            SaveExtraSettings(field);

            DynamicFormsFacade.SaveForm(definition);

            if (isNewName)
            {
                fieldToken = new FormFieldEntityToken(definition.Model.Name, fieldName);

                UpdateBinding("BoundToken", fieldToken);
                SetSaveStatus(true, fieldToken);
            }
            else
            {
                SetSaveStatus(true);
            }

            CreateParentTreeRefresher().PostRefreshMessages(EntityToken);
        }
示例#14
0
    public PlayerController SpawnPlayer(EnumPlayer enumPlayer, Transform parent)
    {
        var player = Instantiate(ResourceFacade.LoadPrefab("Player" + ((int)enumPlayer + 1)), parent, false);

        return(player.GetComponent <PlayerController>());
    }