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());
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
    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);
            }
        }
    }