public async Task ChangeName(IDialogContext context, LuisResult result)
        {
            List <EntityRecommendation> nameEntities = null;

            if (result.TryFindEntities("Name", out nameEntities))
            {
                var name     = "";
                var nameList = nameEntities.ConcatEntities(" ").Split(' ').ToList <string>();
                nameList.ForEach(str =>
                {
                    name += string.Concat(str[0].ToString().ToUpper(), str.Substring(1), " ");
                });
                name = name.Trim();

                // attempt to save applicant info
                var a = await ApplicantFactory.GetApplicantByContext(context);

                a.Name = name;
                await ApplicantFactory.PersistApplicant(a);

                await context.PostAsync(string.Format(Resources.msgIWillCallYou, name));

                context.Done <string>(null);
            }
            else
            {
                // prompt for the user's name
                PromptDialog.Text(context, ResumeAfterNameChangeAsync, Resources.msgWhatShouldICallYou);
            }
        }