public async Task UpdateAsync(ShortVendorDTO vendorDto) { var vendor = await _unitOfWork.VendorRepository.Query .Include(v => v.Person) .Include(v => v.Person.Account) .Include(v => v.Person.Account.Location) .Include(v => v.Works) .Include(v => v.Company) .SingleAsync(x => x.Id == vendorDto.Id); vendor.Person.Account.Location = new Location() { Adress = vendorDto.Location.Adress, City = vendorDto.Location.City, IsDeleted = false, Latitude = vendorDto.Location.Latitude, Longitude = vendorDto.Location.Longitude, PostIndex = vendorDto.Location.PostIndex }; vendor.WorkLetter = vendorDto.WorkLetter; vendor.Position = vendorDto.Position; vendor.Person.Birthday = vendorDto.Birthday; // Dirty hack, fix this later vendor.Person.Name = vendorDto.Name; vendor.Person.Surname = vendorDto.Surname; vendor.Person.MiddleName = vendorDto.MiddleName; _unitOfWork.VendorRepository.Update(vendor); await _unitOfWork.SaveAsync(); }
public async Task<HttpResponseMessage> UpdateVendor(long id, [FromBody]ShortVendorDTO vendor) { await _vendorService.UpdateAsync(vendor); var result = await _vendorService.GetByIdAsync(id); if (result == null) return Request.CreateResponse(HttpStatusCode.NotFound); else return Request.CreateResponse(HttpStatusCode.OK, result); }