public async Task <EmploymentLeave> PutEmploymentLeave(EmploymentLeave employmentLeave) { return(await Put <EmploymentLeave, EmploymentLeave>($"biz/employeeLeave{employmentLeave.Id}", employmentLeave)); }
public async Task <Absence> ResendAbsence(int integrationUnitId, Absence absence) { await SignIn(integrationUnitId); foreach (var absenceEntry in absence.AbsenceEntries) { var workTypeId = await _entityMapService.GetWorkTypeId(absenceEntry.LocalAbsenceCode, integrationUnitId); var isWorkItem = workTypeId != null; if (isWorkItem) { var workRelationId = await _entityMapService.GetWorkRelationId(absence.EmployeeId, integrationUnitId); absenceEntry.ExternalEntityId = workRelationId.ToString(); absenceEntry.ExternalAbsenceCode = workTypeId.ToString(); var workItem = new WorkItem { // From AbsenceDay StartTime = absenceEntry.StartTime, EndTime = absenceEntry.EndTime, WorkTypeId = workTypeId.Value, // From Absence UnitId = absence.UnitId, WorkRelationId = workRelationId.Value, Description = absence.Description, LunchInMinutes = absence.LunchInMinutes }; if (string.IsNullOrWhiteSpace(absenceEntry.ExternalId)) { var externalId = await _unimicroClient.PostWorkItem(workItem); absenceEntry.ExternalId = externalId.ToString(); } else { workItem.Id = int.Parse(absenceEntry.ExternalId); await _unimicroClient.PutWorkItem(workItem); } } else { var employementLeaveId = await _entityMapService.GetEmploymentLeaveId(absenceEntry.LocalAbsenceCode, absence.UnitId); var isEmploymentLeave = employementLeaveId != null; if (isEmploymentLeave) { var employmentId = await _entityMapService.GetEmploymentId(absence.EmployeeId, integrationUnitId); absenceEntry.ExternalEntityId = employmentId.ToString(); absenceEntry.ExternalAbsenceCode = employementLeaveId.ToString(); var employmentLeave = new EmploymentLeave() { EmploymentID = employmentId.Value, LeaveType = Enum.Parse <LeaveType>(employementLeaveId.Value.ToString()), FromDate = absenceEntry.StartTime.Date, ToDate = absenceEntry.StartTime.Date, LeavePercent = 100 }; if (string.IsNullOrWhiteSpace(absenceEntry.ExternalId)) { var externalId = await _unimicroClient.PostEmploymentLeave(employmentLeave); absenceEntry.ExternalId = externalId.ToString(); } else { employmentLeave.Id = int.Parse(absenceEntry.ExternalId); await _unimicroClient.PutEmploymentLeave(employmentLeave); } } else { throw new ArgumentException($"Mapping is not found for absencecode={absenceEntry.LocalAbsenceCode}. This error should have been taken care of in pre-validation"); } } } return(absence); }
public async Task <int> PostEmploymentLeave(EmploymentLeave employmentLeave) { var createdEmploymentLeave = await Post <EmploymentLeave, EmploymentLeave>("biz/EmployeeLeave", employmentLeave); return(createdEmploymentLeave.Id); }