public static Computer ToModel(this ComputerResourceModel computer)
 {
     return(new Computer()
     {
         ComputerId = computer.ComputerId,
         Name = computer.Name,
         Cpu = computer.Cpu,
         Gpu = computer.Gpu,
         Ram = computer.Ram,
         OperatingSystem = computer.OperatingSystem,
         MacAddress = computer.MacAddress
     });
 }
        public IHttpActionResult UpdateComputer(ComputerResourceModel computer)
        {
            var account = _db.WebAccounts
                          .FirstOrDefault(wa => wa.Email == User.Identity.Name);

            if (account == null)
            {
                return(NotFound());
            }

            var exist = computer.ComputerId != 0 && _db.Computers.Any(c => c.ComputerId == computer.ComputerId);

            if (!exist)
            {
                var oldComputer =
                    _db.Computers.AsNoTracking().FirstOrDefault(c => c.Name == computer.Name && c.WebAccount.Email == User.Identity.Name);
                if (oldComputer != null)
                {
                    exist = true;
                    computer.ComputerId = oldComputer.ComputerId;
                }
            }
            var computerModel = computer.ToModel();

            computerModel.WebAccountId = account.WebAccountId;
            if (exist)
            {
                _db.Entry(computerModel).State = EntityState.Modified;
            }
            else
            {
                _db.Computers.Add(computerModel);
            }
            _db.SaveChanges();
            return(Ok(computerModel.ComputerId));
        }