Beispiel #1
0
        public void UpdateAdminMemberNameFluentQuery()
        {
            FluentQuery query = null;

            query = new FluentQuery("Member")
                    .Where(
                Op.Get("ID", "Member:20")
                )
                    .Select(
                "Name"
                )
                    .Success(assets =>
            {
                dynamic member = assets.FirstOrDefault();
                if (member != null)
                {
                    Console.WriteLine("Name is currently: " + member.Name);

                    var newName = string.Empty;
                    while (newName == string.Empty)
                    {
                        newName = ReadString("Please enter a new name and hit enter");
                    }

                    member.Name = newName;

                    var asset = (AssetClassBase)member;
                    asset.SaveChanges();
                }
            }
                             )
                    .WhenEmpty(() => Console.WriteLine("No results found..."))
                    .Execute();

            Console.WriteLine();
            Console.WriteLine("Saved member, now requerying...");
            Console.WriteLine();

            query.Execute(assets => {
                dynamic memberNow = assets.FirstOrDefault();
                if (memberNow != null)
                {
                    Console.WriteLine("Name is now: " + memberNow.Name);
                }
            });
        }
Beispiel #2
0
        public void ShowInteractiveFluentQuery()
        {
            var assetTypeName = ReadString("What asset type do you want to query? (ex: Story, Member)");
            var query         = new FluentQuery(assetTypeName);

            Console.WriteLine();
            var criteria = ReadValues(
                "Enter one or more comma-separated filter terms ins the form of Field=value (ex: ID=Story:1083, Name=My Story). Hit enter to continue.",
                ParseCommaDelimItems, ParseFilterTerm);

            query.Where(criteria.ToArray());

            Console.WriteLine();
            var selectTerms = ReadValues("Enter one or more comma-separated field names to select. (ex: Name, CreatedBy). Hit enter to continue.)",
                                         ParseCommaDelimItems);

            query.Select(selectTerms.ToArray());

            query.OnSuccess = assets =>
            {
                assets.ForEach(asset =>
                               selectTerms.ForEach(fieldName =>
                                                   Console.WriteLine(fieldName + ": " + asset.GetValueByName(fieldName))
                                                   )
                               );
                // Above is the same thing as:
                //foreach (AssetClassBase asset in assets)
                //{
                //    foreach (var fieldName in selectTerms)
                //    {
                //        Console.WriteLine(fieldName + ": " + asset.GetValueByName(fieldName));
                //    }
                //}
            };
            query.OnEmptyResults = () => Console.WriteLine("No results found...");
            query.OnError        = PrintError;

            query.Execute();
        }