コード例 #1
0
        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);
        }
コード例 #2
0
        public async Task <D365ServiceResponse> GetRecordById(RetreiveRequest Request)
        {
            if (Request != null)
            {
                string operation             = $"{BaseServiceUrl}{Request.Operation}";
                D365ServiceResponse response = await SendGetRequestAsync(operation);

                return(response);
            }
            return(null);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }