Esempio n. 1
0
        /// <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;
                    });
        }
Esempio n. 2
0
 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();
     }
 }