public async Task <IActionResult> Details(Guid id) { var employeeLeaveQuery = await _employeeLeaveServices.GetEmployeeLeaveById(id); if (employeeLeaveQuery == null) { return(NotFound()); } var model = new EmployeeLeaveDetailViewModel { Id = employeeLeaveQuery.Id, EmployeeId = employeeLeaveQuery.EmployeeId ?? Guid.Empty, LeaveTypeId = employeeLeaveQuery.LeaveTypeID ?? Guid.Empty, ReplacementId = employeeLeaveQuery.ReplacementId ?? Guid.Empty, RejectReason = employeeLeaveQuery.RejectReason, DaystoTake = employeeLeaveQuery.DaysToTake ?? 0, StartDate = employeeLeaveQuery.StartDate == null ? string.Empty : DateTime.Parse(employeeLeaveQuery.StartDate.ToString()).ToString("yyyy-MM-dd"), EndDate = employeeLeaveQuery.EndDate == null ? string.Empty : DateTime.Parse(employeeLeaveQuery.EndDate.ToString()).ToString("yyyy-MM-dd") }; await LoadSelectListsAsync(); return(View(model)); }
public async Task <IActionResult> Details(EmployeeLeaveDetailViewModel formData) { try { if (ModelState.IsValid) { await _employeeLeaveServices.UpdateEmployeeLeaveAsync(new EmployeeLeave { DateTimeModified = DateTimeOffset.Now, Id = formData.Id, EmployeeId = formData.EmployeeId, LeaveTypeID = formData.LeaveTypeId, ReplacementId = formData.ReplacementId, DaysToTake = formData.DaystoTake, EndDate = DateTime.Parse(formData.EndDate), StartDate = DateTime.Parse(formData.StartDate), RejectReason = formData.RejectReason, UserAccount = User.Identity.Name }); TempData["Message"] = "Changes saved successfully"; _logger.LogInformation($"SUCCESS: successfully updated employee leave application by user={@User.Identity.Name.Substring(4)}"); return(RedirectToAction("details", new { id = formData.Id })); } } catch (ApplicationException error) { _logger.LogError( error, $"FAIL: failed to update employee leave details. Internal Application Error.; user={@User.Identity.Name.Substring(4)}"); ModelState.AddModelError("EmployeeLeave", $"Failed to update Employee leave record. Contact IT ServiceDesk for support thank you."); } await LoadSelectListsAsync(); return(View(formData)); }