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> 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); }
public void EmployeeChangeSubsribe() { EventPass <EmployeeChanged> .Subscribe(QueuesNames.Employees, OnEmployeeChanged); }