/// <summary> /// /// </summary> /// <exception cref="IO.Swagger.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="body"> (optional)</param> /// <returns>ApiResponse of Object(void)</returns> public ApiResponse <Object> ApiTenantPostWithHttpInfo(CompleteTenantEvictionInfo body = null) { var localVarPath = "/api/Tenant"; var localVarPathParams = new Dictionary <String, String>(); var localVarQueryParams = new List <KeyValuePair <String, String> >(); var localVarHeaderParams = new Dictionary <String, String>(this.Configuration.DefaultHeader); var localVarFormParams = new Dictionary <String, String>(); var localVarFileParams = new Dictionary <String, FileParameter>(); Object localVarPostBody = null; // to determine the Content-Type header String[] localVarHttpContentTypes = new String[] { "application/json-patch+json", "application/json", "text/json", "application/_*+json" }; String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); // to determine the Accept header String[] localVarHttpHeaderAccepts = new String[] { }; String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); if (localVarHttpHeaderAccept != null) { localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); } if (body != null && body.GetType() != typeof(byte[])) { localVarPostBody = this.Configuration.ApiClient.Serialize(body); // http body (model) parameter } else { localVarPostBody = body; // byte array } // make the HTTP request IRestResponse localVarResponse = (IRestResponse)this.Configuration.ApiClient.CallApi(localVarPath, Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarPathParams, localVarHttpContentType); int localVarStatusCode = (int)localVarResponse.StatusCode; if (ExceptionFactory != null) { Exception exception = ExceptionFactory("ApiTenantPost", localVarResponse); if (exception != null) { throw exception; } } return(new ApiResponse <Object>(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Name, x => string.Join(",", x.Value)), null)); }
/// <summary> /// /// </summary> /// <exception cref="IO.Swagger.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="body"> (optional)</param> /// <returns>Task of void</returns> public async System.Threading.Tasks.Task ApiTenantPostAsync(CompleteTenantEvictionInfo body = null) { await ApiTenantPostAsyncWithHttpInfo(body); }
/// <summary> /// /// </summary> /// <exception cref="IO.Swagger.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="body"> (optional)</param> /// <returns></returns> public void ApiTenantPost(CompleteTenantEvictionInfo body = null) { ApiTenantPostWithHttpInfo(body); }
public async Task NewTenantAsync([FromBody] CompleteTenantEvictionInfo info) { TenantInfo tenantInfo = info.TenantInfo; AddressInfo addressInfo = info.AddressInfo; EvictionInfo evictionInfo = info.EvictionInfo; PreparerInfo preparerInfo = info.PreparerInfo; // Null-check for all required fields if (tenantInfo == null || addressInfo == null || evictionInfo == null) { // don't insert anything } if (tenantInfo.Name == null || tenantInfo.Email == null || addressInfo.StreetAddress == null || addressInfo.City == null || addressInfo.County == null || addressInfo.ZipCode == 0 || evictionInfo.DateOfEviction == null) { // don't insert anything } try { _dbContext.DBTenantInfo.Add(tenantInfo); await _dbContext.SaveChangesAsync(); } // the only exception we should be getting here is the duplicate insertion - on which we just swallow the exception // we take care of the nulls above // rest we assume that the data is in correct format catch (Exception) { // swallow it } try { if (addressInfo.Latitude != 0.0D && addressInfo.Longitude != 0.0D) { string key = "keygoeshere"; string address = addressInfo.StreetAddress + addressInfo.City + addressInfo.ZipCode; Uri geoReqUri = new Uri(string.Format("http://dev.virtualearth.net/REST/v1/Locations?q={0}&key={1}", address, key)); var client = new HttpClient(); var responseTask = await client.GetAsync(geoReqUri); string responseString = await responseTask.Content.ReadAsStringAsync(); var coordinates = JObject.Parse(responseString)["resourceSets"][0]["resources"][0]["point"]["coordinates"].Children().ToList(); addressInfo.Latitude = coordinates[0].ToObject <double>(); addressInfo.Longitude = coordinates[1].ToObject <double>(); } _dbContext.DBAddressInfo.Add(addressInfo); await _dbContext.SaveChangesAsync(); } catch (Exception) { } // Get TenantId and AddressId var tenantId = _dbContext.DBTenantInfo .Where(t => t.Name == tenantInfo.Name && t.Email == tenantInfo.Email) .Select(t => t.Id) .FirstOrDefault(); var addressId = _dbContext.DBAddressInfo .Where(a => a.StreetAddress == addressInfo.StreetAddress && a.ZipCode == addressInfo.ZipCode) .Select(a => a.Id) .FirstOrDefault(); evictionInfo.AddressId = addressId; evictionInfo.TenantId = tenantId; if (preparerInfo != null && preparerInfo.Name != null && preparerInfo.Organization != null) { try { _dbContext.DBPreparerInfo.Add(preparerInfo); await _dbContext.SaveChangesAsync(); var preparerId = _dbContext.DBPreparerInfo .Where(p => p.Name == preparerInfo.Name && p.Organization == preparerInfo.Organization) .Select(p => p.Id) .FirstOrDefault(); evictionInfo.PreparerId = preparerInfo.Id; } catch (Exception) { } } try { _dbContext.DBEvictionInfo.Add(evictionInfo); await _dbContext.SaveChangesAsync(); } catch (Exception) { } }