コード例 #1
0
        public async Task <bool> AddAsync(CompanyDto dto)
        {
            ValidatorCompany.ValidateCompanyNameIfIsNull(dto.Name);

            var company = await this.context.Companies
                          .Include(office => office.Offices)
                          .FirstOrDefaultAsync(name => name.Name == dto.Name && name.IsDeleted == false);

            var validate = ValidatorCompany.ValidateCompanyIfExist(company);

            var countCompany = await this.context.Companies
                               .Where(name => name.Name == dto.Name && name.IsDeleted == false)
                               .CountAsync();

            if (validate || countCompany < existCompany)
            {
                var newCompany = new Company
                {
                    Name         = dto.Name,
                    CreationDate = dto.CreationDate
                };
                await this.context.Companies.AddAsync(newCompany);

                await this.context.SaveChangesAsync();

                return(true);
            }
            return(false);
        }
コード例 #2
0
        public async Task EditAsync(EmployeeDto dto)
        {
            ValidationEmployee.ValidationEmployeeFirstNameLength(dto.FirstName);
            ValidationEmployee.ValidationEmployeeLastNameLength(dto.LastName);

            var employee = await this.context.Employees
                           .Include(office => office.Office)
                           .Include(company => company.Company)
                           .FirstOrDefaultAsync(empl => empl.Id == dto.Id);

            var office = await this.context.Offices
                         .FindAsync(dto.OfficeId);

            var company = await this.context.Companies
                          .Where(company => company.Id == office.CompanyId && office.IsDeleted == false)
                          .FirstAsync();

            var validateCompany = ValidatorCompany.ValidateIfCompanyIsNull(company);

            if (validateCompany)
            {
                employee.FirstName            = dto.FirstName;
                employee.LastName             = dto.LastName;
                employee.ExperienceEmployeeId = dto.ExperienceEmployeeId;
                employee.Salary       = dto.Salary;
                employee.VacationDays = dto.VacationDays;
                employee.CompanyId    = company.Id;
                employee.Company      = company;
                employee.OfficeId     = office.Id;
                employee.Office       = office;

                await this.context.SaveChangesAsync();
            }
        }
コード例 #3
0
        public async Task EditAsync(CompanyDto dto)
        {
            ValidatorCompany.ValidateCompanyNameIfIsNull(dto.Name);

            var company = await this.context.Companies.FindAsync(dto.Id);

            company.Name         = dto.Name;
            company.CreationDate = dto.CreationDate;

            await this.context.SaveChangesAsync();
        }
コード例 #4
0
        public async Task <bool> AddAsync(EmployeeDto dto)
        {
            ValidationEmployee.ValidationEmployeeFirstNameLength(dto.FirstName);
            ValidationEmployee.ValidationEmployeeLastNameLength(dto.LastName);
            ValidationEmployee.ValidationEmployeeExperienceEmployeeId(dto.ExperienceEmployeeId);
            ValidationEmployee.ValidationEmployeeOfficeId(dto.OfficeId);
            ValidationEmployee.ValidationEmployeeCompanyId(dto.CompanyId);

            var office = await this.context.Offices
                         .Where(officeId => officeId.Id == dto.OfficeId)
                         .SingleOrDefaultAsync();

            ValidatorOffice.ValidatorOffices(office);

            var company = await this.context.Companies
                          .Where(companyId => companyId.Id == dto.CompanyId)
                          .SingleOrDefaultAsync();

            ValidatorCompany.ValidateCompanyIfNotExistExist(company);

            var employee = new Employee
            {
                FirstName            = dto.FirstName,
                LastName             = dto.LastName,
                VacationDays         = dto.VacationDays,
                CompanyId            = dto.CompanyId,
                Company              = company,
                ExperienceEmployeeId = dto.ExperienceEmployeeId,
                Office       = office,
                OfficeId     = dto.OfficeId,
                Salary       = dto.Salary,
                StartingDate = DateTime.Now
            };

            await this.context.Employees.AddAsync(employee);

            await this.context.SaveChangesAsync();

            return(true);
        }