public async Task <IActionResult> Apps([FromBody] LinuxAppPostModel model) { if (model == null || model.Apps == null) { return(BadRequest()); } var apiKey = _configuration.GetValue <string>("ApiKey"); if (apiKey != model.ApiKey) { return(BadRequest()); } var currentEntities = _context.LinuxApps.ToList(); var entities = model.Apps.AsQueryable().ProjectTo <LinuxApp>(_mapper.ConfigurationProvider); foreach (var item in entities) { var result = currentEntities.Where(x => x.Identifier == item.Identifier && x.Type == item.Type).FirstOrDefault(); if (result != null) { if (item.CurrentVersion != result.CurrentVersion || item.Icon != result.Icon || item.Src != result.Src || item.Name != result.Name) { _mapper.Map(item, result); result.LastUpdated = DateTime.Now; _context.LinuxApps.Update(result); currentEntities.Remove(result); } } else { _context.Add(item); } } await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> Apps([FromBody] LinuxAppPostModel model) { if (model == null || model.Apps == null) { return(BadRequest()); } var apiKey = _configuration.GetValue <string>("ApiKey"); if (apiKey != model.ApiKey) { return(BadRequest()); } _linuxAppService.SaveApps(model); await _context.SaveChangesAsync(); return(Ok()); }
public void SaveApps(LinuxAppPostModel model) { var currentEntities = _context.LinuxApps.Include(x => x.LinuxAppCategorys).ToList(); var entities = model.Apps.AsQueryable().ProjectTo <LinuxApp>(_mapper.ConfigurationProvider).ToList(); foreach (var item in entities) { var result = currentEntities.Where(x => x.Identifier == item.Identifier && x.Type == item.Type).FirstOrDefault(); if (result != null) { _mapper.Map(item, result); result.LastUpdated = DateTime.Now; _context.LinuxApps.Update(result); currentEntities.Remove(result); } else { _context.Add(item); } } }