예제 #1
0
        internal async Task <bool> CreateCourseEnrollmentAsync(string accountFromHeader, IEnumerable <CourseEnrollment> courseEnrollments)
        {
            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                var cEnrollments = courseEnrollments;
                var genericServiceClientHelper = new GenericServiceClientHelper <CourseEnrollments_ServiceClient, CourseEnrollments_Service>(Credentials, AppSettings);
                var service = genericServiceClientHelper.GetServiceClient();

                var navCourseEnrollments = new CourseEnrollments {
                    CourseEnrollment = courseEnrollments.ToArray()
                };

                CourseEnrollmentsRequest request = new CourseEnrollmentsRequest(navCourseEnrollments);
                var response = service.CourseEnrollmentsAsync(request);
                await service.CloseAsync();

                return(true);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in CreateCourseEnrollment(): {exception.Message}");
            }
        }
예제 #2
0
        /* #TAG:CoreDocs */
        public async Task <IEnumerable <CourseHeader> > GetCourseHeadersMDAsync(string accountFromHeader, CourseHeader_Filter[] filter, string bookmarkKey)
        {
            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                #region usingGenerics
                //Client must gå through GenericServiceHelper.GetClient() to get credentials and environment ApimUrl. To Test.
                var genericServiceClientHelper = new GenericServiceClientHelper <CourseHeader_ServiceClient, CourseHeader_Service>(Credentials, AppSettings); //Generic non static Class
                var service = genericServiceClientHelper.GetServiceClient();
                #endregion

                const int fetchSize = 100;


                var response = await service.ReadMultipleAsync(filter, bookmarkKey, fetchSize);

                var results = response.ReadMultiple_Result;

                BookMark = (results.Count() >= fetchSize) ? results.Last().Key : string.Empty;

                await service.CloseAsync();

                return(results);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in GetCourseHeaders(): {exception.Message}");
            }
        }
        //public async Task<IEnumerable<TN_CourseParticipant>> GetTN_CourseParticipantsAsync(string accountFromHeader, int size = 0)
        //{
        //    return await GetTN_CourseParticipantByIdAsync(accountFromHeader, "");
        //}

        /// <summary>
        /// Get TN_CourseParticipants with details from Navision, using TN_CourseParticipant_Filter.
        /// </summary>
        /// <param name="filter">An instance of SalaryTeacherSpec_Filter.</param>
        /// <param name="size">Maximum returned records. 0 returns all records. [Optional]</param>
        /// <returns></returns>
        public async Task <IEnumerable <TN_CourseParticipant> > GetTN_CourseParticipantsAsync(string accountFromHeader, TN_CourseParticipant_Filter[] filter, int size = 0)
        {
            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                //var service = ServiceClientHelper.CourseHeaderServiceClient(accountKey, subscriptionKey, appSettings);//Original

                #region usingGenerics
                //Client must gå through GenericServiceHelper.GetClient() to get credentials and environment ApimUrl. To Test.
                var genericServiceClientHelper = new GenericServiceClientHelper <TN_CourseParticipant_ServiceClient, TN_CourseParticipant_Service>(Credentials, AppSettings); //Generic non static Class
                var service = genericServiceClientHelper.GetServiceClient();
                #endregion

                var response = await service.ReadMultipleAsync(filter, "", size);

                await service.CloseAsync();

                return(response.ReadMultiple_Result.ToList());
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in GetTN_CourseParticipant(): {exception.Message}");
            }
        }
예제 #4
0
        internal async Task <ReservationResult> ReserveCourseEnrollmentAsync(string accountFromHeader, string portalOrderID, string courseHeaderID, int portalQuantity)
        {
            try
            {
                UseAccountFromHeader(accountFromHeader);

                var result = new ReservationResult()
                {
                    PortalOrderID  = portalOrderID,
                    CourseHeaderID = courseHeaderID,
                    PortalQuantity = portalQuantity
                };

                string   backendReservationID = string.Empty;
                DateTime reservationTimeout   = DateTime.MinValue;
                //participantID = participantID ?? string.Empty;

                var genericServiceClientHelper = new GenericServiceClientHelper <WebshopBasketManagement_ServiceClient, WebshopBasketManagement_Service>(Credentials, AppSettings);
                var service  = genericServiceClientHelper.GetServiceClient();
                var response = await service.ReserveCourseEnrollmentAsync(portalOrderID, courseHeaderID, string.Empty, backendReservationID, reservationTimeout, portalQuantity);

                result.ReturnResult         = response.Body.return_value;
                result.BackendReservationID = response.Body.backendReservationID;
                result.ReservationTimeout   = response.Body.reservationTimeout;
                await service.CloseAsync();

                return(result);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in ReserveCourseEnrollment(): {exception.Message}");
            }
        }
        internal async Task <string> GetTeacherReportAsync(string accountFromHeader, string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                return(null);
            }

            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                var genericServiceClientHelper = new GenericServiceClientHelper <CourseTeacherReport_ServiceClient, CourseTeacherReport_Service>(Credentials, AppSettings);
                var service  = genericServiceClientHelper.GetServiceClient();
                var request  = new GenTeacherReportRequest(key, 1, string.Empty);
                var response = await service.GenTeacherReportAsync(request);

                await service.CloseAsync();

                return(response.bin64String);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in GetTeacherReportAsync(): {exception.Message}");
            }
        }
예제 #6
0
        public async Task <TestResult> TestCourseHeaderAsync(string accountFromHeader, int fetchSize, int size)
        {
            var serviceName          = "CourseHeader";
            List <CourseHeader> list = new List <CourseHeader>();

            try
            {
                var filter = new CourseHeader_Filter()
                {
                    Field = CourseHeader_Fields.No, Criteria = ""
                };
                var filters = new CourseHeader_Filter[] { filter };
                Credentials.AccountKey = accountFromHeader;

                #region usingGenerics
                //Client must gå through GenericServiceHelper.GetClient() to get credentials and environment ApimUrl. To Test.
                var genericServiceClientHelper = new GenericServiceClientHelper <CourseHeader_ServiceClient, CourseHeader_Service>(Credentials, AppSettings); //Generic non static Class
                var service = genericServiceClientHelper.GetServiceClient();
                #endregion

                string bookmarkKey = null;

                var watch = new Stopwatch();
                watch.Start();
                var response = await service.ReadMultipleAsync(filters, bookmarkKey, fetchSize);

                var results          = response.ReadMultiple_Result;
                var numberOfRequests = 0;
                while (results.Length > 0)
                {
                    bookmarkKey = results.Last().Key;
                    list.AddRange(results);
                    numberOfRequests++;
                    if (results.Length >= fetchSize && fetchSize != 0 && list.Count < size)
                    {
                        response = await service.ReadMultipleAsync(filters, bookmarkKey, fetchSize);

                        results = response.ReadMultiple_Result;
                    }
                    else
                    {
                        break;
                    }
                }
                await service.CloseAsync();

                watch.Stop();
                TestResult testResult = CreateTestResults(accountFromHeader, fetchSize, serviceName, list.Count, watch, numberOfRequests);

                return(testResult);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in Test{serviceName}Async(): {exception.Message}");
            }
        }
예제 #7
0
        public async Task <IEnumerable <CourseHeader> > GetCourseHeadersAsync(string accountFromHeader, CourseHeader_Filter[] filter, int size = 0)
        {
            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                //var service = ServiceClientHelper.CourseHeaderServiceClient(accountKey, subscriptionKey, appSettings);//Original

                #region usingGenerics
                //Client must gå through GenericServiceHelper.GetClient() to get credentials and environment ApimUrl. To Test.
                var genericServiceClientHelper = new GenericServiceClientHelper <CourseHeader_ServiceClient, CourseHeader_Service>(Credentials, AppSettings); //Generic non static Class
                var service = genericServiceClientHelper.GetServiceClient();
                #endregion

                const int fetchSize   = 1000;
                string    bookmarkKey = null;

                List <CourseHeader> list = new List <CourseHeader>();

                var response = await service.ReadMultipleAsync(filter, bookmarkKey, fetchSize);

                var results = response.ReadMultiple_Result;
                while (results.Length > 0)
                {
                    bookmarkKey = results.Last().Key;
                    list.AddRange(results);
                    if (results.Length >= fetchSize && fetchSize != 0)
                    {
                        response = await service.ReadMultipleAsync(filter, bookmarkKey, fetchSize);

                        results = response.ReadMultiple_Result;
                    }
                    else
                    {
                        break;
                    }
                }
                await service.CloseAsync();


                CourseDepartmentsCodes = list.AsParallel().Select(c => c.CourseDepartment).Distinct();//Effect??

                return(list);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in GetCourseHeaders(): {exception.Message}");
            }
        }
예제 #8
0
        internal async Task <bool> RemoveReservationAsync(string accountFromHeader, string portalOrderID, string backendReservationID)
        {
            try
            {
                UseAccountFromHeader(accountFromHeader);

                var genericServiceClientHelper = new GenericServiceClientHelper <WebshopBasketManagement_ServiceClient, WebshopBasketManagement_Service>(Credentials, AppSettings);
                var service = genericServiceClientHelper.GetServiceClient();
                var result  = await service.RemoveReservationAsync(portalOrderID, backendReservationID);

                await service.CloseAsync();

                return(result.return_value);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in RemoveReservation(): {exception.Message}");
            }
        }
        internal async Task <IEnumerable <CourseCategory> > GetCourseCategoryAsync(string accountFromHeader, CourseCategory_Filter[] filter, int size)
        {
            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                var genericServiceClientHelper = new GenericServiceClientHelper <CourseCategory_ServiceClient, CourseCategory_Service>(Credentials, AppSettings);
                var service = genericServiceClientHelper.GetServiceClient();

                var response = await service.ReadMultipleAsync(filter, "", size);

                await service.CloseAsync();

                return(response.ReadMultiple_Result.ToList());
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in GetCourseCategoryAsync(): {exception.Message}");
            }
        }
        internal async Task <TN_TeacherUpdate> InternalUpdateTeacherAsync(string accountFromHeader, TN_TeacherUpdate input)
        {
            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                var genericServiceClientHelper = new GenericServiceClientHelper <TN_TeacherUpdate_ServiceClient, TN_TeacherUpdate_Service>(Credentials, AppSettings);
                var service       = genericServiceClientHelper.GetServiceClient();
                var updateRequest = new UpdateRequest(input);
                var response      = await service.UpdateAsync(updateRequest);

                await service.CloseAsync();

                return(response.TN_TeacherUpdate);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in GetTN_TeacherUpdatesAsync(): {exception.Message}");
            }
        }
예제 #11
0
        internal async Task <CompaniesResponse> GetIntCompaniesAsync(string accountFromHeader)
        {
            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                var genericServiceClientHelper = new GenericServiceClientHelper <SystemService_ServiceClient, SystemService_Service>(Credentials, AppSettings);
                var service = genericServiceClientHelper.GetServiceClient();

                var response = await service.CompaniesAsync();

                await service.CloseAsync();

                return(response);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in GetCompagniesAsync(): {exception.Message}");
            }
        }
        internal async Task <SalarySettleResponse> CreateAccountTransactionAsync(string accountFromHeader, SalarySettleRequest request)
        {
            try
            {
                //Workaround: AccountKey in Credentials must be provided as a request header.
                Credentials.AccountKey = accountFromHeader;

                var genericServiceClientHelper = new GenericServiceClientHelper <SalarySettlement_ServiceClient, SalarySettlement_Service>(Credentials, AppSettings);
                var service = genericServiceClientHelper.GetServiceClient();
                service.Endpoint.Binding.SendTimeout = new TimeSpan(0, 10, 0);
                var response = await service.SalarySettleAsync(request);

                await service.CloseAsync();

                return(response);
            }
            catch (Exception exception)
            {
                throw new Exception($"Error in CreateAccountTransaction(): {exception.Message}");
            }
        }
예제 #13
0
        public static async Task <IEnumerable <courseLocationList> > GetCourseLocationList(AppSettings appSettings, courseLocationList_Filter[] filter, string subscriptionKey, string accountKey, int size = 0)
        {
            try
            {
                //var service = ServiceClientHelper.CourseLocationListServiceClient(accountKey, subscriptionKey, appSettings);//Original

                #region usingGenerics
                //Client must gå through GenericServiceHelper.GetClient() to get credentials and environment ApimUrl. To Test.
                var genericServiceClientHelper = new GenericServiceClientHelper <CourseLocationList_ServiceClient, CourseLocationList_Service>(); //Generic non static Class
                var service = genericServiceClientHelper.GetServiceClient(accountKey, subscriptionKey, appSettings);
                #endregion

                var response = service.ReadMultipleAsync(filter, "", size).Result;
                await service.CloseAsync();

                return(response.ReadMultiple_Result.ToList());
            }
            catch (Exception exception)
            {
                throw new Exception("Fejl i async Task", exception);
            }
        }