/// <summary> /// The add employee. /// </summary> /// <param name="employeeViewModel"> /// The employee. /// </param> /// <returns> /// The <see cref="Task"/>. /// </returns> public Task<QTecResponse<bool>> SaveEmployee(EmployeeViewModel employeeViewModel) { return Task.Run(async () => { var exceptions = new Dictionary<string, string>(); var response = new QTecResponse<bool>(); try { var validator = new EmployeeViewModelValidator(ServiceLocator.Current.GetInstance<IEmployeeManager>()); var result = validator.Validate(employeeViewModel); if (result.IsValid) { var employee = AutoMapper.Mapper.Map<EmployeeViewModel, Employee>(employeeViewModel); if (employeeViewModel.EmployeeId > 0) { await this.qtecunitofWork.EmployeeRepository.Update(employee); } else { await this.qtecunitofWork.EmployeeRepository.Insert(employee); } var recordsAffected = await this.qtecunitofWork.SaveChangesAsync(); if (recordsAffected > 0) { response.Response = true; response.Exceptions = exceptions; } } else { response.Response = false; foreach (var validationError in result.Errors) { exceptions.Add(validationError.PropertyName, validationError.ErrorMessage); } } } catch (SqlException sqlException) { exceptions.Add("SqlException", sqlException.Message); response.Response = false; } response.Exceptions = exceptions; return response; }); }
public async Task<ActionResult> Delete(EmployeeViewModel employeeViewModel) { { var response = await this.employeeManager.DeleteEmployee(employeeViewModel.EmployeeId); if (response.Response) { return this.RedirectToAction("Index"); } // TODO show errors return this.View(); } }