public static ValueDataContract Convert(this Value value)
        {
            var result = new ValueDataContract
            {
                Id = value.Id,
                Name = value.Name
            };

            return result;
        }
        public async Task<ValueDataContract> GetValueAsync(int id)
        {
            var result = new ValueDataContract { Id = -1 };

            var valueModel = await _context.Values.SingleOrDefaultAsync(item => item.Id == id);

            if (valueModel != null)
            {
                result.Name = valueModel.Name;
            }

            return result;
        }
        public ValueDataContract GetValue(int id)
        {
            var result = new ValueDataContract {Id = -1};

            var valueModel = _context.Values.SingleOrDefault(item => item.Id == id);

            if (valueModel != null)
            {
                result = valueModel.Convert();
            }

            return result;
        }
        public async Task<ValueDataContract> AddOrUpdateValueAsync(ValueDataContract value)
        {
            ValueDataContract result;

            if (value.Id < 1)
            {
                var valueModel = new Value();
                valueModel.Populate(value);
                valueModel = _context.Values.Add(valueModel);
                await _context.SaveChangesAsync();

                result = valueModel.Convert();
            }
            else
            {
                var valueModel = await _context.Values.SingleAsync(item => item.Id == value.Id);
                valueModel.Populate(value);
                await _context.SaveChangesAsync();

                result = valueModel.Convert();
            }

            return result;
        }
        public ValueDataContract AddOrUpdateValue(ValueDataContract value)
        {
            ValueDataContract result;

            if (value.Id < 1)
            {
                var valueModel = new Value();
                valueModel.Populate(value);
                valueModel = _context.Values.Add(valueModel);
                _context.SaveChanges();

                result = valueModel.Convert();
            }
            else
            {
                var valueModel = _context.Values.Single(item => item.Id == value.Id);
                valueModel.Populate(value);
                _context.SaveChanges();

                result = valueModel.Convert();
            }
            
            return result;
        }
 public static void  Populate(this Value valueModel, ValueDataContract valueDataContract)
 {
     valueModel.Name = valueDataContract.Name;
     valueModel.Id = valueDataContract.Id;
 }