public void ShouldReturnSuccessForDelete() { PaycheckModel paycheck = new PaycheckModel(); paycheck.ID = 7; bool opeartionSucceeded = false; string dataAccessJsonStr = string.Empty; string formattedJsonStr = string.Empty; try { paycheckServices.Remove(paycheck); opeartionSucceeded = true; } catch (DataAccessException e) { e.DataAccessStatusInfo.OperationSucceeded = opeartionSucceeded; dataAccessJsonStr = JsonConvert.SerializeObject(e.DataAccessStatusInfo); formattedJsonStr = JToken.FromObject(dataAccessJsonStr).ToString(); } try { Assert.True(opeartionSucceeded); testOutputHelper.WriteLine("The record has been succesfully deleted"); } finally { testOutputHelper.WriteLine(formattedJsonStr); } }
public IEnumerable <IPaycheckModel> GetByEmployee(int employeeID) { List <PaycheckModel> paychecks = new List <PaycheckModel>(); DataAccessStatus dataAccessStatus = new DataAccessStatus(); bool matchingRecoredFound = false; string selectByEmpQuery = "SELECT ID, Amount, PayrollID, ReceiptionDate " + "FROM Paychecks WHERE EmployeeID = @EmployeeID"; using (SqlConnection sqlConnection = new SqlConnection(this.connectionString)) { try { sqlConnection.Open(); using (SqlCommand cmd = new SqlCommand(selectByEmpQuery, sqlConnection)) { cmd.CommandText = selectByEmpQuery; cmd.Prepare(); cmd.Parameters.Add(new SqlParameter("@EmployeeID", employeeID)); using (SqlDataReader reader = cmd.ExecuteReader()) { matchingRecoredFound = reader.HasRows; while (reader.Read()) { PaycheckModel paycheck = new PaycheckModel(); paycheck.ID = Convert.ToInt32(reader["ID"].ToString()); paycheck.EmployeeID = employeeID; paycheck.PayrollID = Convert.ToInt32(reader["PayrollID"].ToString()); paycheck.Amount = Convert.ToInt32(reader["Amount"].ToString()); paycheck.ReceiptionDate = (DateTime)reader["ReceiptionDate"]; paychecks.Add(paycheck); } } } sqlConnection.Close(); } catch (SqlException e) { dataAccessStatus.setValues(status: "Error", operationSucceeded: false, exceptionMessage: e.Message, customMessage: "Unable to get the paychecks records from database", helpLink: e.HelpLink, errorCode: e.ErrorCode, stackTrace: e.StackTrace); throw new DataAccessException(e.Message, e.InnerException, dataAccessStatus); } if (!matchingRecoredFound) { dataAccessStatus.setValues(status: "Error", operationSucceeded: false, exceptionMessage: "", customMessage: $"Record not found!. Unable to get Paycheck record for with employee id: {employeeID}.It does not exist in the database.", helpLink: "", errorCode: 0, stackTrace: ""); throw new DataAccessException(dataAccessStatus); } return(paychecks); } }
public IEnumerable <IPaycheckModel> GetByMonth(DateTime date) { List <PaycheckModel> paychecks = new List <PaycheckModel>(); DataAccessStatus dataAccessStatus = new DataAccessStatus(); bool recordsFound = false; string selectQuery = "Select * FROM Paychecks WHERE Month(ReceiptionDate) = @Month AND YEAR(ReceiptionDate) = @Year "; using (SqlConnection sqlConnection = new SqlConnection(this.connectionString)) { try { sqlConnection.Open(); } catch (SqlException e) { dataAccessStatus.setValues(status: "Error", operationSucceeded: false, exceptionMessage: e.Message, customMessage: "Unable to get the paychecks records from database", helpLink: e.HelpLink, errorCode: e.ErrorCode, stackTrace: e.StackTrace); throw new DataAccessException(e.Message, e.InnerException, dataAccessStatus); } using (SqlCommand cmd = new SqlCommand(selectQuery, sqlConnection)) { cmd.CommandText = selectQuery; cmd.Prepare(); cmd.Parameters.AddWithValue("@Month", date.Month); cmd.Parameters.AddWithValue("@Year", date.Year); using (SqlDataReader reader = cmd.ExecuteReader()) { recordsFound = reader.HasRows; while (reader.Read()) { PaycheckModel paycheck = new PaycheckModel(); paycheck.ID = Convert.ToInt32(reader["ID"].ToString()); paycheck.EmployeeID = Convert.ToInt32(reader["EmployeeID"].ToString());; paycheck.PayrollID = Convert.ToInt32(reader["PayrollID"].ToString()); paycheck.Amount = Convert.ToInt32(reader["Amount"].ToString()); paycheck.ReceiptionDate = (DateTime)reader["ReceiptionDate"]; paychecks.Add(paycheck); } } } sqlConnection.Close(); } if (!recordsFound) { dataAccessStatus.setValues(status: "Error", operationSucceeded: false, exceptionMessage: "", customMessage: $"Record not found!. Unable to get Paycheck records in Month {date.Month}.", helpLink: "", errorCode: 0, stackTrace: ""); throw new DataAccessException(dataAccessStatus); } return(paychecks); }
private decimal GetNetPay(PaycheckModel paycheckModel) { decimal netPay = paycheckModel.GrossPay; netPay -= paycheckModel.FederalTax * paycheckModel.GrossPay; netPay -= paycheckModel.StateTax * paycheckModel.GrossPay; netPay = Math.Round(netPay, 2); return(netPay); }
private TopEarnerModel GetTopEarner(PaycheckModel paycheck) { var topEarner = new TopEarnerModel { FirstName = paycheck.FirstName, GrossPay = paycheck.GrossPay, LastName = paycheck.LastName, YearsWorked = GetYearsWorked(paycheck.StartDate) }; return(topEarner); }
public List <PaycheckModel> GetPaychecks(List <EmployeeModel> employeeDatas) { var paychecks = new List <PaycheckModel>(); foreach (var employeeData in employeeDatas) { PaycheckModel paycheckModel = GetPaycheckModel(employeeData); paychecks.Add(paycheckModel); } paychecks = paychecks.OrderByDescending(x => x.GrossPay).ToList(); DocumentService.CreatePaychecksDocument(paychecks); return(paychecks); }
public void ShouldThrowExceptionIfPaycheckAmountIsBiggerThanTheNetpay() { PaycheckModel paycheck = new PaycheckModel(); paycheck.Amount = 1000000000; paycheck.EmployeeID = 4; paycheck.PayrollID = 7; Exception ex = Assert.Throws <DataAccessException>(testCode: () => this.paycheckServices.Add(paycheck)); testOutputHelper.WriteLine(ex.Message); }
public IActionResult PayOrder(int orderId, [FromBody] PaycheckModel paycheck) { if (!GetAndVAlidateUser(out var user)) { return(BadRequest(new { message = "User not found" })); } var currentOrder = user.Orders?.SingleOrDefault(o => o.Id == orderId); if (currentOrder == null) { return(BadRequest(new { message = "This order does not belongs to current user" })); } currentOrder = _orderService.ProccedPayment(currentOrder, paycheck.FullName, paycheck.CardNumber); return(Ok(currentOrder)); }
public IEnumerable <IPaycheckModel> GetAll() { List <PaycheckModel> paychecks = new List <PaycheckModel>(); DataAccessStatus dataAccessStatus = new DataAccessStatus(); using (SqlConnection sqlConnection = new SqlConnection(this.connectionString)) { try { sqlConnection.Open(); string selectAllQuery = "Select * FROM Paychecks"; using (SqlCommand cmd = new SqlCommand(selectAllQuery, sqlConnection)) { using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { PaycheckModel paycheck = new PaycheckModel(); paycheck.ID = Int32.Parse(reader["ID"].ToString()); paycheck.Amount = Int32.Parse(reader["Amount"].ToString()); paycheck.EmployeeID = Int32.Parse(reader["EmployeeID"].ToString()); paycheck.PayrollID = Int32.Parse(reader["PayrollID"].ToString()); paycheck.ReceiptionDate = (DateTime)reader["ReceiptionDate"]; paychecks.Add(paycheck); } } } sqlConnection.Close(); } catch (SqlException e) { dataAccessStatus.setValues(status: "Error", operationSucceeded: false, exceptionMessage: e.Message, customMessage: "Unable to get Paychecks list from database", helpLink: e.HelpLink, errorCode: e.ErrorCode, stackTrace: e.StackTrace); throw new DataAccessException(e.Message, e.InnerException, dataAccessStatus); } return(paychecks); } }
public void ShouldReturnSuccessForAdd() { PaycheckModel paycheck = new PaycheckModel(); paycheck.Amount = 10000; paycheck.EmployeeID = 4; paycheck.PayrollID = 7; var opeartionSucceeded = false; string formattedJsonStr = string.Empty; string dataAccessJsonStr; try { paycheckServices.Add(paycheck); opeartionSucceeded = true; } catch (ArgumentException e) { dataAccessJsonStr = JsonConvert.SerializeObject(e); formattedJsonStr = JToken.FromObject(dataAccessJsonStr).ToString(); } catch (DataAccessException e) { e.DataAccessStatusInfo.OperationSucceeded = opeartionSucceeded; dataAccessJsonStr = JsonConvert.SerializeObject(e.DataAccessStatusInfo); formattedJsonStr = JToken.FromObject(dataAccessJsonStr).ToString(); } try { Assert.True(opeartionSucceeded); testOutputHelper.WriteLine("The record has been succesfully added"); } finally { testOutputHelper.WriteLine(formattedJsonStr); } }
private PaycheckModel GetPaycheckModel(EmployeeModel employeeData) { var paycheckModel = new PaycheckModel { EmployeeId = employeeData.EmployeeId, FirstName = employeeData.FirstName, LastName = employeeData.LastName, GrossPay = GetGrossPay(employeeData), FederalTax = TaxData.FederalTax, StateTax = GetStateTax(employeeData.HomeState), StartDate = employeeData.StartDate, HomeState = employeeData.HomeState, HoursWorked = employeeData.HoursWorked }; paycheckModel.NetPay = GetNetPay(paycheckModel); //Round these once we've made the necessary calculations. paycheckModel.GrossPay = Math.Round(paycheckModel.GrossPay, 2); paycheckModel.FederalTax = Math.Round(paycheckModel.FederalTax, 2); paycheckModel.StateTax = Math.Round(paycheckModel.StateTax, 2); return(paycheckModel); }
public void ShouldReturnPaycheckByID() { PaycheckModel paycheck = null; int idToGet = 6; try { paycheck = paycheckServices.GetByID(idToGet); } catch (DataAccessException e) { testOutputHelper.WriteLine(e.DataAccessStatusInfo.getFormattedValues()); } Assert.True(paycheck != null); Assert.True(paycheck.ID == idToGet); if (paycheck != null) { string ModelJsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(paycheck); string formattedJsonStr = JToken.Parse(ModelJsonStr).ToString(); testOutputHelper.WriteLine(formattedJsonStr); } }
public Task <Order> ProceedPayment([Header("Authorization")] string token, [AliasAs("id")] int orderId, [Body] PaycheckModel model) { return(Task.FromResult(current)); }