/// <summary>
        /// Approval/Denial request.
        /// </summary>
        /// <param name="queryDateSpan">The queryDateSpan string.</param>
        /// <param name="personNumber">The Kronos Person Number.</param>
        /// <param name="approved">Whether the request needs to be approved or denied.</param>
        /// <param name="id">The Kronos id of the request.</param>
        /// <returns>XML request string.</returns>
        private string CreateApprovalRequest(
            string queryDateSpan,
            string personNumber,
            bool approved,
            string id)
        {
            var request =
                new RequestManagementSwap.Request
            {
                Action      = approved ? ApiConstants.ApproveRequests : ApiConstants.RefuseRequests,
                RequestMgmt = new RequestManagementSwap.RequestMgmt
                {
                    Employees = new RequestManagementSwap.Employee
                    {
                        PersonIdentity = new RequestManagementSwap.PersonIdentity
                        {
                            PersonNumber = personNumber,
                        },
                    },
                    QueryDateSpan = queryDateSpan,
                    RequestIds    = new RequestManagementSwap.RequestIds
                    {
                        RequestId = new RequestManagementSwap.RequestId[1]
                        {
                            new RequestManagementSwap.RequestId()
                            {
                                Id = id
                            },
                        },
                    },
                },
            };

            return(request.XmlSerialize());
        }
        /// <summary>
        /// This method creates the approval request.
        /// </summary>
        /// <param name="personNumber">The Kronos Person Number.</param>
        /// <param name="reqId">The SwapShift Request ID.</param>
        /// <param name="status">The incoming status.</param>
        /// <param name="querySpan">The query date span.</param>
        /// <param name="comment">The comment to apply if applicable.</param>
        /// <returns>A string that represents the request XML.</returns>
        private string CreateApprovalRequest(
            string personNumber,
            string reqId,
            string status,
            string querySpan,
            string comment)
        {
            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateApprovalRequest starts at: {DateTime.UtcNow.ToString("O", CultureInfo.InvariantCulture)}");

            RequestManagementSwap.Request rq = new RequestManagementSwap.Request()
            {
                Action      = ApiConstants.UpdateStatus,
                RequestMgmt = new RequestManagementSwap.RequestMgmt()
                {
                    Employees = new RequestManagementSwap.Employee()
                    {
                        PersonIdentity = new RequestManagementSwap.PersonIdentity()
                        {
                            PersonNumber = personNumber,
                        },
                    },
                    QueryDateSpan        = querySpan,
                    RequestStatusChanges = new RequestManagementSwap.RequestStatusChanges(),
                },
            };

            rq.RequestMgmt.RequestStatusChanges.RequestStatusChange = new RequestManagementSwap.RequestStatusChange[]
            {
                new RequestManagementSwap.RequestStatusChange
                {
                    Comments = comment == null ? null : new Comments
                    {
                        Comment = new List <Comment>
                        {
                            new Comment
                            {
                                CommentText = ApiConstants.SwapShiftComment,
                                Notes       = new Notes
                                {
                                    Note = new List <Note>
                                    {
                                        new Note
                                        {
                                            Text = comment,
                                        },
                                    },
                                },
                            },
                        },
                    },
                    RequestId    = reqId,
                    ToStatusName = status,
                },
            };

            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateApprovalRequest: {rq.XmlSerialize().ToString(CultureInfo.InvariantCulture)}");
            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateApprovalRequest starts at: {DateTime.UtcNow.ToString("O", CultureInfo.InvariantCulture)}");
            return(rq.XmlSerialize());
        }
Ejemplo n.º 3
0
        /// <summary>
        /// The method to create a SwapShift request in a offered state.
        /// </summary>
        /// <param name="personNumber">The Kronos personNumber.</param>
        /// <param name="reqId">The reqId of swap shift request.</param>
        /// <param name="querySpan">The querySpan.</param>
        /// <param name="comment">The comment for request.</param>
        /// <returns>Request to send to Kronos.</returns>
        private string CreateSwapShiftSubmitRequest(
            string personNumber,
            string reqId,
            string querySpan,
            string comment)
        {
            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateSwapShiftSubmitRequest starts: {DateTime.UtcNow.ToString("O", CultureInfo.InvariantCulture)}");

            RequestManagementSwap.Request rq = new RequestManagementSwap.Request()
            {
                Action      = ApiConstants.UpdateStatus,
                RequestMgmt = new RequestManagementSwap.RequestMgmt()
                {
                    Employees = new RequestManagementSwap.Employee()
                    {
                        PersonIdentity = new RequestManagementSwap.PersonIdentity()
                        {
                            PersonNumber = personNumber,
                        },
                    },
                    QueryDateSpan        = querySpan,
                    RequestStatusChanges = new RequestManagementSwap.RequestStatusChanges(),
                },
            };

            rq.RequestMgmt.RequestStatusChanges.RequestStatusChange = new RequestManagementSwap.RequestStatusChange[]
            {
                new RequestManagementSwap.RequestStatusChange
                {
                    Comments = comment == null ? null : new Comments()
                    {
                        Comment = new Comment[]
                        {
                            new Comment
                            {
                                CommentText = ApiConstants.SwapShiftComment,
                                Notes       = new Notes
                                {
                                    Note = new Note
                                    {
#pragma warning disable CA1303 // Do not pass literals as localized parameters
                                        Text = ApiConstants.SwapShiftNoteText,
#pragma warning restore CA1303 // Do not pass literals as localized parameters
                                    },
                                },
                            },
                        },
                    },
                    RequestId    = reqId,
                    ToStatusName = ApiConstants.Offered,
                },
            };

            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateSwapShiftSubmitRequest: {rq.XmlSerialize().ToString(CultureInfo.InvariantCulture)}");
            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateSwapShiftSubmitRequest ends: {DateTime.UtcNow.ToString("O", CultureInfo.InvariantCulture)}");

            return(rq.XmlSerialize());
        }
        /// <summary>
        /// The method to create a SwapShift request in a offered state.
        /// </summary>
        /// <param name="personNumber">The Kronos personNumber.</param>
        /// <param name="reqId">The reqId of swap shift request.</param>
        /// <param name="querySpan">The querySpan.</param>
        /// <returns>Request to send to Kronos.</returns>
        private string CreateSwapShiftSubmitRequest(string personNumber, string reqId, string querySpan)
        {
            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateSwapShiftSubmitRequest starts: {DateTime.UtcNow.ToString("O", CultureInfo.InvariantCulture)}");

            RequestManagementSwap.Request rq = new RequestManagementSwap.Request()
            {
                Action      = ApiConstants.UpdateStatus,
                RequestMgmt = new RequestManagementSwap.RequestMgmt()
                {
                    Employees = new RequestManagementSwap.Employee()
                    {
                        PersonIdentity = new RequestManagementSwap.PersonIdentity()
                        {
                            PersonNumber = personNumber,
                        },
                    },
                    QueryDateSpan        = querySpan,
                    RequestStatusChanges = new RequestManagementSwap.RequestStatusChanges()
                    {
                        RequestStatusChange = new RequestManagementSwap.RequestStatusChange[]
                        {
                            new RequestManagementSwap.RequestStatusChange
                            {
                                RequestId    = reqId,
                                ToStatusName = ApiConstants.Offered,
                            },
                        },
                    },
                },
            };

            var request = rq.XmlSerialize();

            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateSwapShiftSubmitRequest: {request.ToString(CultureInfo.InvariantCulture)}");
            this.telemetryClient.TrackTrace($"SwapShiftActivity - CreateSwapShiftSubmitRequest ends: {DateTime.UtcNow.ToString("O", CultureInfo.InvariantCulture)}");
            return(request);
        }