public static async Task <AbsenceTransaction> UpdateAbsenceTransactionAsync(FortnoxApiRequest request, AbsenceTransaction absenceTransaction) { var apiRequest = new FortnoxApiClientRequest <SingleResource <AbsenceTransaction> >(HttpMethod.Put, request.AccessToken, request.ClientSecret, $"{ApiEndpoints.AbsenceTransactions}/{absenceTransaction.EmployeeId}/{absenceTransaction.Date}/{absenceTransaction.CauseCode}") { Data = new SingleResource <AbsenceTransaction> { Data = absenceTransaction } }; return((await FortnoxAPIClient.CallAsync(apiRequest)).Data); }
public void Test_Find() { #region Arrange var tmpEmployee = new EmployeeConnector().Get("TEST_EMP") ?? new EmployeeConnector().Create(new Employee() { EmployeeId = "TEST_EMP" }); var tmpProject = new ProjectConnector().Create(new Project() { Description = "TmpProject" }); var tmpCostCenter = new CostCenterConnector().Get("TMP") ?? new CostCenterConnector().Create(new CostCenter() { Code = "TMP", Description = "TmpCostCenter" }); for (var i = 0; i < 5; i++) { new AbsenceTransactionConnector().Delete(tmpEmployee.EmployeeId, new DateTime(2018, 01, 01).AddDays(i), AbsenceCauseCode.MIL); } #endregion Arrange IAbsenceTransactionConnector connector = new AbsenceTransactionConnector(); var newAbsenceTransaction = new AbsenceTransaction() { EmployeeId = tmpEmployee.EmployeeId, CauseCode = AbsenceCauseCode.MIL, Date = new DateTime(2018, 01, 01), Hours = 1, CostCenter = tmpCostCenter.Code, Project = tmpProject.ProjectNumber }; //Add entries for (var i = 0; i < 5; i++) { newAbsenceTransaction.Date = new DateTime(2018, 01, 01).AddDays(i); connector.Create(newAbsenceTransaction); MyAssert.HasNoError(connector); } connector.EmployeeId = tmpEmployee.EmployeeId; var fullCollection = connector.Find(); MyAssert.HasNoError(connector); Assert.AreEqual(5, fullCollection.TotalResources); Assert.AreEqual(5, fullCollection.Entities.Count); Assert.AreEqual(1, fullCollection.TotalPages); Assert.AreEqual(tmpEmployee.EmployeeId, fullCollection.Entities.First().EmployeeId); //Apply Limit connector.Limit = 2; var limitedCollection = connector.Find(); MyAssert.HasNoError(connector); Assert.AreEqual(5, limitedCollection.TotalResources); Assert.AreEqual(2, limitedCollection.Entities.Count); Assert.AreEqual(3, limitedCollection.TotalPages); //Delete entries foreach (var entry in fullCollection.Entities) { connector.Delete(entry.EmployeeId, entry.Date, entry.CauseCode); } #region Delete arranged resources new CostCenterConnector().Delete(tmpCostCenter.Code); new ProjectConnector().Delete(tmpProject.ProjectNumber); #endregion Delete arranged resources }
public async Task Test_Find() { #region Arrange var tmpEmployee = await FortnoxClient.EmployeeConnector.CreateAsync(new Employee() { EmployeeId = TestUtils.RandomString() }); var tmpProject = await FortnoxClient.ProjectConnector.CreateAsync(new Project() { Description = "TmpProject" }); var tmpCostCenter = await FortnoxClient.CostCenterConnector.CreateAsync(new CostCenter() { Code = "TMP", Description = "TmpCostCenter" }); #endregion Arrange var connector = FortnoxClient.AbsenceTransactionConnector; var newAbsenceTransaction = new AbsenceTransaction() { EmployeeId = tmpEmployee.EmployeeId, CauseCode = AbsenceCauseCode.MIL, Date = new DateTime(2018, 01, 01), Hours = 1, CostCenter = tmpCostCenter.Code, Project = tmpProject.ProjectNumber }; //Add entries for (var i = 0; i < 5; i++) { newAbsenceTransaction.Date = new DateTime(2018, 01, 01).AddDays(i); await connector.CreateAsync(newAbsenceTransaction); } var searchSettings = new AbsenceTransactionSearch(); searchSettings.EmployeeId = tmpEmployee.EmployeeId; var fullCollection = await connector.FindAsync(searchSettings); Assert.AreEqual(5, fullCollection.TotalResources); Assert.AreEqual(5, fullCollection.Entities.Count); Assert.AreEqual(1, fullCollection.TotalPages); Assert.AreEqual(tmpEmployee.EmployeeId, fullCollection.Entities.First().EmployeeId); Assert.IsNotNull(fullCollection.Entities.First().Url); //Apply Limit searchSettings.Limit = 2; var limitedCollection = await connector.FindAsync(searchSettings); Assert.AreEqual(5, limitedCollection.TotalResources); Assert.AreEqual(2, limitedCollection.Entities.Count); Assert.AreEqual(3, limitedCollection.TotalPages); //Delete entries foreach (var entry in fullCollection.Entities) { await connector.DeleteAsync(entry.Id); } #region Delete arranged resources await FortnoxClient.CostCenterConnector.DeleteAsync(tmpCostCenter.Code); await FortnoxClient.ProjectConnector.DeleteAsync(tmpProject.ProjectNumber); #endregion Delete arranged resources }
public void Test_AbsenceTransaction_CRUD() { #region Arrange var tmpEmployee = new EmployeeConnector().Get("TEST_EMP") ?? new EmployeeConnector().Create(new Employee() { EmployeeId = "TEST_EMP" }); var tmpProject = new ProjectConnector().Create(new Project() { Description = "TmpProject" }); var tmpCostCenter = new CostCenterConnector().Get("TMP") ?? new CostCenterConnector().Create(new CostCenter() { Code = "TMP", Description = "TmpCostCenter" }); #endregion Arrange IAbsenceTransactionConnector connector = new AbsenceTransactionConnector(); #region CREATE var newAbsenceTransaction = new AbsenceTransaction() { EmployeeId = tmpEmployee.EmployeeId, CauseCode = AbsenceCauseCode.MIL, Date = new DateTime(2018, 01, 01), Hours = 5.5m, CostCenter = tmpCostCenter.Code, Project = tmpProject.ProjectNumber }; var createdAbsenceTransaction = connector.Create(newAbsenceTransaction); MyAssert.HasNoError(connector); Assert.AreEqual(5.5m, createdAbsenceTransaction.Hours); #endregion CREATE #region UPDATE createdAbsenceTransaction.Hours = 8; var updatedAbsenceTransaction = connector.Update(createdAbsenceTransaction); MyAssert.HasNoError(connector); Assert.AreEqual(8, updatedAbsenceTransaction.Hours); #endregion UPDATE #region READ / GET var retrievedAbsenceTransaction = connector.Get(createdAbsenceTransaction.EmployeeId, createdAbsenceTransaction.Date, createdAbsenceTransaction.CauseCode); MyAssert.HasNoError(connector); Assert.AreEqual(8, retrievedAbsenceTransaction.Hours); #endregion READ / GET #region DELETE connector.Delete(createdAbsenceTransaction.EmployeeId, createdAbsenceTransaction.Date, createdAbsenceTransaction.CauseCode); MyAssert.HasNoError(connector); retrievedAbsenceTransaction = connector.Get(createdAbsenceTransaction.EmployeeId, createdAbsenceTransaction.Date, createdAbsenceTransaction.CauseCode); Assert.AreEqual(null, retrievedAbsenceTransaction, "Entity still exists after Delete!"); #endregion DELETE #region Delete arranged resources new CostCenterConnector().Delete(tmpCostCenter.Code); new ProjectConnector().Delete(tmpProject.ProjectNumber); #endregion Delete arranged resources }
public async Task Test_AbsenceTransaction_CRUD() { #region Arrange var tmpEmployee = await FortnoxClient.EmployeeConnector.CreateAsync(new Employee() { EmployeeId = TestUtils.RandomString() }); var tmpProject = await FortnoxClient.ProjectConnector.CreateAsync(new Project() { Description = "TmpProject" }); var tmpCostCenter = await FortnoxClient.CostCenterConnector.CreateAsync(new CostCenter() { Code = "TMP", Description = "TmpCostCenter" }); #endregion Arrange var connector = FortnoxClient.AbsenceTransactionConnector; #region CREATE var newAbsenceTransaction = new AbsenceTransaction() { EmployeeId = tmpEmployee.EmployeeId, CauseCode = AbsenceCauseCode.MIL, Date = new DateTime(2018, 01, 01), Hours = 5.5m, CostCenter = tmpCostCenter.Code, Project = tmpProject.ProjectNumber }; var createdAbsenceTransaction = await connector.CreateAsync(newAbsenceTransaction); Assert.AreEqual(5.5m, createdAbsenceTransaction.Hours); #endregion CREATE #region UPDATE createdAbsenceTransaction.Hours = 8; var updatedAbsenceTransaction = await connector.UpdateAsync(createdAbsenceTransaction); Assert.AreEqual(8, updatedAbsenceTransaction.Hours); #endregion UPDATE #region READ / GET var retrievedAbsenceTransaction = await connector.GetAsync(createdAbsenceTransaction.Id); Assert.AreEqual(8, retrievedAbsenceTransaction.Hours); Assert.IsNotNull(retrievedAbsenceTransaction.Url); #endregion READ / GET #region DELETE await connector.DeleteAsync(createdAbsenceTransaction.Id); await Assert.ThrowsExceptionAsync <FortnoxApiException>( async() => await connector.GetAsync(createdAbsenceTransaction.Id), "Entity still exists after Delete!"); #endregion DELETE #region Delete arranged resources await FortnoxClient.CostCenterConnector.DeleteAsync(tmpCostCenter.Code); await FortnoxClient.ProjectConnector.DeleteAsync(tmpProject.ProjectNumber); #endregion Delete arranged resources }