Exemplo n.º 1
0
        public void SetScopeStatuses()
        {
            DateTime lastSnapshotDate   = DateTime.MinValue;
            long     lastOrganisationId = -1;
            int      index = -1;
            IOrderedQueryable <OrganisationScope> scopes = DataRepository.GetAll <OrganisationScope>()
                                                           .OrderBy(os => os.SnapshotDate)
                                                           .ThenBy(os => os.OrganisationId)
                                                           .ThenByDescending(os => os.ScopeStatusDate);

            foreach (OrganisationScope scope in scopes)
            {
                if (lastSnapshotDate != scope.SnapshotDate || lastOrganisationId != scope.OrganisationId)
                {
                    index = 0;
                }
                else
                {
                    index++;
                }

                //Set the status
                ScopeRowStatuses newStatus = index == 0 ? ScopeRowStatuses.Active : ScopeRowStatuses.Retired;
                if (scope.Status != newStatus)
                {
                    scope.Status = newStatus;
                }

                lastSnapshotDate   = scope.SnapshotDate;
                lastOrganisationId = scope.OrganisationId;
            }

            DataRepository.SaveChanges();
        }
 public OrganisationScopeBuilder WithStatus(ScopeRowStatuses status)
 {
     this.status = status;
     return(this);
 }