/// <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); } }
/// <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); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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; } }
/// <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); } }
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; } }
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; } }
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; } }
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); } }
/// <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); }
/// <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); }