public CompanyDto Update(CompanyUpdateDto dto) { CompanyDto companyDto = null; try { var company = _unitOfWork.GenericRepository <Company>().GetById(dto.Id); _unitOfWork.CreateTransaction(); foreach (var companyCashDto in dto.CompanyCashes) { if (companyCashDto.Id == null || companyCashDto.Id == 0) { _companyCashAppService.Insert(companyCashDto); } else { _companyCashAppService.Update(companyCashDto); } } CheckForDelete(dto.CompanyCountries, company.CompanyCountries); CheckForAdd(dto.CompanyCountries); company.ModifiedBy = _appSession.GetUserName(); company.Name = dto.Name; _unitOfWork.GenericRepository <Company>().Update(company); _unitOfWork.Save(); _unitOfWork.Commit(); _unitOfWork.GenericRepository <Company>().RefershEntity(company); companyDto = Mapper.Map <Company, CompanyDto>(company); } catch (Exception ex) { Tracing.SaveException(ex); _unitOfWork.Rollback(); } return(companyDto); }