Exemplo n.º 1
0
        public DF_Status CreateStatus(DF_Status status, bool isActiveAiringStatus)
        {
            try
            {
                ODTDatastore _dbODT    = new ODTDatastore(_configuration);
                int          highOrder = _dbODT.GetDatabase().GetCollection <DF_Status>(isActiveAiringStatus ? "DFStatus" : "DFExpiredStatus").FindAll()
                                         .SetSortOrder(SortBy.Descending(new[] { "StatusID" }))
                                         .SetFields(new[] { "StatusID" })
                                         .SetLimit(1)
                                         .FirstOrDefault().StatusID;

                status.StatusID     = ++highOrder;
                status.CreatedDate  = DateTime.Now;
                status.ModifiedDate = status.CreatedDate;
                status.ModifiedBy   = status.CreatedBy;
                MongoCollection <DF_Status> statusCollection = _dbODT.GetDatabase().GetCollection <DF_Status>(isActiveAiringStatus ? "DFStatus" : "DFExpiredStatus");
                statusCollection.Save(status);
            }
            catch (Exception)
            {
                throw;
            }

            return(status);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        private IEnumerable <DF_Status> CreateAssetStatusesForNewDestinations(DF_Status status, IEnumerable <int> newDestinations)
        {
            var destinationStatuses = new List <DF_Status>();

            foreach (var destinationEnum in newDestinations)
            {
                var destinationStatus = new DF_Status
                {
                    AssetID       = status.AssetID,
                    DestinationID = destinationEnum,
                    CreatedBy     = status.CreatedBy,
                    ModifiedBy    = status.ModifiedBy,
                    CreatedDate   = status.CreatedDate,
                    ModifiedDate  = status.ModifiedDate,
                    Message       = status.Message,
                    ReporterEnum  = status.ReporterEnum,
                    StatusEnum    = status.StatusEnum,
                    UniqueId      = status.UniqueId
                };

                destinationStatuses.Add(destinationStatus);
            }

            return(destinationStatuses);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Clones the status
        /// </summary>
        /// <param name="status">the DF status to clone</param>
        /// <returns></returns>
        private DF_Status CloneStatus(DF_Status status)
        {
            var clonedStatusString = JsonConvert.SerializeObject(status);
            var clonedStatus       = JsonConvert.DeserializeObject <DF_Status>(clonedStatusString);

            clonedStatus.Id = string.Empty;
            return(clonedStatus);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Deports the Status to Expired Collection
        /// </summary>
        /// <param name="status"></param>
        public void MoveToCurrentCollection(DF_Status status)
        {
            var expiredStatus = CloneStatus(status);

            _currentCollection.Save(expiredStatus);

            var query = Query <DF_Status> .EQ(e => e.Id, status.Id);

            _expiredCollection.Remove(query);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Deports the Status to Expired Collection
        /// </summary>
        /// <param name="status"></param>
        public void MoveToExpireCollection(DF_Status status)
        {
            if (_expiredCollection.FindOne(Query <DF_Status> .EQ(e => e.Id, status.Id)) == null)
            {
                _expiredCollection.Save(status);
            }

            var query = Query <DF_Status> .EQ(e => e.Id, status.Id);

            _currentCollection.Remove(query);
        }
Exemplo n.º 7
0
        private bool DoesStatusExistForAssetReporterAndDestination(DF_Status status, bool isActiveAiringStatus)
        {
            ODTDatastore _dbODT           = new ODTDatastore(_configuration);
            var          statusCollection = _dbODT.GetDatabase().GetCollection <DF_Status>(isActiveAiringStatus ? "DFStatus" : "DFExpiredStatus");
            var          query            = Query.And(Query.EQ("AssetID", status.AssetID),
                                                      Query.EQ("StatusEnum", status.StatusEnum),
                                                      Query.EQ("ReporterEnum", status.ReporterEnum),
                                                      Query.EQ("DestinationID", status.DestinationID));

            return(statusCollection.Find(query).Any());
        }
Exemplo n.º 8
0
        private void SaveBIMStatus(string airingId, bool isActiveAiringStatus, int statusEnum, int destinationEnum, string message)
        {
            var status = new DF_Status
            {
                AssetID       = airingId,
                StatusEnum    = statusEnum,
                Message       = message,
                CreatedBy     = "OnDemandTools",
                ReporterEnum  = 9, //OnDemandTools
                DestinationID = destinationEnum
            };

            UpdateStatus(status, isActiveAiringStatus);
        }
Exemplo n.º 9
0
 public DF_Status CreateUniqueStatus(DF_Status status, bool isActiveAiringStatus)
 {
     return(!DoesStatusExistForAssetReporterAndDestination(status, isActiveAiringStatus) ? CreateStatus(status, isActiveAiringStatus) : new DF_Status
     {
         AssetID = status.AssetID,
         StatusEnum = status.StatusEnum,
         CreatedBy = status.CreatedBy,
         CreatedDate = DateTime.Now,
         DestinationID = q.GetByName("None").DestinationID,
         ModifiedBy = status.ModifiedBy,
         ModifiedDate = DateTime.Now,
         ReporterEnum = status.ReporterEnum,
         Message = "Status for specfied asset and destination aready exists and will not be created to avoid duplicates."
     });
 }
Exemplo n.º 10
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);
        }
Exemplo n.º 11
0
        private void SaveStatus(string airingId, bool isActiveAiringStatus, int statusEnum, int destinationEnum, bool unique, string message)
        {
            var status = new DF_Status
            {
                AssetID       = airingId,
                StatusEnum    = statusEnum,
                Message       = message,
                CreatedBy     = "OnDemandTools",
                ReporterEnum  = 9, //OnDemandTools
                DestinationID = destinationEnum
            };

            var dataModel = CreateStatuses(new List <DF_Status> {
                status
            }, isActiveAiringStatus, unique);
        }
Exemplo n.º 12
0
        private void UpdateStatus(DF_Status status, bool isActiveAiringStatus)
        {
            var bimStatus          = new BsonValue[] { BIMFOUND, BIMMISMATCH, BIMNOTFOUND };
            var dfStatusCollection = _database.GetCollection <DF_Status>(isActiveAiringStatus ? "DFStatus" : "DFExpiredStatus");

            var query = Query.And(Query.EQ("AssetID", status.AssetID),
                                  Query.In("StatusEnum", bimStatus),
                                  Query.EQ("ReporterEnum", status.ReporterEnum),
                                  Query.EQ("DestinationID", status.DestinationID));
            bool isStatusExistsinDFStatus = dfStatusCollection.Find(query).Any();

            int highOrder = dfStatusCollection.FindAll()
                            .SetSortOrder(SortBy.Descending(new[] { "StatusID" }))
                            .SetFields(new[] { "StatusID" })
                            .SetLimit(1)
                            .FirstOrDefault().StatusID;

            status.StatusID     = ++highOrder;
            status.CreatedDate  = DateTime.Now;
            status.ModifiedDate = status.CreatedDate;
            status.ModifiedBy   = status.CreatedBy;
            if (!isStatusExistsinDFStatus)
            {
                dfStatusCollection.Save(status);
            }
            else
            {
                dfStatusCollection.Update(query,
                                          Update <DF_Status> .Set(c => c.StatusID, status.StatusID)
                                          .Set(c => c.StatusEnum, status.StatusEnum)
                                          .Set(c => c.Message, status.Message)
                                          .Set(c => c.CreatedDate, status.CreatedDate)
                                          .Set(c => c.ModifiedDate, status.ModifiedDate)
                                          .Set(c => c.ModifiedBy, status.ModifiedBy)
                                          );
            }
        }