/// <summary> /// Deletes the specified composite egm meter data. /// </summary> /// <param name="compositeEgmMeterData">The composite egm meter data.</param> public void Delete(CompositeEgmMeterData compositeEgmMeterData) { using (var context = new HmsDbContext()) { if (!context.CompositeEgmMeterDatas.Any(cemd => cemd.Id == compositeEgmMeterData.Id)) { return; } // matching PK found, thus we proceed with Delete DaoUtilities.DeleteEntity(context, context.CompositeEgmMeterDatas, compositeEgmMeterData); } }
/// <summary> /// Saves the specified composite EGM meter data. /// </summary> /// <param name="compositeEgmMeterData">The composite EGM meter data.</param> public void Save(CompositeEgmMeterData compositeEgmMeterData) { using (var context = new HmsDbContext()) { //context.Database.Log = Console.Write; if (!context.CompositeEgmMeterDatas.Any(cemd => cemd.Id == compositeEgmMeterData.Id)) { // no matching PK for this CompositeEgmMeterData in database, // thus we create new entity and add it to db DaoUtilities.SaveCreatedEntity(context, context.CompositeEgmMeterDatas, compositeEgmMeterData, SetNewEntityState); } else { // matching PK found, thus we update state of existing CompositeEgmMeterData entity DaoUtilities.SaveUpdatedEntity(context, context.CompositeEgmMeterDatas, compositeEgmMeterData, UpdateExistingEntityState); } } }
/// <summary> /// Gets the CompositeEgmMeterData with the specified composite key. /// </summary> /// <param name="compositeKey">The composite key.</param> /// <returns>CompositeEgmMeterData.</returns> public CompositeEgmMeterData GetByCompositeKey(EgmCompositeKey compositeKey) { using (var context = new HmsDbContext()) { CompositeEgmMeterData retval = null; var candidates = context.CompositeEgmMeterDatas.AsQueryable() .Where(cemd => cemd.AuditDate == compositeKey.AuditDate) .Where(cemd => cemd.CasinoName == compositeKey.CasinoName) .Where(cemd => cemd.SerialNumber == compositeKey.EgmSerialNumber) .Where(cemd => cemd.AssetNumber == compositeKey.EgmAssetNumber) .Where(cemd => cemd.GameTheme == compositeKey.GameTheme) .Where(cemd => cemd.Denomination == compositeKey.Denomination) .OrderBy(cemd => cemd.Id) .ToList(); // we expect only 1 match to this query // if we find more than 1, something is amiss if (1 == candidates.Count) { retval = candidates[0]; } else if (1 < candidates.Count) { Logger.Warn( $"CompositeEgmMeterDataDao.GetByCompositeKey found {candidates.Count} matches with a composite key of {compositeKey}. Should only ever be 1 record which matches a composite key."); retval = candidates[0]; //for (var iCandidate = 1; iCandidate < candidates.Count; ++iCandidate) //{ // DaoUtilities.DeleteEntity(context, context.CompositeEgmMeterDatas, candidates[iCandidate]); //} } return(retval); } }
/// <summary> /// Sets the new state of the entity. /// </summary> /// <param name="entity">The entity.</param> private static void SetNewEntityState(CompositeEgmMeterData entity) { entity.Version = 0; }