Beispiel #1
0
        /// <summary>
        /// logon super user method.
        /// </summary>
        /// <param name="tenantId">tenant Id.</param>
        /// <returns>Task.</returns>
        public async Task <Response> LogonSuperUser(string tenantId)
        {
            try
            {
                TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

                User user = new User();
                user.TenantId = tenantId;

                if (tenantMapEntity?.SuperUserName != null && tenantMapEntity?.SuperUserPwd != null)
                {
                    user.UserName = EncryptDecrypt.Decrypt256(tenantMapEntity.SuperUserName);
                    user.Password = EncryptDecrypt.Decrypt256(tenantMapEntity.SuperUserPwd);
                }

                string xmlLoginRequest = this.CreateLogOnRequest(user);

                var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlLoginRequest, ApiConstants.SoapEnvClose, string.Empty);

                Response logonResponse = this.ProcessResponse(tupleResponse.Item1);
                logonResponse.Jsession = tupleResponse.Item2;

                return(logonResponse);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Loads all work rules
        /// </summary>
        /// <param name="tenantId">Tenant ID</param>
        /// <param name="jSession">J Session</param>
        /// <param name="personNumber">Person Number</param>
        /// <returns>Work rules response</returns>
        public async Task <workRuleRes.Response> LoadAllWorkRules(string tenantId, string jSession, string personNumber)
        {
            string          xmlScheduleRequest = this.CreateWorkRuleRequest(personNumber);
            TenantMapEntity tenantMapEntity    = await this._azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlScheduleRequest, ApiConstants.SoapEnvClose, jSession);

            workRuleRes.Response addPunchResponse = this.WorkRuleProcessResponse(tupleResponse.Item1);
            return(addPunchResponse);
        }
Beispiel #3
0
        /// <summary>
        /// Add Punch
        /// </summary>
        /// <param name="tenantId">Tenant ID</param>
        /// <param name="jSession">J Session</param>
        /// <param name="personNumber">Person number</param>
        /// <param name="localTimestamp">Local Timestamp</param>
        /// <param name="workRuleName">Workrule name</param>
        /// <returns>punch response</returns>
        public async Task <addRes.Response> AddPunch(string tenantId, string jSession, string personNumber, DateTimeOffset?localTimestamp, string workRuleName = "")
        {
            string          xmlScheduleRequest = this.CreatePunchRequest(personNumber, localTimestamp, workRuleName);
            TenantMapEntity tenantMapEntity    = await this._azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlScheduleRequest, ApiConstants.SoapEnvClose, jSession);

            addRes.Response addPunchResponse = this.AddPunchProcessResponse(tupleResponse.Item1);
            return(addPunchResponse);
        }
Beispiel #4
0
        public async Task <SwapShiftResponse.Response> SubmitApproval(string tenantId, string jSession, string reqId, string personNumber, string status, string querySpan, string comment, string note)
        {
            string          xmlRequest      = CreateApprovalRequest(personNumber, reqId, status, querySpan, comment, note);
            TenantMapEntity tenantMapEntity = await azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlRequest, ApiConstants.SoapEnvClose, jSession);

            SwapShiftResponse.Response timeOffResponse = ProcessSwapShiftResponse(tupleResponse.Item1);

            return(timeOffResponse);
        }
Beispiel #5
0
        /// <summary>
        /// Get list of comments to which note going to be attached.
        /// </summary>
        /// <param name="tenantId">Tenant Id.</param>
        /// <param name="jSession">JSession Id of superuser.</param>
        /// <returns>Task.</returns>
        public async Task <Response.Response> GetComments(string tenantId, string jSession)
        {
            string          xmlRequest      = this.CreateRequest();
            TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlRequest, ApiConstants.SoapEnvClose, jSession);

            Response.Response res = this.ProcessResponse(tupleResponse.Item1);

            return(res);
        }
Beispiel #6
0
        /// <summary>
        /// Gets person information
        /// </summary>
        /// <param name="tenantId">Tenant ID</param>
        /// <param name="jSession">J Session</param>
        /// <param name="personNumber">Person Number</param>
        /// <returns>Person information response</returns>
        public async Task <Response> GetPersonInformation(string tenantId, string jSession, string personNumber)
        {
            string          xmlScheduleRequest = this.GetPersonInformationRequest(personNumber);
            TenantMapEntity tenantMapEntity    = await this._azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlScheduleRequest, ApiConstants.SoapEnvClose, jSession);

            Response getPersonInformationResponse = this.GetResponse(tupleResponse.Item1);

            return(getPersonInformationResponse);
        }
        /// <summary>
        /// Get list of time off requested for employees.
        /// </summary>
        /// <param name="tenantId">Tenant Id.</param>
        /// <param name="jSession">jSessionID.</param>
        /// <param name="startDate">Start date.</param>
        /// <param name="endDate">End date.</param>
        /// <param name="employees">List of employees.</param>
        /// <returns>Task.</returns>
        public async Task <TimeOffResponse.Response> GetTimeOffRequest(string tenantId, string jSession, string startDate, string endDate, List <HyperfindResponse.ResponseHyperFindResult> employees)
        {
            string          xmlTimeOffRequest = this.CreateRequest(employees, startDate, endDate);
            TenantMapEntity tenantMapEntity   = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlTimeOffRequest, ApiConstants.SoapEnvClose, jSession);

            TimeOffResponse.Response timeOffResponse = this.ProcessResponse(tupleResponse.Item1);

            return(timeOffResponse);
        }
Beispiel #8
0
        /// <summary>
        /// Gets all home employees
        /// </summary>
        /// <param name="tenantId">Tenant ID</param>
        /// <param name="jSession">J Session</param>
        /// <param name="startDate">Start Date</param>
        /// <param name="endDate">End Date</param>
        /// <returns>All home employees response</returns>
        public async Task <Response> GetHyperFindQueryValues(string tenantId, string jSession, string startDate, string endDate, string hyperFindQueryName, string visibilityCode)
        {
            string          hyperFindRequest = this.CreateHyperFindRequest(startDate, endDate, hyperFindQueryName, visibilityCode);
            TenantMapEntity tenantMapEntity  = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, hyperFindRequest, ApiConstants.SoapEnvClose, jSession);

            Response hyperFindResponse = this.ProcessResponse(tupleResponse.Item1);

            return(hyperFindResponse);
        }
        /// <summary>
        /// Submit time of request which is in draft.
        /// </summary>
        /// <param name="tenantId">Tenant ID.</param>
        /// <param name="jSession">jSession object.</param>
        /// <param name="personNumber">Person number.</param>
        /// <param name="reqId">RequestId of the time off request.</param>
        /// <param name="querySpan">Query Span.</param>
        /// <returns>Time of submit response.</returns>
        public async Task <TimeOffSubmitResponse.Response> SubmitTimeOffRequest(string tenantId, string jSession, string personNumber, string reqId, string querySpan)
        {
            string          xmlTimeOffRequest = this.CreateSubmitTimeOffRequest(personNumber, reqId, querySpan);
            TenantMapEntity tenantMapEntity   = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlTimeOffRequest, ApiConstants.SoapEnvClose, jSession);

            TimeOffSubmitResponse.Response timeOffSubmitResponse = this.ProcessSubmitResponse(tupleResponse.Item1);

            return(timeOffSubmitResponse);
        }
Beispiel #10
0
        /// <summary>
        /// Shows schedule
        /// </summary>
        /// <param name="tenantId">Tenant ID</param>
        /// <param name="jSession">jSession object</param>
        /// <param name="startDate">Start Date</param>
        /// <param name="endDate">End Date</param>
        /// <param name="personNumber">Person Number</param>
        /// <returns>Schedule response</returns>
        public async Task <Response> ShowSchedule(string tenantId, string jSession, string startDate, string endDate, string personNumber)
        {
            string          xmlScheduleRequest = this.CreateScheduleRequest(startDate, endDate, personNumber);
            TenantMapEntity tenantMapEntity    = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlScheduleRequest, ApiConstants.SoapEnvClose, jSession);

            Response scheduleResponse = this.ProcessResponse(tupleResponse.Item1);

            scheduleResponse.Jsession = tupleResponse.Item2;
            return(scheduleResponse);
        }
        /// <summary>
        /// Shows hours worked
        /// </summary>
        /// <param name="tenantId">Tensnt ID</param>
        /// <param name="response">Takes Response</param>
        /// <param name="startDate">Start Date</param>
        /// <param name="endDate">End Date</param>
        /// <param name="payPeriodMonthly">Monthly Pay period</param>
        /// <returns> Shows hours worked response</returns>
        public async Task <Response> ShowHoursWorked(string tenantId, LoginResponse response, string startDate, string endDate, string personNumber = "")
        {
            if (string.IsNullOrEmpty(personNumber))
            {
                personNumber = response.PersonNumber;
            }

            string          xmlScheduleRequest = this.ShowHoursWorkedRequest(personNumber, startDate, endDate);
            TenantMapEntity tenantMapEntity    = await this._azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlScheduleRequest, ApiConstants.SoapEnvClose, response.JsessionID);

            Response addPunchResponse = this.ShowHoursWorkedProcessResponse(tupleResponse.Item1);

            return(addPunchResponse);
        }
Beispiel #12
0
        /// <summary>
        /// Install method.
        /// </summary>
        /// <param name="tennantId">Tenant ID.</param>
        /// <returns>Install response.</returns>
        public async Task <Response> Install(string tennantId)
        {
            Response installResponse = new Response();

            TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tennantId);

            if (tenantMapEntity != null)
            {
                installResponse.Message = tenantMapEntity.EndpointUrl;
            }
            else
            {
                installResponse.ErrorCode = "404";
            }

            return(installResponse);
        }
Beispiel #13
0
        public async Task <SwapShiftResponse.Response> SubmitSwapShift(string tenantId, string jSession, string personNumber, string reqId, string querySpan, string comment)
        {
            try
            {
                string          xmlRequest      = CreateSwapShiftSubmitRequest(personNumber, reqId, querySpan, comment);
                TenantMapEntity tenantMapEntity = await azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

                var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlRequest, ApiConstants.SoapEnvClose, jSession);

                SwapShiftResponse.Response Response = ProcessSwapShiftDraftResponse(tupleResponse.Item1);
                return(Response);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #14
0
        /// <summary>
        /// This method calls the logOn api to log the user to kronos.
        /// </summary>
        /// <param name="user">user request object.</param>
        /// <returns>Response object.</returns>
        public async Task <Response> Logon(User user)
        {
            try
            {
                string          xmlLoginRequest = this.CreateLogOnRequest(user);
                TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, user.TenantId);

                var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlLoginRequest, ApiConstants.SoapEnvClose, string.Empty);

                Response logonResponse = this.ProcessResponse(tupleResponse.Item1);
                logonResponse.Jsession = tupleResponse.Item2;
                return(logonResponse);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Beispiel #15
0
        public async Task <Models.ResponseEntities.PersonInformation.Response> GetPersonInformation(string tenantId, string superuserJSession, string PersonNumber)
        {
            try
            {
                string          xmlJobAssignReq = this.CreatePIRequest(PersonNumber);
                TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

                var tupleJobAssignResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlJobAssignReq, ApiConstants.SoapEnvClose, superuserJSession);

                Models.ResponseEntities.PersonInformation.Response response = this.ProcessPIResponse(tupleJobAssignResponse.Item1);

                return(response);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        /// <summary>
        /// Get Job Assignments
        /// </summary>
        /// <param name="personNumber">Person Number</param>
        /// <param name="tenantId">Tenant ID</param>
        /// <param name="jSession">J Session</param>
        /// <returns>Job Assignment response</returns>
        public async Task <Models.ResponseEntities.JobAssignment.Response> getJobAssignment(string personNumber, string tenantId, string jSession)
        {
            try
            {
                string          xmlJobAssignReq = this.CreateJobAssignRequest(personNumber);
                TenantMapEntity tenantMapEntity = await azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

                var tupleJobAssignResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlJobAssignReq, ApiConstants.SoapEnvClose, jSession);

                Models.ResponseEntities.JobAssignment.Response response = this.ProcessJobAssignResponse(tupleJobAssignResponse.Item1);

                return(response);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #17
0
        public async Task <SubTypeParams.Response> GetRequestSubTypeParams(string tenantId, string jSession)
        {
            try
            {
                string          xmlRequest      = this.CreateSubtypeParamsRequest();
                TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

                var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlRequest, ApiConstants.SoapEnvClose, jSession);

                Models.ResponseEntities.SubTypeParams.Response response = this.ProcessRequestSubTypeParamsResponse(tupleResponse.Item1);

                return(response);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #18
0
        public async Task <LoadEligibleEmployeesResponse.Response> LoadEligibleEmployees(string tenantId, string jSession, string PersonNumber, string ShiftSwapDate, string StartTime, string EndTime)
        {
            try
            {
                string          xmlRequest      = CreateLoadEligibleEmpRequest(PersonNumber, ShiftSwapDate, ShiftSwapDate, StartTime, EndTime);
                TenantMapEntity tenantMapEntity = await azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

                var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlRequest, ApiConstants.SoapEnvClose, jSession);

                LoadEligibleEmployeesResponse.Response Response = processEligibleEmployeesResponse(tupleResponse.Item1);

                return(Response);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #19
0
        public async Task <string> GetConversationId(string personNumber, string tenantId, string jSession, string channelId)
        {
            try
            {
                string          xmlJobAssignReq = this.CreatePIRequest(personNumber);
                TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

                var tuplePIResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlJobAssignReq, ApiConstants.SoapEnvClose, jSession);

                Models.ResponseEntities.PersonInformation.Response response = this.ProcessPIResponse(tuplePIResponse.Item1);
                var conversationId = await this.azureTableStorageHelper.Retrive <BotUserEntity>(response.PersonInformation.SupervisorData.Supervisor.PersonNumber, tenantId, channelId, "KronosUserDetails");

                return(conversationId);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Beispiel #20
0
        /// <summary>
        /// Shows upcoming shifts
        /// </summary>
        /// <param name="tenantId">Tenant ID</param>
        /// <param name="jSession">jSession Object</param>
        /// <param name="startDate">Start Date</param>
        /// <param name="endDate">End Date</param>
        /// <param name="personNumber">Person number</param>
        /// <param name="employees">Employees object</param>
        /// <returns>Upcoming shifts response</returns>
        public async Task <UpcomingShifts.Response> ShowUpcomingShifts(string tenantId, string jSession, string startDate, string endDate, string personNumber, List <ResponseHyperFindResult> employees = null)
        {
            string xmlScheduleRequest = string.Empty;

            if (employees == null)
            {
                xmlScheduleRequest = this.CreateUpcomingShiftsRequest(startDate, endDate, personNumber);
            }
            else
            {
                xmlScheduleRequest = this.CreateUpcomingShiftsRequestEmployees(startDate, endDate, personNumber, employees);
            }

            TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            var tupleResponse = await ApiHelper.Instance.SendSoapPostRequest(tenantMapEntity.EndpointUrl, ApiConstants.SoapEnvOpen, xmlScheduleRequest, ApiConstants.SoapEnvClose, jSession);

            UpcomingShifts.Response scheduleResponse = this.ProcessResponse(tupleResponse.Item1);
            scheduleResponse.Jsession = tupleResponse.Item2;
            return(scheduleResponse);
        }
Beispiel #21
0
        /// <summary>
        /// get schedule url based on tenant.
        /// </summary>
        /// <param name="tenantId">tenant Id.</param>
        /// <returns>Task.</returns>
        public async Task <string> GetScheduleUrl(string tenantId)
        {
            TenantMapEntity tenantMapEntity = await this.azureTableStorageHelper.ExecuteQueryUsingPointQueryAsync <TenantMapEntity>(Constants.ActivityChannelId, tenantId);

            return(string.IsNullOrEmpty(tenantMapEntity?.EndpointUrl) ? string.Empty : tenantMapEntity.EndpointUrl);
        }