using System; using System.Linq; using AsbCloudDb.Model; using AsbCloudApp.Services; using Mapster; namespace AsbCloudInfrastructure.Services { public class LastDataService : ILastDataService { private readonly IAsbCloudDbContext db; public LastDataService(IAsbCloudDbContext db) { this.db = db; } public Tdto Get(int idWell, int idCategory) { var entity = db.LastData.FirstOrDefault(e => e.IdWell == idWell && e.IdCategory == idCategory); if (entity is null) return default; var dto = entity.Adapt(); return dto; } public int Upsert(int idWell, int idCategory, Tdto value) { var model = value.Adapt(); var entity = db.LastData.FirstOrDefault(ld => ld.IdWell == idWell && ld.IdCategory == idCategory); if (entity is not null) { entity.LastUpdateDate = DateTime.Now; entity.Data = model; db.LastData.Update(entity); } else { var newLastData = new LastData { LastUpdateDate = DateTime.Now, Data = model }; db.LastData.Add(newLastData); } return db.SaveChanges(); } } }