コード例 #1
0
        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;
        }