/// <summary>
        /// Determines which fields are required for the ContributionType
        /// </summary>
        /// <param name="contributionType"></param>
        /// <returns></returns>
        public static Tuple <bool, bool, bool> GetContributionTypeRequirements(this ContributionTypeModel contributionType)
        {
            bool isUrlRequired;
            bool isAnnualQuantityRequired;
            bool isSecondAnnualQuantityRequired;

            switch (contributionType.EnglishName)
            {
            case "Article":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Blog Site Posts":
                isUrlRequired                  = true;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Book (Author)":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Book (Co-Author)":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Code Project/Tools":
                isUrlRequired                  = true;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Code Samples":
                isUrlRequired                  = true;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Conference (booth presenter)":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Conference (organizer)":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Forum Moderator":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Forum Participation (3rd Party Forums)":
                isUrlRequired                  = true;
                isAnnualQuantityRequired       = false;
                isSecondAnnualQuantityRequired = true;
                break;

            case "Forum Participation (Microsoft Forums)":
                isUrlRequired                  = true;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Mentorship":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Open Source Project(s)":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Other":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Product Group Feedback":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Site Owner":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Speaking (Conference)":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Speaking (Local)":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Speaking (User group)":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Technical Social Media (Twitter, Facebook, LinkedIn...)":
                isUrlRequired                  = true;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Translation Review, Feedback and Editing":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "User Group Owner":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Video":
                isUrlRequired                  = true;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Webcast":
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            case "Website Posts":
                isUrlRequired                  = true;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;

            default:
                isUrlRequired                  = false;
                isAnnualQuantityRequired       = true;
                isSecondAnnualQuantityRequired = false;
                break;
            }

            return(new Tuple <bool, bool, bool>(isUrlRequired, isAnnualQuantityRequired, isSecondAnnualQuantityRequired));
        }
        //public static Tuple<bool, bool, bool, bool> GetContributionTypeRequirementsById(this ContributionTypeModel contributionType)
        //{
        //    bool isUrlRequired = false;
        //    bool isAnnualQuantityRequired = false;
        //    bool isSecondAnnualQuantityRequired = false;
        //    bool isAnnualReachRequired = false;

        //    var guidString = contributionType.Id.ToString();

        //    switch (guidString)
        //    {
        //        case "e36464de-179a-e411-bbc8-6c3be5a82b68": //"EnglishName": "Article"
        //            isAnnualQuantityRequired = true;
        //            isAnnualReachRequired = true;
        //            break;
        //        case "db6464de-179a-e411-bbc8-6c3be5a82b68": //"EnglishName": "Book (Author)"
        //        case "dd6464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Book (Co-Author)"
        //        case "f16464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Conference (Staffing)"
        //        case "0ce0dc15-0304-e911-8171-3863bb2bca60": // "EnglishName": "Docs.Microsoft.com Contribution"
        //        case "f96464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Forum Moderator"
        //        case "f76464de-179a-e411-bbc8-6c3be5a82b68": //  "EnglishName": "Mentorship"
        //        case "d2d96407-0304-e911-8171-3863bb2bca60": // "EnglishName": "Microsoft Open Source Projects"
        //        case "414bcf30-e889-e511-8110-c4346bac0abc": // "EnglishName": "Non-Microsoft Open Source Projects"
        //        case "fd6464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Organizer (User Group/Meetup/Local Events)"
        //        case "ef6464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Organizer of Conference"
        //        case "ff6464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Other"
        //        case "016564de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Product Group Feedback (General)"
        //        case "fb6464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Site Owner"
        //        case "d16464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Speaking (Conference)"
        //        case "d56464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Speaking (User Group/Meetup/Local events)"
        //        case "056564de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Translation Review, Feedback and Editing"
        //        case "0ee0dc15-0304-e911-8171-3863bb2bca60": // "EnglishName": "Workshop/Volunteer/Proctor"
        //            isAnnualQuantityRequired = true;
        //            break;
        //        case "df6464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Blog/Website Post"
        //        case "d76464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Forum Participation (Microsoft Forums)"
        //        case "e96464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Sample Code/Projects/Tools"
        //        case "eb6464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Technical Social Media (Twitter, Facebook, LinkedIn...)"
        //        case "e56464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Video/Webcast/Podcast"
        //            isUrlRequired = true;
        //            isAnnualQuantityRequired = true;
        //            break;
        //        case "d96464de-179a-e411-bbc8-6c3be5a82b68": // "EnglishName": "Forum Participation (3rd Party forums)"
        //            isUrlRequired = true;
        //            isAnnualQuantityRequired = true;
        //            isSecondAnnualQuantityRequired = true;
        //            break;
        //    }

        //    return new Tuple<bool, bool, bool, bool>(isUrlRequired, isAnnualQuantityRequired, isSecondAnnualQuantityRequired, isAnnualReachRequired);
        //}

        /// <summary>
        /// Titles of the quantities. These title are used to describe what the value is being entered. For example AnnualQuantity could be for Number of Article
        /// </summary>
        /// <param name="contributionType"></param>
        /// <returns>AnnualQuantityHeader, SecondAnnualQuantityHeader, AnnualReachHeader, IsUrlRequired</returns>
        public static Tuple <string, string, string, bool> GetContributionTypeRequirements(this ContributionTypeModel contributionType)
        {
            var  annualQuantityHeader       = "";
            var  secondAnnualQuantityHeader = "";
            var  annualReachHeader          = "";
            bool isUrlRequired = false;

            var guidString = contributionType.Id.ToString();

            switch (guidString)
            {
            case "e36464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Article"
                annualQuantityHeader       = "Number of Articles";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Views";
                break;

            case "df6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Blog/Website Post"
                annualQuantityHeader       = "Number of Posts";
                secondAnnualQuantityHeader = "Number of Subscribers";
                annualReachHeader          = "Annual Unique Visitors";
                isUrlRequired = true;
                break;

            case "db6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Book (Author)"
                annualQuantityHeader       = "Number of Books";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Copies Sold";
                break;

            case "dd6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Book (Co-Author)"
                annualQuantityHeader       = "Number of Books";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Copies Sold";
                break;

            case "f16464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Conference (Staffing)"
                annualQuantityHeader       = "Number of Conferences";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Visitors";
                break;

            case "0ce0dc15-0304-e911-8171-3863bb2bca60":     // "EnglishName": "Docs.Microsoft.com Contribution"
                annualQuantityHeader       = "Pull Requests/Issues/Submissions";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "";
                break;

            case "f96464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Forum Moderator"
                annualQuantityHeader       = "Number of Threads moderated";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "";
                break;

            case "d96464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Forum Participation (3rd Party forums)"
                annualQuantityHeader       = "Number of Answers";
                secondAnnualQuantityHeader = "Number of Posts";
                annualReachHeader          = "Views of Answers";
                isUrlRequired = true;
                break;

            case "d76464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Forum Participation (Microsoft Forums)"
                annualQuantityHeader       = "Number of Answers";
                secondAnnualQuantityHeader = "Number of Posts";
                annualReachHeader          = "Views of Answers";
                isUrlRequired = true;
                break;

            case "f76464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Mentorship"
                annualQuantityHeader       = "Number of Mentorship Activity";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Mentees";
                break;

            case "d2d96407-0304-e911-8171-3863bb2bca60":     // "EnglishName": "Microsoft Open Source Projects"
                annualQuantityHeader       = "Number of Projects";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "";
                break;

            case "414bcf30-e889-e511-8110-c4346bac0abc":     // "EnglishName": "Non-Microsoft Open Source Projects"
                annualQuantityHeader       = "Project(s)";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Contributions";
                break;

            case "fd6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Organizer (User Group/Meetup/Local Events)"
                annualQuantityHeader       = "Meetings";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Members";
                break;

            case "ef6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Organizer of Conference"
                annualQuantityHeader       = "Number of Conferences";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Attendees";
                break;

            case "ff6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Other"
                annualQuantityHeader       = "Annual Quantity";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Annual Reach";
                break;

            case "016564de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Product Group Feedback (General)"
                annualQuantityHeader       = "Number of Events Participated";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Feedbacks Provided";
                break;

            case "e96464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Sample Code/Projects/Tools"
                annualQuantityHeader       = "Number of Samples";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Downloads";
                isUrlRequired = true;
                break;

            case "fb6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Site Owner"
                annualQuantityHeader       = "Number of Sites";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Visitors";
                break;

            case "d16464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Speaking (Conference)"
                annualQuantityHeader       = "Number of Talks";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Attendees of Talks";
                break;

            case "d56464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Speaking (User Group/Meetup/Local events)"
                annualQuantityHeader       = "Number of Talks";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Attendees of Talks";
                break;

            case "eb6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Technical Social Media (Twitter, Facebook, LinkedIn...)"
                annualQuantityHeader       = "Number of Talks";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Followers";
                isUrlRequired = true;
                break;

            case "056564de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Translation Review, Feedback and Editing"
                annualQuantityHeader       = "Annual Quantity";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "";
                break;

            case "e56464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Video/Webcast/Podcast"
                annualQuantityHeader       = "Number of Videos";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "Number of Views";
                isUrlRequired = true;
                break;

            case "0ee0dc15-0304-e911-8171-3863bb2bca60":     // "EnglishName": "Workshop/Volunteer/Proctor"
                annualQuantityHeader       = "Number of Events";
                secondAnnualQuantityHeader = "";
                annualReachHeader          = "";
                break;
            }

            return(new Tuple <string, string, string, bool>(annualQuantityHeader, secondAnnualQuantityHeader, annualReachHeader, isUrlRequired));
        }
Beispiel #3
0
        private SolidColorBrush GetBackgroundForContributionType(ContributionTypeModel contributionType)
        {
            // Special cases that don't have a GUId from the API
            if (contributionType.EnglishName == "Product Group Interaction (PGI)")
            {
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[1]));
            }

            var guidString = contributionType.Id.ToString();

            switch (guidString)
            {
            case "e36464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Article"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[15]));

            case "df6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Blog/Website Post"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[14]));

            case "db6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Book (Author)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[4]));

            case "dd6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Book (Co-Author)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[3]));

            case "f16464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Conference (Staffing)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[12]));

            case "0ce0dc15-0304-e911-8171-3863bb2bca60":     // "EnglishName": "Docs.Microsoft.com Contribution"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[7]));

            case "f96464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Forum Moderator"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[10]));

            case "d96464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Forum Participation (3rd Party forums)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[18]));

            case "d76464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Forum Participation (Microsoft Forums)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[20]));

            case "f76464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Mentorship"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[17]));

            case "d2d96407-0304-e911-8171-3863bb2bca60":     // "EnglishName": "Microsoft Open Source Projects"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[16]));

            case "414bcf30-e889-e511-8110-c4346bac0abc":     // "EnglishName": "Non-Microsoft Open Source Projects"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[19]));

            case "fd6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Organizer (User Group/Meetup/Local Events)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[9]));

            case "ef6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Organizer of Conference"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[11]));

            case "ff6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Other"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[0]));

            case "016564de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Product Group Feedback (General)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[1]));

            case "e96464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Sample Code/Projects/Tools"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[13]));

            case "fb6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Site Owner"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[2]));

            case "d16464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Speaking (Conference)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[5]));

            case "d56464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Speaking (User Group/Meetup/Local events)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[6]));

            case "eb6464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Technical Social Media (Twitter, Facebook, LinkedIn...)"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[8]));

            case "056564de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Translation Review, Feedback and Editing"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[0]));

            case "e56464de-179a-e411-bbc8-6c3be5a82b68":     // "EnglishName": "Video/Webcast/Podcast"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[14]));

            case "0ee0dc15-0304-e911-8171-3863bb2bca60":     // "EnglishName": "Workshop/Volunteer/Proctor"
                return(new SolidColorBrush(PaletteHelper.ContributionTypeBackgroundColors[14]));

            default:
                return(new SolidColorBrush(Colors.Black));
            }
        }