public async Task <IHttpActionResult> PostAddress(AddressEmployee addressEmployee) { this.GetEmployeeId(); Address address = new Address(); address.StreetId = this.AddressStreet(addressEmployee.Street).Id; address.HouseNumber = addressEmployee.HouseNumber; address.FlatNumber = addressEmployee.FlatNumber; address.PostalCode = addressEmployee.PostalCode; address.CityId = this.AddressCity(addressEmployee.City).Id; address.CountryId = this.AddressCity(addressEmployee.Country).Id; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } database.Addresses.Add(address); await database.SaveChangesAsync(); EmployeesAddress employeesAddress = new EmployeesAddress(); employeesAddress.EmployeeId = (int)workerId; employeesAddress.AddressId = address.Id; employeesAddress.AddressTypeId = database.AddressTypes.Single(t => t.Name == addressEmployee.AddressType).Id; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } database.EmployeesAddresses.Add(employeesAddress); await database.SaveChangesAsync(); return(StatusCode(HttpStatusCode.OK)); }
public async Task <IHttpActionResult> DeleteAddress(EmployeeAddressType employeeAddressType) { this.GetEmployeeId(); EmployeesAddress employeesAddress = await database.EmployeesAddresses.FirstAsync(e => e.AddressId == employeeAddressType.AddressId && e.EmployeeId == workerId && e.AddressTypeId == employeeAddressType.AddressTypeId); if (employeesAddress == null) { return(NotFound()); } Address address = await database.Addresses.FirstAsync(a => a.Id == employeeAddressType.AddressId); if (address == null) { return(NotFound()); } database.EmployeesAddresses.Remove(employeesAddress); database.Addresses.Remove(address); await database.SaveChangesAsync(); return(StatusCode(HttpStatusCode.OK)); }