Exemplo n.º 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);
        }
Exemplo n.º 2
0
        public async override Task <IResult> AddAsync(EmployeeDto model)
        {
            var emailExist = await UnitOfWork.Repository.Any(q => q.Email == model.Email);

            if (emailExist)
            {
                return(new ResponseResult(result: false, status: HttpStatusCode.Conflict,
                                          message: "Email already exist"));
            }
            var entity       = Mapper.Map <EmployeeDto, Entities.Employee>(model);
            var data         = UnitOfWork.Repository.Add(entity);
            var affectedRows = await UnitOfWork.SaveChanges();

            if (affectedRows > 0)
            {
                Result = new ResponseResult(result: null, status: HttpStatusCode.Created,
                                            message: "Data Inserted Successfully");
            }

            Result.Data = model;
            EventPass <EmployeeChanged> .Publish(new EmployeeChanged { Id = data.Id, EmployeeFullName = $"{model.FirstName} {model.LastName}" }, QueuesNames.Employees);

            return(Result);
        }
Exemplo n.º 3
0
 public void EmployeeChangeSubsribe()
 {
     EventPass <EmployeeChanged> .Subscribe(QueuesNames.Employees, OnEmployeeChanged);
 }