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); } } }