Ejemplo n.º 1
0
        public static void getListMemmber()
        {
            var uri = string.Format("https://{0}.api.mailchimp.com/3.0/lists/{1}/members", dataCenter, listId);

            try
            {
                using (var webClient = new WebClient())
                {
                    webClient.Headers.Add("Accept", "application/json");
                    webClient.Headers.Add("Authorization", "apikey " + apiKey);
                    var        outputRes = webClient.DownloadString(uri);
                    RootMember instance  = JsonConvert.DeserializeObject <RootMember>(outputRes);
                    foreach (MCMember itemMember in instance.members)
                    {
                        Console.WriteLine("Email: " + itemMember.email_address + ", Status: " + itemMember.status);
                        DataTable dt = GetUserByEmail(itemMember.email_address);
                        if (dt.Rows.Count > 0)
                        {
                            if (itemMember.status != (Convert.ToBoolean(dt.Rows[0]["Status"]) ? SubscriberStatus.subscribed.ToString() : SubscriberStatus.unsubscribed.ToString()))
                            {
                                subscribeAddress(dt);
                            }
                        }
                    }
                }
            }
            catch (WebException we)
            {
                using (var sr = new StreamReader(we.Response.GetResponseStream()))
                {
                    Console.WriteLine("Error Message" + sr.ReadToEnd());
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Builds a code model for C# project
        /// </summary>
        /// <param name="projectFile">Project file full path</param>
        /// <param name="addOns">Optional list of add-ons</param>
        /// <returns>Code model root (async)</returns>
        public static async Task <RootMember> BuildFromProjectSourcesAsync(string projectFile, IEnumerable <IAddOn> addOns)
        {
            RootMember root;
            var        rootBuilder = new RootMemberBuilder();

            Console.WriteLine($"Preparing the workspace for {projectFile}");
            MSBuildLocator.RegisterDefaults();
            using (var msWorkspace = MSBuildWorkspace.Create())
            {
                Console.WriteLine($"Opening the project {projectFile}");
                var project = await msWorkspace.OpenProjectAsync(projectFile);

                var compilation    = project.GetCompilationAsync().Result;
                var assemblySymbol = compilation.Assembly;

                //Build the code model
                Console.WriteLine("Building the code model...");
                rootBuilder.ProjectRootDir   = new FileInfo(projectFile).DirectoryName;
                rootBuilder.CompilationFiles = compilation.SyntaxTrees.Select(st => st.FilePath).ToList();
                Build(assemblySymbol, rootBuilder, null, null, null, 0);
                root = new RootMember(rootBuilder, addOns);
                Console.WriteLine("Code model build");

                Console.WriteLine("Closing the workspace...");
                msWorkspace.CloseSolution();
                Console.WriteLine("Workspace closed");
            }

            return(root);
        }
Ejemplo n.º 3
0
        public string UpdateUserDataJson(RootMember updatedUserObject, string updatedById = null)
        {
            var userID   = GetUserID();
            var jsonUser = JsonConvert.SerializeObject(updatedUserObject);

            Console.WriteLine(jsonUser);
            updatedById = userID;
            var result = mTrackSvc.updateUserDataJson(userID, jsonUser, updatedById, Constants.SPEC_GROUP_TYPE);

            return(result);
        }
Ejemplo n.º 4
0
        private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            UserInfo = await US.GetUserInfo();

            if (UserInfo.Err.Count == 0)
            {
                ProfileBanner.Source = UserInfo.User.Banner;
                ProfilePic.Source    = UserInfo.User.Avatar;
                UserNameTB.Text      = $"{UserInfo.User.login}#{UserInfo.User.Id}";
                BadgeList Badges = await BS.GetUserBadges(UserInfo.User.Id);

                BadgesView.ItemsSource = Badges.Badges;
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Let the add-on to prepare it's own data as a part of <see cref="RootMember"/> constructor.
        /// </summary>
        /// <remarks>
        /// The add-on checks all compilation files for the &lt;NuProp.xxx&gt; comments with source-only package metadata
        /// and builds the list of source-only packages and the indexes between the packages and code model members.
        /// </remarks>
        /// <param name="root">Code model root</param>
        /// <param name="builder">Code model buildel root</param>
        public void ProcessRootData(RootMember root, RootMemberBuilder builder)
        {
            ConsoleUtils.WriteInfo("SourceOnlyPackagesAddOn preparing data...");
            //Get source-only packages info
            var packages = new List <NuProps>();

            SourceOnlyPackages = packages;
            var sourceOnlyPackagesByMember = new Dictionary <Member, List <NuProps> >();

            SourceOnlyPackagesByMember = sourceOnlyPackagesByMember;
            var membersBySourceOnlyPackage = new Dictionary <NuProps, List <Member> >();

            MembersBySourceOnlyPackage = membersBySourceOnlyPackage;
            foreach (var compilationFile in builder.CompilationFiles)
            {
                var nuProps = new NuProps(compilationFile, builder.CompilationFiles);
                if (!nuProps.HasNuProps)
                {
                    continue;
                }
                packages.Add(nuProps);

                //add members to indexes
                foreach (var packageFile in nuProps.PackageFiles)
                {
                    if (!root.AllMembersBySourceFile.TryGetValue(packageFile, out var packageMembers))
                    {
                        continue;
                    }
                    foreach (var packageMember in packageMembers)
                    {
                        if (!sourceOnlyPackagesByMember.TryGetValue(packageMember, out var packagesForMember))
                        {
                            packagesForMember = new List <NuProps>();
                            sourceOnlyPackagesByMember.Add(packageMember, packagesForMember);
                        }
                        packagesForMember.Add(nuProps);

                        if (!membersBySourceOnlyPackage.TryGetValue(nuProps, out var membersForPackage))
                        {
                            membersForPackage = new List <Member>();
                            membersBySourceOnlyPackage.Add(nuProps, membersForPackage);
                        }
                        membersForPackage.Add(packageMember);
                    }
                }
            }
            ConsoleUtils.WriteInfo($"SourceOnlyPackagesAddOn finished preparing data - {packages.Count} source only packages found");
        }
Ejemplo n.º 6
0
        public RootMember GetUserObject()
        {
            var userID = GetUserID();

            try
            {
                var        objUser    = mTrackSvc.getUsrObject(userID, Constants.SPEC_GROUP_TYPE);
                var        jsonUser   = FormatJsonType(objUser.ToString());
                RootMember rootMember = JsonConvert.DeserializeObject <RootMember>(jsonUser);
                return(rootMember);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                ShowMessageBox(null, ex.Message);
            }
            return(null);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Writes the table of all source-only packages within the code model into the output
        /// </summary>
        /// <param name="root">Code model root</param>
        /// <param name="markup">Markup provider</param>
        /// <returns>True when any output has been generated</returns>
        public async Task <bool> WriteIndexAsync(RootMember root, IMarkupProvider markup)
        {
            if (SourceOnlyPackages == null || SourceOnlyPackages.Count < 1)
            {
                return(false);
            }

            await markup.WriteH2Async("Source-only packages", "package-list");

            await markup.WriteTableHeaderAsync("Name", "Summary");

            foreach (var nuProps in SourceOnlyPackages.OrderBy(p => p.PackageId))
            {
                await markup.WriteTableColsAsync(Link(nuProps.PackageId, nuProps, markup), nuProps.PackageDescription ?? string.Empty);
            }
            await markup.WriteTableFooterAsync();

            return(true);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Writes the source-only packages pages into the output
        /// </summary>
        /// <param name="root">Code model root</param>
        /// <param name="markup">Markup provider</param>
        /// <param name="generator">Markup generator</param>
        /// <returns>Async task</returns>
        public async Task WriteOwnPagesAsync(RootMember root, IMarkupProvider markup, MarkupGenerator generator)
        {
            if (SourceOnlyPackages == null || SourceOnlyPackages.Count < 1)
            {
                return;
            }

            if (OutputOptions.SplitNs && !OutputOptions.SplitType)
            {
                //split by Ns only -> all source only packages will be on single page
                await generator.SplitAsync(GetPackagePagesFileName());
            }
            foreach (var nuProps in SourceOnlyPackages.OrderBy(p => p.PackageId))
            {
                if (OutputOptions.SplitType)
                {
                    //split by Type -> each source only packages will be on dedicated page
                    await generator.SplitAsync(GetPackagePageFileName(nuProps));
                }

                await markup.WriteH2Async($"{nuProps.PackageId} Source only package", GetPackageAnchor(nuProps));

                await markup.WriteParaAsync(
                    markup.Small(
                        new Txt()
                        .AddIf($"Version: {nuProps.PackageVersion}", !string.IsNullOrEmpty(nuProps.PackageVersion))
                        .AddIf(markup.LineBreak(), !string.IsNullOrEmpty(nuProps.PackageVersion))
                        .AddIf($"Tags: {nuProps.PackageTags}", !string.IsNullOrEmpty(nuProps.PackageTags))
                        .AddIf(markup.LineBreak(), !string.IsNullOrEmpty(nuProps.PackageTags))
                        .Add($"Includes: {nuProps.IncludesType}")
                        .Add(markup.LineBreak())
                        .Add($"Declaring file: { PathUtils.GetRelativeSourceFile(nuProps.DeclaringFile,root.ProjectRootDir)}")
                        ));

                await markup.WriteParaAsync(nuProps.PackageDescription);

                if (nuProps.Usings != null && nuProps.Usings.Count > 0)
                {
                    await markup.WriteParaAsync(new Txt()
                                                .Add(markup.Bold("Usings"))
                                                .Add(markup.DescriptionList(
                                                         u =>
                    {
                        var refPkg = SourceOnlyPackages.FirstOrDefault(p => p.PackageId == u.PackageId);
                        return(refPkg == null ? u.PackageId : Link(u.PackageId, refPkg, markup));
                    },
                                                         u => string.IsNullOrEmpty(u.PackageVersion) ? string.Empty : $"version: {u.PackageVersion}",
                                                         nuProps.Usings)));
                }

                if (nuProps.ExternalReferences != null && nuProps.ExternalReferences.Count > 0)
                {
                    await markup.WriteParaAsync(new Txt()
                                                .Add(markup.Bold("References needed"))
                                                .Add(markup.DescriptionList(
                                                         er => er,
                                                         er => string.Empty,
                                                         nuProps.ExternalReferences)));
                }

                if (nuProps.PackageRemarksSource != null &&
                    root.AllMembersByDocId.TryGetValue(nuProps.PackageRemarksSource, out var member))
                {
                    var remarksDocumentation = member.Documentation?.GetRemarks(member)?.Render(markup, member);
                    if (!string.IsNullOrEmpty(remarksDocumentation))
                    {
                        await markup.WriteH3Async("Remarks");

                        await markup.WriteParaAsync(remarksDocumentation);
                    }
                }

                if (MembersBySourceOnlyPackage.TryGetValue(nuProps, out var members) && members.Count > 0)
                {
                    await markup.WriteParaAsync(new Txt()
                                                .Add(markup.Bold("Package members"))
                                                .Add(markup.DescriptionList(
                                                         m => markup.Link($"{m.Name} ({m.MemberKind})", m),
                                                         m => m.Documentation?.GetSummary(m)?.Render(markup, m),
                                                         members)));
                }
                await markup.WriteParaAsync(new Txt()
                                            .Add(markup.Bold("Sources"))
                                            .Add(markup.DescriptionList(
                                                     f => $"{PathUtils.GetRelativeSourceFile(f,root.ProjectRootDir)}",
                                                     f => string.Empty,
                                                     nuProps.PackageFiles)));

                await generator.WritePageFooterAsync();
            }
        }