예제 #1
0
        public void SelectNomineeAsAwardWinner(AwardType awardType, Person nominee)
        {
            if (awardType == null)
            {
                throw new ArgumentNullException(nameof(awardType));
            }
            if (nominee == null)
            {
                throw new ArgumentNullException(nameof(nominee));
            }

            if (GetIsAwardWinner(awardType, nominee))
            {
                return;
            }

            var nominations = GetNominationsForNominee(awardType, nominee);

            if (nominations.Count == 0)
            {
                throw new ArgumentException(@"There is no such nominee for that award type.", nameof(awardType));
            }

            var awardWinner = new AwardWinner(awardType, nominee);

            _awardWinners.Add(awardWinner);
            MarkAsDirty($@"Upserted winner {nominee.Name.FullName}");
        }
 public async Task <IActionResult> Edit([Bind("AwardShowInstanceId,AwardId,FilmMemberId,MovieId")] AwardWinner awardWinner)
 {
     if (ModelState.IsValid)
     {
         try
         {
             _context.Update(awardWinner);
             await _context.SaveChangesAsync();
         }
         catch (DbUpdateConcurrencyException)
         {
             if (!AwardWinnerExists(awardWinner.AwardShowInstanceId))
             {
                 return(NotFound());
             }
             else
             {
                 throw;
             }
         }
         return(RedirectToAction(nameof(Index)));
     }
     CreateAwardIdSelectList();
     ViewData["AwardShowInstanceId"] = new SelectList(_context.AwardShowInstance, "Id", "Id", awardWinner.AwardShowInstanceId);
     ViewData["FilmMemberId"]        = new SelectList(_context.FilmMember, "Id", "FirstName", awardWinner.FilmMemberId);
     ViewData["MovieId"]             = new SelectList(_context.Movie, "Id", "Description", awardWinner.MovieId);
     return(View(awardWinner));
 }
예제 #3
0
        internal AwardWinnerDto(AwardWinner awardWinner)
        {
            if (awardWinner == null)
            {
                throw new ArgumentNullException(nameof(awardWinner));
            }

            AwardType      = awardWinner.AwardType.ToString();
            Name           = awardWinner.Name.ToString();
            OfficeLocation = awardWinner.OfficeLocation.ToString();
            EmailAddress   = awardWinner.EmailAddress.ToString();
        }
예제 #4
0
        public void UnselectAwardWinner(AwardWinner awardWinner)
        {
            if (awardWinner == null)
            {
                throw new ArgumentNullException(nameof(awardWinner));
            }

            var removed = _awardWinners.Remove(awardWinner);

            if (removed)
            {
                MarkAsDirty(
                    $@"Removed {awardWinner.Name.FullName} from winner list for {awardWinner.AwardType.PrettyName}");
            }
        }
예제 #5
0
        public bool GetIsAwardWinner(AwardType awardType, Person person)
        {
            if (awardType == null)
            {
                throw new ArgumentNullException(nameof(awardType));
            }
            if (person == null)
            {
                throw new ArgumentNullException(nameof(person));
            }

            var awardWinner = new AwardWinner(awardType, person);

            return(AwardWinners.Contains(awardWinner));
        }
        public async Task <IActionResult> WinnerNominationAsync([FromBody] AwardWinner details)
        {
            try
            {
                if (details == null || details.Winners == null)
                {
                    return(this.BadRequest(new { message = "Award winner details can not be null." }));
                }

                var    emails      = string.Join(",", details.Winners.Select(row => row.NomineeUserPrincipalNames)).Split(",").Select(row => row.Trim()).Distinct();
                string teamId      = details.TeamId;
                var    claims      = this.GetUserClaims();
                var    teamDetails = await this.teamStorageProvider.GetTeamDetailAsync(teamId);

                string serviceUrl = teamDetails.ServiceUrl;
                string appBaseUrl = this.botSettingsOptions.Value.AppBaseUri;
                MicrosoftAppCredentials.TrustServiceUrl(serviceUrl);
                var conversationParameters = new ConversationParameters()
                {
                    ChannelData = new TeamsChannelData()
                    {
                        Channel = new ChannelInfo()
                        {
                            Id = teamId
                        }
                    },
                    Activity = (Activity)MessageFactory.Carousel(WinnerCarouselCard.GetAwardWinnerCard(appBaseUrl, details.Winners, this.localizer)),
                    Bot      = new ChannelAccount()
                    {
                        Id = this.microsoftAppCredentials.MicrosoftAppId
                    },
                    IsGroup  = true,
                    TenantId = this.botSettingsOptions.Value.TenantId,
                };

                await((BotFrameworkAdapter)this.adapter).CreateConversationAsync(
                    Constants.TeamsBotFrameworkChannelId,
                    serviceUrl,
                    this.microsoftAppCredentials,
                    conversationParameters,
                    async(turnContext, cancellationToken) =>
                {
                    Activity mentionActivity = await CardHelper.GetMentionActivityAsync(emails, claims.FromId, teamId, turnContext, this.localizer, this.logger, MentionActivityType.Winner, default);
                    await turnContext.SendActivityAsync(mentionActivity, cancellationToken);
                    await turnContext.SendActivityAsync(MessageFactory.Text(this.localizer.GetString("ViewWinnerTabText")), cancellationToken);
                }, default);
        public async Task <IActionResult> Create([Bind("AwardShowInstanceId,AwardId,FilmMemberId,MovieId")] AwardWinner awardWinner)
        {
            if (ModelState.IsValid)
            {
                using (var sqlConn = new SqlConnection(_context.Database.GetDbConnection().ConnectionString))
                {
                    await InsertMovieAwardWinnerAsync(sqlConn, awardWinner.AwardShowInstanceId, awardWinner.AwardId, awardWinner.FilmMemberId, awardWinner.MovieId);
                }

                //await _context.SaveChangesAsync();
                return(RedirectToAction(nameof(Index)));
            }
            CreateAwardIdSelectList();
            ViewData["FilmMemberId"] = new SelectList(_context.FilmMember, "Id", "FirstName", awardWinner.FilmMemberId);
            ViewData["MovieId"]      = new SelectList(_context.Movie, "Id", "Title", awardWinner.MovieId);
            return(View(awardWinner));
        }
        public async Task <IActionResult> DeleteConfirmed(int?awardShowInstanceId, int?awardId, long?filmMemberId)
        {
            if (awardShowInstanceId == null || awardId == null || filmMemberId == null)
            {
                return(NotFound());
            }

            var awardWinner = new AwardWinner()
            {
                AwardId             = awardId.Value,
                AwardShowInstanceId = awardShowInstanceId.Value,
                FilmMemberId        = filmMemberId.Value
            };

            _context.Entry(awardWinner).State = EntityState.Deleted;
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
        // GET: AwardWinners/Edit/5
        public async Task <IActionResult> Edit(int?awardShowInstanceId, int?awardId, long?filmMemberId)
        {
            if (awardShowInstanceId == null || awardId == null || filmMemberId == null)
            {
                return(NotFound());
            }

            AwardWinner awardWinner = await _context.AwardWinner
                                      .FirstOrDefaultAsync(aw => aw.AwardId == awardId && aw.AwardShowInstanceId == awardShowInstanceId &&
                                                           aw.FilmMemberId == filmMemberId);

            if (awardWinner == null)
            {
                return(NotFound());
            }

            CreateAwardIdSelectList();
            ViewData["AwardShowInstanceId"] = new SelectList(_context.AwardShowInstance, "Id", "Id", awardWinner.AwardShowInstanceId);
            ViewData["FilmMemberId"]        = new SelectList(_context.FilmMember, "Id", "FirstName", awardWinner.FilmMemberId);
            ViewData["MovieId"]             = new SelectList(_context.Movie, "Id", nameof(Movie.Title), awardWinner.MovieId);
            return(View(awardWinner));
        }
예제 #10
0
        private void UnselectAwardWinner(AwardType awardType, Person person)
        {
            var awardWinner = new AwardWinner(awardType, person);

            UnselectAwardWinner(awardWinner);
        }
예제 #11
0
        public IReadOnlyList <NominationWriteUp> GetNominationWriteUpsForAwardWinner(AwardWinner awardWinner)
        {
            var nominations = GetNominationsForNominee(awardWinner.AwardType, awardWinner.Person);

            return(nominations.Select(n => n.WriteUp).ToList());
        }
예제 #12
0
        public IReadOnlyList <CompanyValue> GetCompanyValuesForAwardWinner(AwardWinner awardWinner)
        {
            var nominations = GetNominationsForNominee(awardWinner.AwardType, awardWinner.Person);

            return(nominations.SelectMany(n => n.CompanyValues).Distinct().OrderBy(cv => cv.Value).ToList());
        }