//
        public Task<int> AddEngineAsync(Engine engine)
        {
            var updated = 0;
            if (engine == null || string.IsNullOrEmpty(engine.Name))
                return Task.FromResult(0);

            engine.Name = engine.Name.Trim();
            lock (locker)
            {
                var max = home.Engines.AsQueryable()
                    .OrderByDescending(e => e.Id)
                    .FirstOrDefault();

                engine.Id = (max != null) ? (max.Id + 1) : 1;

                home.Engines.Add(engine);
                SaveHomeObject();
                updated++;
            }

            return Task.FromResult(updated);
        }
 public async Task<int> UpdateEngineAsync(Engine engine)
 {
     return await _HomeManager.UpdateEngineAsync(engine);
 }
 public async Task<int> AddEngineAsync(Engine engine)
 {
     return await _HomeManager.AddEngineAsync(engine);
 }
        //
        public Task<int> UpdateEngineAsync(Engine engine)
        {
            var updated = 0;
            if (engine == null || engine.Id <= 0 || string.IsNullOrEmpty(engine.Name))
                return Task.FromResult(0);

            engine.Name = engine.Name.Trim();
            lock (locker)
            {
                var existed = home.Engines.FirstOrDefault(e => e.Id == engine.Id);
                if (existed != null)
                {
                    Mapper.Map(engine, existed);
                    SaveHomeObject();
                    updated++;
                }
            }

            return Task.FromResult(updated);
        }