public async Task <List <MetricFeature> > Create(CreateTagModel model) { ApplicationUser user = await _context.Users.Where(f => f.Email == model.UserEmail).FirstOrDefaultAsync(); Feature feature = await _context.Feature.Where(f => f.Name == model.Tag).FirstOrDefaultAsync(); if (feature == null) { feature = new Feature { Name = model.Tag }; _context.Feature.Add(feature); _context.SaveChanges(); } var newFeature = new MetricFeature { User = user, Date = DateTime.Now, Duration = model.Duration, PdfId = model.PdfId, Feature = feature, FeatureId = feature.FeatureId }; _context.MetricFeature.Add(newFeature); _context.SaveChanges(); return(_context.MetricFeature.ToList()); }
public async Task <IActionResult> Upload([FromBody] IList <MetricPdfFeatureModel> metricPdfFeatures) { var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } foreach (var metricPdfFeature in metricPdfFeatures) { foreach (var metricFeature in metricPdfFeature.Features) { var metricFeatureModel = new MetricFeature { PdfId = Convert.ToInt32(metricPdfFeature.PdfId), FeatureId = metricFeature.FeatureId, Date = metricFeature.Date, Duration = metricFeature.Duration, User = user, }; await _context.MetricFeature.AddAsync(metricFeatureModel); } } await _context.SaveChangesAsync(); return(Ok("ok")); }
public async Task CreateOrUpdateMetricFeature(ApplicationDbContext context, MetricFeature model) { var metricFeature = context.MetricFeature .FirstOrDefault(x => DateTime.Compare(x.Date, model.Date) == 0 && x.Duration == model.Duration && x.FeatureId == model.FeatureId && x.PdfId == model.PdfId); if (metricFeature == null) { metricFeature = model; await context.MetricFeature.AddAsync(metricFeature); } }