Beispiel #1
0
        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"));
        }
Beispiel #3
0
        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));
            }
        }