Esempio n. 1
0
 private Deltaboard createDeltaboard(string id, DeltaboardType type, DateTime createdUtc)
 {
     return(new Deltaboard
     {
         Id = id, // Composite keys aren't supported in LiteDb
         DeltaboardType = type,
         CreatedUtc = createdUtc,
         LastUpdatedUtc = createdUtc,
         Entries = new List <DeltaboardEntry>()
     });
 }
Esempio n. 2
0
        private Deltaboard getCurrentDeltaboard(LiteCollection <Deltaboard> deltaboardCollection, DeltaboardType type)
        {
            DateTime startUtc;

            switch (type)
            {
            case DeltaboardType.Daily:
                startUtc = DateTime.Today.AddDays(1).ToUniversalTime();
                break;

            case DeltaboardType.Weekly:
                startUtc = DateTime.Now.StartOfWeek(DayOfWeek.Monday).ToUniversalTime();
                break;

            case DeltaboardType.Monthly:
                startUtc = DateTime.Now.StartOfMonth().ToUniversalTime();
                break;

            case DeltaboardType.Yearly:
                startUtc = DateTime.Now.StartOfYear().ToUniversalTime();
                break;

            case DeltaboardType.AllTime:
                startUtc = DateTime.MinValue.ToUniversalTime();
                break;

            default:
                throw new UnhandledEnumException <DeltaboardType>(type);
            }

            // Find deltaboard
            string id         = $"{type}-{startUtc}";
            var    deltaboard = deltaboardCollection
                                .Include(d => d.Entries)
                                .FindById(id);

            // Create if it doesn't exist
            if (deltaboard == null)
            {
                deltaboard = createDeltaboard(id, type, startUtc);
                deltaboardCollection.EnsureIndex(d => d.Id, true);
                deltaboardCollection.Insert(deltaboard);
            }

            return(deltaboard);
        }