public UpdateCompanyResponse UpdateCompany(UpdateCompanyRequest request) { UpdateCompanyResponse response = new UpdateCompanyResponse(); response.ExceptionState = false; Company company = new Company(); company.Id = request.Id; company.Name = request.Name.ToUpper(new CultureInfo("tr-TR")); company.Description = string.IsNullOrEmpty(request.Description) ? string.Empty : request.Description.ToUpper(new CultureInfo("tr-TR")); company.IsActive = request.IsActive; company.CompanyType = _companyTypeRepository.FindBy(request.CompanyTypeId); company.ParentCompany = _companyRepository.FindBy(request.ParentCompanyId ?? 0); Query query = new Query(); if (company.ParentCompany == null) { query.Add(Criterion.Create<Company>(c => c.Id, company.Id, CriteriaOperator.NotEqual)); query.Add(Criterion.Create<Company>(c => c.ParentCompany, null, CriteriaOperator.IsNull)); if (_companyRepository.FindBy(query).Count() > 0) { response.ExceptionState = true; response.ExceptionMessage = @"Zaten bir ana firma var. Lütfen oluşturmaya çalıştığınız firmanın bağlı olduğu firmayı seçiniz."; return response; } } if (company.Name != _companyRepository.FindBy(request.Id).Name) { query = new Query(); query.Add(Criterion.Create<Company>(c => c.Name, company.Name, CriteriaOperator.Equal)); if (_companyRepository.FindBy(query).Count() > 0) { response.ExceptionState = true; response.ExceptionMessage = @"Bu isimde bir firma zaten var. Lütfen firma adını benzersiz bir isim olarak düzenleyin."; response.Company = company.ConvertToCompanyView(); return response; } } _companyRepository.Save(company); _unitOfWork.Commit(); response.Company = company.ConvertToCompanyView(); return response; }