public async Task <IActionResult> PostWorkingTimeRegister([FromBody] WorkingTimeRegister workingTimeRegister) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var projectStage = _context.ProjectStages.Where(l => l.ProjectStageId == workingTimeRegister.ProjectStageId).Select(l => l.ProjectStageId).FirstOrDefault().ToString(); var employee = _context.Employees.Where(l => l.EmployeeId == workingTimeRegister.EmployeeId).Select(l => l.EmployeeId).FirstOrDefault().ToString(); var employeeRole = _context.EmployeeRoles.Where(l => l.EmployeeRoleId == workingTimeRegister.EmployeeRoleId).Select(l => l.EmployeeRoleId).FirstOrDefault().ToString(); if (projectStage == "0" || employee == "0" || employeeRole == "0") { return(BadRequest("Pasirinktas nekorektiškas projekto etapas, darbuotojas arba darbuotojo rolė")); } workingTimeRegister = calculatePrice(workingTimeRegister); if (workingTimeRegister.Price == -1) { return(BadRequest("Neįvestas darbuotojo atlyginimas")); } workingTimeRegister.DateFrom = workingTimeRegister.DateFrom.ToLocalTime(); workingTimeRegister.DateTo = workingTimeRegister.DateTo.ToLocalTime(); _context.WorkingTimeRegisters.Add(workingTimeRegister); await _context.SaveChangesAsync(); return(CreatedAtAction("GetWorkingTimeRegister", new { id = workingTimeRegister.WorkingTimeRegisterId }, workingTimeRegister)); }
public WorkingTimeRegister createRegister(int id, double price, string date) { var dateTo = DateTime.ParseExact(date, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture); WorkingTimeRegister workingTimeRegister = new WorkingTimeRegister() { ProjectStageId = id, Price = price, DateTo = dateTo }; return(workingTimeRegister); }
public WorkingTimeRegister createRegister(int id, double hours) { var dateTo = new DateTime(2020, 04, 10); WorkingTimeRegister workingTimeRegister = new WorkingTimeRegister() { EmployeeId = id, Hours = hours, Price = 0, DateTo = dateTo }; return(workingTimeRegister); }
public async Task <IActionResult> PutWorkingTimeRegister([FromRoute] int id, [FromBody] WorkingTimeRegister workingTimeRegister) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != workingTimeRegister.WorkingTimeRegisterId) { return(BadRequest("Užklausos ID nesutampa su formoje esančiu ID")); } var projectStage = _context.ProjectStages.Where(l => l.ProjectStageId == workingTimeRegister.ProjectStageId).Select(l => l.ProjectStageId).FirstOrDefault().ToString(); var employee = _context.Employees.Where(l => l.EmployeeId == workingTimeRegister.EmployeeId).Select(l => l.EmployeeId).FirstOrDefault().ToString(); var employeeRole = _context.EmployeeRoles.Where(l => l.EmployeeRoleId == workingTimeRegister.EmployeeRoleId).Select(l => l.EmployeeRoleId).FirstOrDefault().ToString(); if (projectStage == "0" || employee == "0" || employeeRole == "0") { return(BadRequest("Pasirinktas nekorektiškas projekto etapas, darbuotojas arba darbuotojo rolė")); } workingTimeRegister = calculatePrice(workingTimeRegister); if (workingTimeRegister == null) { return(BadRequest("Neįvestas darbuotojo atlyginimas")); } workingTimeRegister.DateFrom = workingTimeRegister.DateFrom.ToLocalTime(); workingTimeRegister.DateTo = workingTimeRegister.DateTo.ToLocalTime(); _context.Entry(workingTimeRegister).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WorkingTimeRegisterExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public void CanCalculateCPI(double expexted, string date, double RPPrice, double WTPrice, string RPDateFrom, string RPDateTo, string WTDateTo) { using (var context = new ProjectContext(CreateNewContextOptions())) { var controller = new CPIMeasuresController(context); int ProjectStageId = 1; CPIMeasure cPIMeasure = createCPIMeasure(ProjectStageId, date); context.CPIMeasures.Add(cPIMeasure); WorkingTimeRegister workingTimeRegister = createRegister(ProjectStageId, WTPrice, WTDateTo); context.WorkingTimeRegisters.Add(workingTimeRegister); ResourcePlan resourcePlan = createResourcePlan(ProjectStageId, RPPrice, RPDateTo, RPDateFrom); context.ResourcePlans.Add(resourcePlan); context.SaveChanges(); CPIMeasure res = controller.calculateCPI(cPIMeasure); Assert.Equal(expexted, res.CPI); // Do all of your data access and assertions in here } }
public void CanCalculatePrice(bool createEmployeeSalary, double expexted, double employeeSalary, double hours, double staff) { var controller = new WorkingTimeRegistersController(_context); int EmployeeId = 0; if (createEmployeeSalary) { Salary salary = createSalary(employeeSalary, staff); _context.Salaries.Add(salary); EmployeeId = 1000; } WorkingTimeRegister workingTimeRegister = createRegister(EmployeeId, hours); _context.WorkingTimeRegisters.Add(workingTimeRegister); _context.SaveChanges(); WorkingTimeRegister res = controller.calculatePrice(workingTimeRegister); Assert.Equal(expexted, res.Price); }
public WorkingTimeRegister calculatePrice(WorkingTimeRegister workingTimeRegister) { WorkingTimeRegister register = workingTimeRegister; //int EmployeeId = _context.Employees.Where(l => l.EmployeeId == register.EmployeeId).Select(l => l.EmployeeId).FirstOrDefault(); Salary salary = _context.Salaries.Where(l => l.EmployeeId == register.EmployeeId).Where(l => (l.DateTo == null || l.DateTo > register.DateTo) && l.DateFrom < register.DateTo).OrderByDescending(l => l.SalaryId).FirstOrDefault(); if (salary == null) { register.Price = -1; return(register); } register.Price = (register.Hours * salary.EmployeeSalary) / (168 * salary.Staff); register.Price = Convert.ToDouble(String.Format("{0:0.00}", register.Price)); return(register); }