public async Task <D365ServiceResponse> GetClientUpcomingAppointments(string RecordId) { D365CrudService service = new D365CrudService(); QueryFilter filter = new QueryFilter(); filter.AddCriteria(D365Appointment.STATUS_FIELD, ComparisonOperators.Equal, D365Appointment.CONFIRMED_STATUS); filter.AddCriteria(D365Appointment.CLIENT_ID_FIELD, ComparisonOperators.Equal, RecordId); filter.AddCriteria(D365Appointment.START_DATE_FIELD, ComparisonOperators.GreaterThan, DateTime.Now.Date); RelatedEntity branch = new RelatedEntity() { IdField = D365Appointment.BRANCH_ID_FIELD, Fields = new SelectFieldsList(Branch.FIELDS) }; RelatedEntity advisor = new RelatedEntity() { IdField = D365Appointment.ADVISOR_ID_NAV_FIELD, Fields = new SelectFieldsList(SystemUser.FIELDS) }; RetreiveMultipleRequest request = new RetreiveMultipleRequest() { EntityName = D365Appointment.ENTITY_NAME, Fields = new SelectFieldsList(D365Appointment.FIELDS), Filter = filter, RelatedEntities = new RelatedEntity[2] { branch, advisor } }; D365ServiceResponse response = await service.RetreiveMultiple(request); return(response); }
public async Task <D365ServiceResponse> GetRecordById(RetreiveRequest Request) { if (Request != null) { string operation = $"{BaseServiceUrl}{Request.Operation}"; D365ServiceResponse response = await SendGetRequestAsync(operation); return(response); } return(null); }
public async Task <D365ServiceResponse> RetreiveMultiple(RetreiveMultipleRequest Request) { if (Request != null) { string operation = $"{BaseServiceUrl}{Request.Operation}"; System.Diagnostics.Debug.WriteLine(operation); D365ServiceResponse response = await SendGetRequestAsync(operation); return(response); } return(null); }
protected async Task <D365ServiceResponse> SendGetRequestAsync(string Operation) { HttpResponseMessage apiResponse = null; D365ServiceResponse response = null; try { string token = await KeyVault.Tokens.GetD365ServiceToken(); using (HttpClient httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri(KeyVault.Tokens.DynamicsSettings.ApiBaseUrl); httpClient.Timeout = new TimeSpan(0, 2, 0); httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0"); httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0"); httpClient.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); httpClient.DefaultRequestHeaders.Add("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\""); using (apiResponse = await httpClient.GetAsync(Operation)) { if (apiResponse.IsSuccessStatusCode) { string json = await apiResponse.Content.ReadAsStringAsync(); #if DEBUG System.Diagnostics.Debug.WriteLine(json); #endif response = new D365ServiceResponse(apiResponse, ServiceResult.Success, json); } else { string responseText = await apiResponse.Content.ReadAsStringAsync(); response = new D365ServiceResponse(apiResponse, ServiceResult.WebRequestError, responseText); } } } } catch (Exception ex) { string errorMessage = $"BaseD365Service.SendGetRequest() Error: {ex.Message}"; response = new D365ServiceResponse(ServiceResult.InternalError, errorMessage); } return(response); }
public async Task <D365ServiceResponse> GetAppointmentTypes() { //DataServiceResponse<List<EntityStatus>> response = await GetData<List<EntityStatus>>(SERVICE_URL); //if (response.Success) //{ // AppointmentTypes = response.Data; // return true; //} D365CrudService service = new D365CrudService(); QueryFilter filter = new QueryFilter(); filter.AddCriteria(AppointmentReason.STATE_FIELD, ComparisonOperators.Equal, 1); RetreiveMultipleRequest request = new RetreiveMultipleRequest() { EntityName = AppointmentReason.ENTITY_NAME, Filter = filter, Fields = new SelectFieldsList(AppointmentReason.FIELDS) }; D365ServiceResponse response = await service.RetreiveMultiple(request); return(response); }
public async Task <D365ServiceResponse> GetClientByClientNumber(string ClientNumber) { D365CrudService service = new D365CrudService(); RelatedEntity relatedBranch = new RelatedEntity() { IdField = Client.BRANCH_ID_FIELD, Fields = new SelectFieldsList(Branch.FIELDS) }; RetreiveRequest request = new RetreiveRequest() { EntityName = Client.ENTITY_NAME, Fields = new SelectFieldsList(Client.FIELDS), IsAlternateKey = true, IdValue = ClientNumber, KeyFieldName = Client.ALT_KEY, RelatedEntities = new RelatedEntity[1] { relatedBranch } }; D365ServiceResponse response = await service.GetRecordById(request); return(response); }