public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            var validator = new EmployeeViewModelValidator();
            var result    = validator.Validate(this);

            return(result.Errors.Select(item => new ValidationResult(item.ErrorMessage, new[] { item.PropertyName })));
        }
Beispiel #2
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;
                    });
        }
        /// <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;
            }));
        }