public async override Task <IResult> UpdateAsync(EmployeeDto model) { var entityToUpdate = await UnitOfWork.Repository.GetAsync(model.Id); var fullName = $"{entityToUpdate.FirstName} {entityToUpdate.LastName}"; var emailExist = await UnitOfWork.Repository.Any(q => q.Email == model.Email && q.Id != entityToUpdate.Id); if (emailExist) { return(new ResponseResult(result: false, status: HttpStatusCode.Conflict, message: "Email already exist")); } var newEntity = Mapper.Map(model, entityToUpdate); UnitOfWork.Repository.Update(entityToUpdate, newEntity); var affectedRows = await UnitOfWork.SaveChanges(); if (affectedRows > 0) { Result = ResponseResult.PostResult(result: true, status: HttpStatusCode.Accepted, message: "Data Updated Successfully"); } var newFullName = $"{model.FirstName} {model.LastName}"; if (fullName != newFullName) { EventPass <EmployeeChanged> .Publish(new EmployeeChanged { Id = entityToUpdate.Id, EmployeeFullName = newFullName }, QueuesNames.Employees); } return(Result); }
public async override Task <IResult> GetByIdAsync(Guid id) { var query = await UnitOfWork.Repository.FirstOrDefaultAsync(q => q.Id == id, include : src => src.Include(t => t.Employee)); var data = Mapper.Map <TaskDto>(query); return(ResponseResult.PostResult(result: data, status: HttpStatusCode.OK, message: "Data Retrieved Successfully")); }
public async Task <IResult> GetAllWithFilterAsync(EmployeeFilterDto filter) { var sortCriteria = new List <SortModel>(); var sort = new SortModel(); sortCriteria.Add(sort); var query = await UnitOfWork.Repository.FindAsync(PredicateBuilderFunction(filter), sortCriteria); var data = Mapper.Map <IEnumerable <EmployeeDto> >(query); return(ResponseResult.PostResult(data, status: HttpStatusCode.OK, message: HttpStatusCode.OK.ToString())); }
public async override Task <IResult> GetAllAsync() { var sortCriteria = new List <SortModel>(); var sort = new SortModel(); sortCriteria.Add(sort); var query = await UnitOfWork.Repository.GetAllAsync(sortCriteria, src => src.Include(t => t.Employee)); var data = Mapper.Map <IEnumerable <TaskDto> >(query); return(ResponseResult.PostResult(data, status: HttpStatusCode.OK, message: HttpStatusCode.OK.ToString())); }
public async Task <IResult> Login(LoginParameters parameters) { var user = await UnitOfWork.Repository.FirstOrDefaultAsync(q => q.UserName == parameters.Username && !q.IsDeleted, include : source => source.Include(a => a.Role), disableTracking : false); if (user == null) { return(ResponseResult.PostResult(status: HttpStatusCode.BadRequest, message: "Wrong Username or Password")); } bool rightPass = CryptoHasher.VerifyHashedPassword(user.Password, parameters.Password); if (!rightPass) { return(ResponseResult.PostResult(status: HttpStatusCode.NotFound, message: "Wrong Password")); } var role = user.RoleId; var userDto = Mapper.Map <Entities.Entities.User, UserDto>(user); var userLoginReturn = _tokenBusiness.GenerateJsonWebToken(userDto, role.ToString()); return(ResponseResult.PostResult(userLoginReturn, status: HttpStatusCode.OK, message: HttpStatusCode.OK.ToString())); }
public async Task <IResult> AdLogin(LoginParameters parameters) { try { var activeDirectoryUser = _activeDirectoryRepository.LoginAsync(parameters); if (activeDirectoryUser == null) { return(ResponseResult.PostResult(status: HttpStatusCode.BadRequest, message: "Wrong Username or Password")); } var user = await CheckIfUserInDatabase(activeDirectoryUser); var role = user.RoleId; var userDto = Mapper.Map <Entities.Entities.User, UserDto>(user); var userLoginReturn = _tokenBusiness.GenerateJsonWebToken(userDto, role.ToString()); return(ResponseResult.PostResult(userLoginReturn, status: HttpStatusCode.OK, message: HttpStatusCode.OK.ToString())); } catch (Exception e) { Console.WriteLine(e); throw; } }
public async Task <DataPaging> GetAllPagedAsync(BaseParam <UserFilter> filter) { try { int limit = filter.PageSize; int offset = ((--filter.PageNumber) * filter.PageSize); var query = await UnitOfWork.Repository.FindPaggedAsync(predicate : PredicateBuilderFunction(filter.Filter), skip : offset, take : limit, filter.OrderByValue); var data = Mapper.Map <IEnumerable <Entities.Entities.User>, IEnumerable <UserDto> >(query.Item2); return(new DataPaging(++filter.PageNumber, filter.PageSize, query.Item1, ResponseResult.PostResult(data, status: HttpStatusCode.OK, message: HttpStatusCode.OK.ToString()))); } catch (Exception e) { Result.Message = e.InnerException != null ? e.InnerException.Message : e.Message; Result = new ResponseResult(null, status: HttpStatusCode.InternalServerError, exception: e, message: Result.Message); return(new DataPaging(0, 0, 0, Result)); } }