public async void RemoveInventory(HistoryModel inventory)
        {
            HistoricalSession historicalSession;
            DataManager       dataManager = DataManager.Instance;

            _inventory.Remove(inventory);

            inventory.IsUsed = true;

            // Update cloud
            historicalSession = new HistoricalSession()
            {
                Id                = inventory.Id,
                Type              = (byte)inventory.SessionType,
                SessionStart      = inventory.StartTime.ToUniversalTime(),
                SessionEnd        = inventory.EndTime.ToUniversalTime(),
                LeftBreastStart   = inventory.LeftBreastStartTime.ToUniversalTime(),
                LeftBreastEnd     = inventory.LeftBreastEndTime.ToUniversalTime(),
                RightBreastStart  = inventory.RightBreastStartTime.ToUniversalTime(),
                RightBreastEnd    = inventory.RightBreastEndTime.ToUniversalTime(),
                LeftBreastVolume  = inventory.LeftBreastMilkVolume,
                RightBreastVolume = inventory.RightBreastMilkVolume,
                TotalVolume       = inventory.TotalMilkVolume,
                Expires           = inventory.ExpirationTime.ToUniversalTime(),
                Available         = inventory.IsUsed ? (byte)0 : (byte)1,
                Preferred         = inventory.IsPreferred ? (byte)1 : (byte)0,
                Notes             = inventory.Description,
                StorageType       = (byte)inventory.Storage,
                ChildId           = inventory.ChildID
            };

            await dataManager.AddHistoricalSession(historicalSession);
        }
        public async void AddSession(HistoryModel session)
        {
            HistoricalSession historicalSession;
            DataManager       dataManager = DataManager.Instance;
            DateTime          startTime   = ExtensionMethods.DefaultDateTime;
            DateTime          endTime     = ExtensionMethods.DefaultDateTime;
            var existingSession           = _sessions.FirstOrDefault(e => e.Id == session.Id || e.StartTime == session.StartTime);

            if (existingSession == null)
            {
                if (session.StartTime == ExtensionMethods.DefaultDateTime)
                {
                    if (session.LeftBreastStartTime != ExtensionMethods.DefaultDateTime)
                    {
                        startTime = session.LeftBreastStartTime;
                    }

                    if (session.RightBreastStartTime != ExtensionMethods.DefaultDateTime)
                    {
                        if (startTime != ExtensionMethods.DefaultDateTime)
                        {
                            if (session.RightBreastStartTime < startTime)
                            {
                                startTime = session.RightBreastStartTime;
                            }
                        }
                        else
                        {
                            startTime = session.RightBreastStartTime;
                        }
                    }

                    session.StartTime = startTime;
                }

                if (session.EndTime == ExtensionMethods.DefaultDateTime)
                {
                    if (session.LeftBreastEndTime != ExtensionMethods.DefaultDateTime)
                    {
                        endTime = session.LeftBreastEndTime;
                    }

                    if (session.RightBreastEndTime != ExtensionMethods.DefaultDateTime)
                    {
                        if (endTime != ExtensionMethods.DefaultDateTime)
                        {
                            if (session.RightBreastEndTime > endTime)
                            {
                                endTime = session.RightBreastEndTime;
                            }
                        }
                        else
                        {
                            endTime = session.RightBreastStartTime;
                        }
                    }

                    session.EndTime = endTime;
                }

                if ((session.StartTime != ExtensionMethods.DefaultDateTime) &&
                    (session.EndTime != ExtensionMethods.DefaultDateTime))
                {
                    // Convert time to local
                    if (session.StartTime.Kind == DateTimeKind.Utc)
                    {
                        session.StartTime            = session.StartTime.ToLocalTime();
                        session.EndTime              = session.EndTime.ToLocalTime();
                        session.RightBreastStartTime = session.RightBreastStartTime.ToLocalTime();
                        session.RightBreastEndTime   = session.RightBreastEndTime.ToLocalTime();
                        session.LeftBreastStartTime  = session.LeftBreastStartTime.ToLocalTime();
                        session.LeftBreastEndTime    = session.LeftBreastEndTime.ToLocalTime();
                    }

                    // Set expiration to 30 days?
                    session.ExpirationTime = session.StartTime + new TimeSpan(30, 0, 0, 0);

                    // Add to local cache
                    _sessions.Add(session);

                    if (!session.IsUsed)
                    {
                        _inventory.Add(session);
                    }

                    // Save to database and cloud
                    historicalSession = new HistoricalSession()
                    {
                        Id                = session.Id,
                        Type              = (byte)session.SessionType,
                        SessionStart      = session.StartTime.ToUniversalTime(),
                        SessionEnd        = session.EndTime.ToUniversalTime(),
                        LeftBreastStart   = session.LeftBreastStartTime.ToUniversalTime(),
                        LeftBreastEnd     = session.LeftBreastEndTime.ToUniversalTime(),
                        RightBreastStart  = session.RightBreastStartTime.ToUniversalTime(),
                        RightBreastEnd    = session.RightBreastEndTime.ToUniversalTime(),
                        LeftBreastVolume  = session.LeftBreastMilkVolume,
                        RightBreastVolume = session.RightBreastMilkVolume,
                        TotalVolume       = session.TotalMilkVolume,
                        Expires           = session.ExpirationTime.ToUniversalTime(),
                        Available         = session.IsUsed ? (byte)0 : (byte)1,
                        Preferred         = session.IsPreferred ? (byte)1 : (byte)0,
                        Notes             = session.Description,
                        StorageType       = (byte)session.Storage,
                        ChildId           = session.ChildID,
                        FeedByProfileId   = session.FeedByProfileId
                    };

                    await dataManager.AddHistoricalSession(historicalSession);
                }
            }
        }