Пример #1
0
        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);
        }
Пример #2
0
        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());
        }
Пример #3
0
        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);
        }
Пример #4
0
 public void EndTurn()
 {
     StatusLibrary.EndTurn(onEffects, this);
     attacking = false;
 }
Пример #5
0
        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);
        }