private IEnumerable <DF_Status> CreateInvalidDestinationStatuses(DF_Status status, IEnumerable <int> invalidDestinations) { var invalidDestinationStatuses = new List <DF_Status>(); foreach (var invalidReleasedDestinationId in invalidDestinations) { var invalidDestinationStatus = new DF_Status { AssetID = status.AssetID, DestinationID = invalidReleasedDestinationId, CreatedBy = status.CreatedBy, ModifiedBy = status.ModifiedBy, CreatedDate = status.CreatedDate, ModifiedDate = status.ModifiedDate, Message = string.Concat("This destination might have been mapped to this asset's feeds in the past; ", "however, it is no longer map. Until it is re-mapped or new destination statuses are added, it will be ignored."), ReporterEnum = status.ReporterEnum, StatusEnum = StatusLibrary.GetStatusEnumByValue("IgnoreDestination").Enum, UniqueId = status.UniqueId }; invalidDestinationStatuses.Add(invalidDestinationStatus); } return(invalidDestinationStatuses); }
private IEnumerable <int> GetExistingInvalidDestinations(IEnumerable <DF_Status> releasedStatuses) { var lastDestinationStatuses = releasedStatuses .GroupBy(rs => rs.DestinationID) .Select(d => new { DestinationEnum = d.Key, LastStatus = d.OrderByDescending(s => s.CreatedDate).FirstOrDefault() }); return(lastDestinationStatuses .Where(d => d.LastStatus != null && d.LastStatus.StatusEnum == StatusLibrary.GetStatusEnumByValue("IgnoreDestination").Enum) .Select(d => d.DestinationEnum ?? 0).ToList()); }
public List <DF_Status> CreateDestinationStatuses(DF_Status status, IList <DF_Destination> destinations, bool isActiveAiringStatus) { var releasedDestinationStatuses = new List <DF_Status>(); var currentFeedDestinations = GetDestinations(status.AssetID, destinations).ToList(); List <DF_Status> dd = GetStatusesByAssetId(status.AssetID, isActiveAiringStatus); var releasedStatuses = dd.Where(s => s.StatusEnum == StatusLibrary.GetStatusEnumByValue("Released").Enum).ToList(); var existingReportedDestinations = GetReportedDestinations(releasedStatuses); var existingInvalidDestinations = GetExistingInvalidDestinations(dd); var newInvalidDestinations = GetNewInvalidDestinations(existingReportedDestinations, currentFeedDestinations, existingInvalidDestinations); releasedDestinationStatuses.AddRange(CreateAssetStatusesForNewDestinations(status, currentFeedDestinations)); releasedDestinationStatuses.AddRange(CreateInvalidDestinationStatuses(status, newInvalidDestinations)); return(releasedDestinationStatuses); }
public void EndTurn() { StatusLibrary.EndTurn(onEffects, this); attacking = false; }
public List <DF_Status> CreateStatuses(List <DF_Status> statusDataModels, bool isActiveAiringStatus, bool unique) { var results = new List <DF_Status>(); try { statusDataModels.ForEach(status => { status.StatusID = 0; if (status.DestinationID == q.GetByName("NONE").DestinationID&& status.StatusEnum == StatusLibrary.GetStatusEnumByValue("Released").Enum) { var releasedStatusMapper = new ReleasedStatusToDestinationMapper(_configuration); var releasedDestinationStatuses = releasedStatusMapper.CreateDestinationStatuses(status, q.GetDestinations(), isActiveAiringStatus); foreach (var releasedDestiantionStatus in releasedDestinationStatuses) { results.Add(unique ? CreateUniqueStatus(releasedDestiantionStatus, isActiveAiringStatus) : CreateStatus(releasedDestiantionStatus, isActiveAiringStatus)); } } else { results.Add(unique ? CreateUniqueStatus(status, isActiveAiringStatus) : CreateStatus(status, isActiveAiringStatus)); } }); } catch (Exception) { throw; } return(results); }