protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            try
            {
                var userName  = GetFormValue(formSubmitContext, "username");
                var email     = GetFormValue(formSubmitContext, "email");
                var password  = GetFormValue(formSubmitContext, "password");
                var firstName = GetFormValue(formSubmitContext, "firstname");
                var lastName  = GetFormValue(formSubmitContext, "lastname");

                var fullyQualifiedUserName = $"extranet\\{userName}";
                if (!User.Exists(fullyQualifiedUserName))
                {
                    Membership.CreateUser(fullyQualifiedUserName, password, email);
                    // Edit the profile information
                    var user        = User.FromName(fullyQualifiedUserName, true);
                    var userProfile = user.Profile;
                    userProfile.FullName = $"{firstName} {lastName}";

                    userProfile.Save();
                }
                else
                {
                    Sitecore.Diagnostics.Log.Error("User exist", this);
                    return(false);
                }
            }
            catch (MembershipCreateUserException ex)
            {
                Sitecore.Diagnostics.Log.Error("Message", ex, this);
            }

            return(true);
        }
Ejemplo n.º 2
0
        protected override bool Execute(T data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            if (data.FieldEmailAddressId == Guid.Empty)
            {
                Logger.LogError("Field email address couldn't be empty!");
                return(false);
            }

            try
            {
                if (!formSubmitContext.HasErrors)
                {
                    ProcessContact(data, formSubmitContext.Fields);
                }
                else
                {
                    Logger.LogWarn($"Form {formSubmitContext.FormId} submitted with errors: {string.Join(", ", formSubmitContext.Errors.Select(t => t.ErrorMessage))}.");
                }

                return(true);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message, ex);
                return(false);
            }
        }
        /// <summary>
        /// Executes the action with the specified <paramref name="data" />.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <param name="formSubmitContext">The form submit context.</param>
        /// <returns>
        ///   <c>true</c> if the action is executed correctly; otherwise <c>false</c>
        /// </returns>
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            if (!formSubmitContext.HasErrors)
            {
                var repository = ServiceLocator.ServiceProvider.GetService(typeof(ITeamsRepository)) as ITeamsRepository;
                var settings   = repository.GetSubmitionSettings();
                if (settings != null && settings.EmailNotification)
                {
                    try
                    {
                        Sitecore.MainUtil.SendMail(
                            new System.Net.Mail.MailMessage(
                                settings.EmailFrom,
                                settings.EmailTo,
                                settings.EmailSubject,
                                settings.EmailMessage
                                ));
                    }
                    catch (Exception ex)
                    {
                        Log.Error($"Form {formSubmitContext.FormId} email notification failed.", ex, this);
                    }
                }
            }
            else
            {
                Log.Error($"Form {formSubmitContext.FormId} submitted with errors: {string.Join(", ", formSubmitContext.Errors.Select(t => t.ErrorMessage))}.", this);
                return(false);
            }

            return(true);
        }
        protected override bool Execute(RegisterUserData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(data, nameof(data));
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            var fields = GetFormFields(data, formSubmitContext);

            Assert.IsNotNull(fields, nameof(fields));

            if (EmailOrPasswordFieldsIsNull(fields))
            {
                return(AbortForm(formSubmitContext));
            }

            var values = fields.GetFieldValues();

            if (EmailOrPasswordsIsNull(values))
            {
                return(AbortForm(formSubmitContext));
            }

            // Fall back: If profile id is not provided - we set default:
            data.ProfileId = "{AE4C4969-5B7E-4B4E-9042-B2D8701CE214}";

            var result = Register(values.Email, values.Password, values.FullName, data.ProfileId);

            if (!result)
            {
                return(AbortForm(formSubmitContext));
            }
            return(true);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Gelper method for getting the value from form parameter
        /// </summary>
        /// <param name="fieldName"></param>
        /// <param name="formSubmitContext"></param>
        /// <returns></returns>
        //private string GetValue(string fieldName, FormSubmitContext formSubmitContext)
        //{
        //    string val = string.Empty;
        //    //var postedFormData = formSubmitContext.PostedFormData;
        //    var field = formSubmitContext.Fields.FirstOrDefault(f => f.Name.Equals(fieldName));
        //    if (field != null)
        //    {
        //        var property = field.GetType().GetProperty("Value");
        //        if (property != null)
        //        {
        //            var postedVal = property.GetValue(field);
        //            val = postedVal != null ? postedVal.ToString() : string.Empty;
        //        }
        //    }

        //    return val;
        //}

        protected string GetValue(string fieldName, FormSubmitContext formSubmitContext)
        {
            IViewModel postedField = formSubmitContext.Fields.FirstOrDefault(f => f.Name.Equals(fieldName));

            Assert.ArgumentNotNull((object)postedField, "postedField");
            IValueField  valueField = postedField as IValueField;
            PropertyInfo property   = postedField.GetType().GetProperty("Value");
            object       obj;

            if (property == null)
            {
                obj = (object)null;
            }
            else
            {
                IViewModel viewModel = postedField;
                obj = property.GetValue((object)viewModel);
            }
            object postedValue = obj;

            if (postedValue == null)
            {
                return(string.Empty);
            }
            string parsedValue = ParseFieldValue(postedValue);

            return(parsedValue);
        }
Ejemplo n.º 6
0
        protected override bool Execute(RegisterUserData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(data, nameof(data));
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            var fields = GetFormFields(data, formSubmitContext);

            Assert.IsNotNull(fields, nameof(fields));

            if (EmailOrPasswordFieldsIsNull(fields))
            {
                return(AbortForm(formSubmitContext));
            }

            var values = fields.GetFieldValues();

            if (EmailOrPasswordsIsNull(values))
            {
                return(AbortForm(formSubmitContext));
            }

            var result = Register(values.Email, values.Password, values.FullName, data.ProfileId);

            if (!result)
            {
                return(AbortForm(formSubmitContext));
            }

            return(true);
        }
Ejemplo n.º 7
0
        protected override bool Execute(LoginUserData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(data, nameof(data));
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            var fields = GetFormFields(data, formSubmitContext);

            Assert.IsNotNull(fields, nameof(fields));

            if (UsernameOrPasswordFieldIsNull(fields))
            {
                return(AbortForm(formSubmitContext));
            }

            var values = fields.GetFieldValues();

            if (UsernameOrPasswordValueIsNull(values))
            {
                return(AbortForm(formSubmitContext));
            }

            var user = Login(values.Username, values.Password);

            if (user == null)
            {
                return(AbortForm(formSubmitContext));
            }
            var id = Context.User.GetUserGuid();

            formSubmitContext.RedirectOnSuccess = true;
            formSubmitContext.RedirectUrl       = "/Home";

            return(true);
        }
Ejemplo n.º 8
0
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            var shortname   = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "ShortName")).Value;
            var title       = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Title")).Value;
            var description = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Description")).Value;

            using (new SecurityDisabler())
            {
                var item             = _rootItem.Add(shortname, _templateId);
                var membersListId    = _xconnectService.CreateList($"{shortname} Members");
                var organizersListId = _xconnectService.CreateList($"{shortname} Organizers");
                item.Editing.BeginEdit();
                item["Title"]       = title;
                item["Description"] = description;
                item["Members"]     = new ID(membersListId).ToString();
                item["Organizers"]  = new ID(organizersListId).ToString();
                item.Editing.AcceptChanges();

                var email = Sitecore.Analytics.Tracker.Current.Contact.Identifiers.FirstOrDefault(i => i.Source == Constants.XConnectSourceName)?.Identifier;
                _xconnectService.SubscribeContact(email, new List <Guid> {
                    membersListId, organizersListId
                });
            }
            return(true);
        }
Ejemplo n.º 9
0
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            var itemId      = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "ItemId")).Value;
            var host        = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Host")).Value;
            var title       = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Title")).Value;
            var description = ((MultipleLineTextViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Description")).Value;
            var date        = ((DateViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Date")).Value;
            var address     = ((MultipleLineTextViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "Address")).Value;

            using (new SecurityDisabler())
            {
                var rootItem        = _database.GetItem(itemId);
                var item            = rootItem.Add(title, _templateId);
                var attendeesListId = _xconnectService.CreateList($"{item.Name} - {title} Attendees");
                item.Editing.BeginEdit();
                item["Host"]        = host;
                item["Title"]       = title;
                item["Description"] = description;
                item["Date"]        = Sitecore.DateUtil.ToIsoDate(date.Value);
                item["Address"]     = address;
                item["Attendees"]   = new ID(attendeesListId).ToString();
                item.Editing.AcceptChanges();

                var email = Sitecore.Analytics.Tracker.Current.Contact.Identifiers.FirstOrDefault(i => i.Source == Constants.XConnectSourceName)?.Identifier;
                _xconnectService.SubscribeContact(email, new List <Guid> {
                    attendeesListId
                });
            }
            return(true);
        }
Ejemplo n.º 10
0
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            Logout();
            return(true);
        }
        protected override bool Execute(SubscribeToListData data, FormSubmitContext formSubmitContext)
        {
            if (data.ListId == Guid.Empty)
            {
                logger.LogWarn("No list was configured.");
                return(true); //we will not crash on this
            }

            var contactId = xDbService.GetCurrentContactId();

            if (contactId == null)
            {
                logger.LogDebug("The current contact is not yet identified and present in xDB. Please use the identify contact action first.");
                return(false);
            }

            if (data.CheckedRequirementFieldId.HasValue)
            {
                var checkedRequirementField = GetFieldById(data.CheckedRequirementFieldId.Value, formSubmitContext.Fields);
                if (!IsChecked(checkedRequirementField))
                {
                    return(true);
                }
            }

            var subscriptionService = ServiceLocator.ServiceProvider.GetService <ISubscriptionService>();

            subscriptionService.Subscribe(data.ListId, contactId.Value);

            return(true);
        }
Ejemplo n.º 12
0
        protected override bool Execute(T data, FormSubmitContext formSubmitContext)
        {
            if (data.MessageId == Guid.Empty)
            {
                logger.LogWarn("Empty message id");
                return(false);
            }
            var toContacts = GetToContacts(data, formSubmitContext);

            if (toContacts == null || toContacts.Count == 0)
            {
                return(false);
            }
            try
            {
                var customTokens = BuildCustomTokens(data, formSubmitContext);
                foreach (var to in toContacts)
                {
                    SendMail(to, customTokens, data.MessageId);
                }
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message, ex);
                return(false);
            }
            return(true);
        }
Ejemplo n.º 13
0
        protected override bool Execute(SyncToSalesforceCrmActionData data, FormSubmitContext formSubmitContext)
        {
            var idenvals = Tracker.Current.Session.Contact.Identifiers;
            var test     = idenvals.FirstOrDefault(x => x.Identifier.ToString() == "extranet");

            return(syncToSalesforceCrm.Sync());
        }
Ejemplo n.º 14
0
        protected override bool Execute(ContactFormData data, FormSubmitContext formSubmitContext)
        {
            var fields = GetFormFields(data, formSubmitContext);
            var values = fields.GetFieldValues();

            return(true);
        }
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));


            return(Execute(formSubmitContext.Fields));
        }
        public void ReplaceTokens_FromFormData()
        {
            var submitActionDataMock = Substitute.For <ISubmitActionData>();
            var formData             = new FormSubmitContext("fakeButton");
            var today = DateTime.Today;

            formData.Fields = new List <IViewModel>
            {
                new StringInputViewModel {
                    Name = "Text", Value = "Sample Simple Text"
                },
                new StringInputViewModel {
                    Name = "Text2", Value = ""
                },
                new StringInputViewModel {
                    Name = "Text3", Value = null
                },
                new NumberViewModel {
                    Name = "Number", Value = 1.55
                },
                new ListBoxViewModel {
                    Name = "Single List", Value = new List <string> {
                        "Value 1"
                    }
                },
                new ListBoxViewModel {
                    Name = "Multiple List", Value = new List <string> {
                        "Value 1", "Value 2"
                    }
                },
                new DropDownListViewModel {
                    Name = "Dropdown", Value = new List <string> {
                        "Value 1"
                    }
                },
                new CheckBoxViewModel {
                    Name = "Checkbox", Value = true
                },
                new CheckBoxListViewModel {
                    Name = "Checkbox List", Value = new List <string> {
                        "Check 1", "Check 3"
                    }
                },
                new DateViewModel {
                    Name = "Date", Value = today
                }
            };

            var tokenText =
                "[Text]; [Text2]; [Text3]; [Number]; [Single List]; [Multiple List]; [Dropdown]; [Checkbox]; [Checkbox List]; [Date]; This should not be replaced.";

            var expectedText =
                $"Sample Simple Text; ; ; 1.55; Value 1; Value 1, Value 2; Value 1; True; Check 1, Check 3; {today}; This should not be replaced.";

            var invokeObj    = new InvokeSendEmailAction(submitActionDataMock);
            var replacedText = invokeObj.InvokeReplaceTokens(tokenText, formData.Fields);

            Assert.Equal(expectedText, replacedText);
        }
Ejemplo n.º 17
0
 private ContactFormFields GetFormFields(ContactFormData data, FormSubmitContext formSubmitContext)
 {
     return(new ContactFormFields
     {
         Email = FieldHelper.GetFieldById(data.EmailFieldId, formSubmitContext.Fields),
         Question = FieldHelper.GetFieldById(data.QuestionFieldId, formSubmitContext.Fields)
     });
 }
Ejemplo n.º 18
0
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            var itemId = ((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "ItemId")).Value;

            formSubmitContext.RedirectUrl       = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Database.GetItem(itemId));
            formSubmitContext.RedirectOnSuccess = true;
            return(true);
        }
Ejemplo n.º 19
0
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            // create a new team using the data?

            return(ExecuteMigrate(formSubmitContext.Fields));
        }
Ejemplo n.º 20
0
        protected override bool Execute(ExecuteIoTMethodData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(data, nameof(data));
            Assert.ArgumentNotNull(data.DeviceId, nameof(data.DeviceId));
            Assert.ArgumentNotNull(data.MethodId, nameof(data.MethodId));
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            // Method not selected
            if (data.MethodId == Guid.Empty)
            {
                Log.Error($"[ExecuteIoTMethod] Form Submit Action failed - IoTMethod is not selected", this);
                return(false);
            }

            // Payload
            var payload = string.Empty;

            if (data.PayloadFieldId.HasValue && data.PayloadFieldId.Value != Guid.Empty)
            {
                payload = GetPayloadFromFieldId(formSubmitContext, data.PayloadFieldId.Value);
            }
            else if (!string.IsNullOrEmpty(data.PayloadString))
            {
                payload = GetPayloadFromString(formSubmitContext, data.PayloadString);
            }

            // Call IoTMethod
            try
            {
                var device = _hubRepository.GetDevice(new ID(data.DeviceId));
                if (device == null)
                {
                    Log.Error($"[ExecuteIoTMethod] Form Submit Action failed - IoTDevice '{data.DeviceId}' does not exists", this);
                    return(false);
                }
                var method = _hubRepository.GetMethod(new ID(data.MethodId));
                if (method == null)
                {
                    Log.Error($"[ExecuteIoTMethod] Form Submit Action failed - IoTMethod '{data.MethodId}' does not exists", this);
                    return(false);
                }

                var response = method.Invoke(device, payload);
                Log.Info(
                    $"[ExecuteIoTMethod] Called IoTMethod '{data.MethodId}' at the IoTDevice '{data.DeviceId}' with payload '{payload}' - Return: '{response.RawMessage}'",
                    this);
            }
            catch (Exception e)
            {
                Log.Error(
                    $"[ExecuteIoTMethod] Form Submit Action failed - Error calling IoTMethod '{data.MethodId}' at the IoTDevice '{data.DeviceId}'",
                    e,
                    this);
                return(false);
            }

            return(true);
        }
Ejemplo n.º 21
0
        protected override bool Execute(SendEmailModel data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, "formSubmitContext");

            var fromValue    = ReplaceTokens(data.From, formSubmitContext.Fields);
            var toValue      = ReplaceTokens(data.To, formSubmitContext.Fields);
            var ccValue      = ReplaceTokens(data.Cc, formSubmitContext.Fields);
            var bccValue     = ReplaceTokens(data.Bcc, formSubmitContext.Fields);
            var subjectValue = ReplaceTokens(data.Subject, formSubmitContext.Fields);
            var messageValue = ReplaceTokens(data.Message, formSubmitContext.Fields);

            if (string.IsNullOrWhiteSpace(fromValue))
            {
                Logger?.LogError("Send Email Action Error: No FROM address specified.");
                return(false);
            }

            MailMessage mailMessage;

            try
            {
                mailMessage = new MailMessage
                {
                    From       = new MailAddress(fromValue),
                    Subject    = !string.IsNullOrWhiteSpace(subjectValue) ? subjectValue : "(No subject)",
                    Body       = messageValue,
                    IsBodyHtml = data.IsHtml
                };
            }
            catch (FormatException ex)
            {
                Logger?.LogError($"Send Email Action Error: {fromValue} in the FROM field is not a valid email address.", ex, this);
                return(false);
            }

            if (!AddEmailAddresses(toValue, "To", mailMessage))
            {
                Logger?.LogError("Send Email Action Error: No TO address(es) specified.");
                return(false);
            }

            AddEmailAddresses(ccValue, "CC", mailMessage);
            AddEmailAddresses(bccValue, "Bcc", mailMessage);

            try
            {
                var customSmtp = ParseSmtpSettings(data.CustomSmtpConfig);
                var smtpClient = GetSmtpClient(customSmtp);
                smtpClient.Send(mailMessage);

                return(true);
            }
            catch (Exception ex)
            {
                Logger?.LogError($"Send Email Action Error: {ex.Message}", ex, this);
                return(false);
            }
        }
 public IList <ContactIdentifier> GetContacts(SendEmailExtendedData data, FormSubmitContext formSubmitContext)
 {
     if (string.IsNullOrEmpty(data.FixedEmailAddress))
     {
         logger.LogWarn("To address is empty");
         return(new List <ContactIdentifier>());
     }
     return(data.FixedEmailAddress.Split(';').Where(x => !string.IsNullOrEmpty(x)).Select(GetContactIdentifier).ToList());
 }
Ejemplo n.º 23
0
 private string GetPayloadFromString(FormSubmitContext formSubmitContext, string dataPayloadString)
 {
     foreach (var field in formSubmitContext.Fields)
     {
         var fieldName  = field.Name;
         var fieldValue = field.GetValue();
         dataPayloadString = dataPayloadString.Replace($"[{fieldName}]", fieldValue);
     }
     return(dataPayloadString);
 }
 protected override bool Execute(ShowFormPageData data, FormSubmitContext formSubmitContext)
 {
     if (data.FormPageId == null || data.FormPageId == Guid.Empty)
     {
         logger.LogWarn("Empty FormPageId");
         return(true); //we will not crash on this
     }
     ShowFormPageContext.FormPage = data.FormPageId;
     return(true);
 }
Ejemplo n.º 25
0
        private string GetFieldValue(FormSubmitContext formSubmitContext, string fieldId)
        {
            var field = GetFieldByIdFromSubmitContext(formSubmitContext, fieldId);

            if (field == null)
            {
                return(string.Empty);
            }

            return(formsFieldValueResolver.GetStringFieldValue(field) ?? string.Empty);
        }
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            var userGroupId = Guid.Parse(((StringInputViewModel)formSubmitContext.Fields.FirstOrDefault(f => f.Name == "ListId")).Value);
            var email       = Sitecore.Analytics.Tracker.Current.Contact.Identifiers.FirstOrDefault(i => i.Source == Constants.XConnectSourceName)?.Identifier;

            _xconnectService.Unsubscribe(email, userGroupId);
            //it was simply too fast... without the sleeps, xconnect returned the old values when the page reloaded. But hey, who doesn't need a break?
            System.Threading.Thread.Sleep(2000);

            return(true);
        }
        protected override bool Execute(IdentifyContactActionData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, "formSubmitContext");
            if (data == null || !(data.ReferenceId != Guid.Empty))
            {
                // submit action was not configured properly
                Log.Error(string.Format("IdentifyContactAction failed: Submit action settings were not configured properly for form {0}.", formSubmitContext.FormId), this);
                return(false);
            }

            //todo: use the data.ReferenceId to retrieve mapping of fields to contact facets
            var item = Context.Database.GetItem(new ID(data.ReferenceId));

            if (item == null || !item.IsDerived(Templates.ContactIdentificationActionSettings.ID))
            {
                // submit action was not configured properly
                Log.Error(string.Format("IdentifyContactAction failed: Submit action settings for form {0} point to an invalid item.", formSubmitContext.FormId), this);
                return(false);
            }

            ContactFacetData contactFacetData = new ContactFacetData();

            foreach (var field in formSubmitContext.Fields)
            {
                if (field != null)
                {
                    var mapSettingsItem = item.Children.FirstOrDefault(x =>
                                                                       x[Templates.ContactIdentificationActionMapping.Fields.FacetValue].ToLower() == field.Name.ToLower());
                    if (mapSettingsItem != null)
                    {
                        Item facetItem;

                        using (new SecurityDisabler())
                        {
                            facetItem = Sitecore.Configuration.Factory.GetDatabase("core").GetItem(mapSettingsItem[Templates.ContactIdentificationActionMapping.Fields.FacetKey]);
                        }

                        if (facetItem != null)
                        {
                            contactFacetData[facetItem.Name] = field.GetValue();
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(contactFacetData.EmailAddress))
            {
                _trackerService.IdentifyContact(Context.Site.Domain.Name, contactFacetData.EmailAddress);
            }

            _contactFacetService.UpdateContactFacets(contactFacetData);

            return(true);
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Replace keywords from the form input data
        /// </summary>
        /// <param name="original"></param>
        /// <param name="formSubmitContext"></param>
        /// <returns></returns>
        protected string ReplaceKeywords(string original, FormSubmitContext formSubmitContext)
        {
            var returnString = original;

            foreach (var viewModel in formSubmitContext.Fields)
            {
                if (returnString.Contains("{" + viewModel.Name + "}"))
                {
                    var    type           = viewModel.GetType();
                    string valueToReplace = string.Empty;

                    // InputViewModel<string> types
                    if (type.IsSubclassOf(typeof(InputViewModel <string>)))
                    {
                        var field = (InputViewModel <string>)viewModel;
                        valueToReplace = field.Value ?? string.Empty;;
                    }
                    // InputViewModel<List<string>> types
                    else if (type.IsSubclassOf(typeof(InputViewModel <List <string> >)))
                    {
                        var field = (InputViewModel <List <string> >)viewModel;
                        valueToReplace = (field.Value != null) ? string.Join(", ", field.Value) : string.Empty;
                    }
                    // InputViewModel<bool> types
                    else if (type.IsSubclassOf(typeof(InputViewModel <bool>)))
                    {
                        var field = (InputViewModel <bool>)viewModel;
                        valueToReplace = field.Value.ToString();
                    }
                    // InputViewModel<DateTime?> types
                    else if (type.IsSubclassOf(typeof(InputViewModel <DateTime?>)))
                    {
                        var field = (InputViewModel <DateTime?>)viewModel;
                        valueToReplace = field.Value?.ToString() ?? string.Empty;
                    }
                    // InputViewModel<DateTime> types
                    else if (type.IsSubclassOf(typeof(InputViewModel <DateTime>)))
                    {
                        var field = (InputViewModel <DateTime>)viewModel;
                        valueToReplace = field.Value.ToString();
                    }
                    // InputViewModel<double?> types
                    else if (type.IsSubclassOf(typeof(InputViewModel <double?>)))
                    {
                        var field = (InputViewModel <double?>)viewModel;
                        valueToReplace = field.Value?.ToString() ?? string.Empty;
                    }

                    returnString = returnString.Replace("{" + viewModel.Name + "}", valueToReplace);
                }
            }

            return(returnString);
        }
Ejemplo n.º 29
0
        private LoginUserFormFields GetFormFields(LoginUserData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(data, nameof(data));
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            return(new LoginUserFormFields
            {
                Username = FieldHelper.GetFieldById(data.UserNameFieldId, formSubmitContext.Fields),
                Password = FieldHelper.GetFieldById(data.PasswordFieldId, formSubmitContext.Fields)
            });
        }
Ejemplo n.º 30
0
        private PackageFormFields GetFormFields(UploadPackageData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(data, nameof(data));
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            return(new PackageFormFields
            {
                PackageName = FieldHelper.GetFieldById(data.PackageNameFieldId, formSubmitContext.Fields),
                PackageIdentifier = FieldHelper.GetFieldById(data.PackageIdentifierFieldId, formSubmitContext.Fields),
                File = FieldHelper.GetFieldById(data.FileFieldId, formSubmitContext.Fields)
            });
        }