public async Task <Guid> AddOrUpdateAsync(Guid?stateRegistrationId, StateRegistrationDto createdStateRegistrationData)
        {
            Contract.Argument.IsNotNull(createdStateRegistrationData, nameof(createdStateRegistrationData));

            var employee = await GetEmployeeIdAsync();

            return(await _employeeWriteCommand.AddOrUpdateStateRegistrationAsync(employee.Id, createdStateRegistrationData));
        }
        /// <summary>
        /// Обновить государственную регистрацию
        /// </summary>
        /// <param name="stateRegistrationId">Идентификатор обновляемой государственной регистрации</param>
        /// <param name="stateRegistrationDto">Данные для полного обновления государственной регистрации</param>
        public async Task UpdateAsync(
            Guid stateRegistrationId,
            StateRegistrationDto stateRegistrationDto)
        {
            var currentStateRegistration = await GetAsync(stateRegistrationId);

            currentStateRegistration.SetInn(stateRegistrationDto.Inn);
            currentStateRegistration.SetOgrnip(stateRegistrationDto.Ogrnip);
        }
        /// <summary>
        /// Добавить государственную регистрацию
        /// </summary>
        /// <param name="addedStateRegistration">Добавляемая государственная регистрация</param>
        /// <returns>Государственная регистрация</returns>
        public StateRegistration Add(StateRegistrationDto addedStateRegistration)
        {
            var createdStateRegistration = Create();

            createdStateRegistration.SetInn(addedStateRegistration.Inn);
            createdStateRegistration.SetOgrnip(addedStateRegistration.Ogrnip);

            return(createdStateRegistration);
        }
예제 #4
0
        /// <summary>
        /// Добавить государственную регистрацию
        /// </summary>
        /// <param name="addedStateRegistration">Добавляемая государственная регистрация</param>
        /// <returns>Государственная регистрация</returns>
        public StateRegistration Add(StateRegistrationDto addedStateRegistration)
        {
            Contract.Argument.IsNotNull(addedStateRegistration, nameof(addedStateRegistration));

            var stateRegistration = _stateRegistrationRepository.Create(
                inn: addedStateRegistration.Inn,
                ogrnip: addedStateRegistration.Ogrnip);

            return(stateRegistration);
        }
예제 #5
0
        /// <summary>
        /// Обновить государственную регистрацию
        /// </summary>
        /// <param name="currentStateRegistrationId">Идентификатор обновляемой государственной регистрации</param>
        /// <param name="stateRegistrationDto">Данные для полного обновления государственной регистрации</param>
        public async Task UpdateAsync(
            Guid currentStateRegistrationId,
            StateRegistrationDto stateRegistrationDto)
        {
            Contract.Argument.IsNotEmptyGuid(currentStateRegistrationId, nameof(currentStateRegistrationId));
            Contract.Argument.IsNotNull(stateRegistrationDto, nameof(stateRegistrationDto));

            var currentStateRegistration = await GetAsync(currentStateRegistrationId).ConfigureAwait(false);

            currentStateRegistration.Update(
                inn: stateRegistrationDto.Inn,
                ogrnip: stateRegistrationDto.Ogrnip);
        }
예제 #6
0
        // TODO: переделать на запросы, которые будут принимать пути для выполнения Include
        /// <summary>
        /// Выполнить команду Добавить или Обновить государственные регистрацонные данные приглашенного иностранца
        /// </summary>
        /// <param name="employeeId">Идентификатор иностранца</param>
        /// <param name="stateRegistrationDto">Государственные регистрацонные данные</param>
        /// <returns>Идентификатор государственных регистрационных данных</returns>
        public async Task <Guid> AddOrUpdateStateRegistrationAsync(Guid alienId, StateRegistrationDto stateRegistrationDto)
        {
            // TODO: проверить идентификатор, что не Guid.Empty

            var alien = await _alienRepository.GetAsync(alienId);

            if (alien.StateRegistrationId.HasValue)
            {
                await _stateRegistrationRepository.UpdateAsync(alien.StateRegistrationId.Value, stateRegistrationDto);
            }
            else
            {
                var newStateRegistration = _stateRegistrationRepository.Add(stateRegistrationDto);
                alien.SetStateRegistration(newStateRegistration);
            }

            return(alien.StateRegistration !.Id);
        }
        // TODO: переделать на запросы, которые будут принимать пути для выполнения Include
        /// <summary>
        /// Выполнить команду Добавить или Обновить государственные регистрацонные данные сотрудника
        /// </summary>
        /// <param name="employeeId">Идентификатор сотрудника</param>
        /// <param name="stateRegistrationDto">Государственные регистрацонные данные</param>
        /// <returns>Идентификатор государственных регистрационных данных</returns>
        public async Task <Guid> AddOrUpdateStateRegistrationAsync(Guid employeeId, StateRegistrationDto stateRegistrationDto)
        {
            // TODO: проверить идентификатор, что не Guid.Empty

            var employee = await _employeeRepository.GetAsync(employeeId);

            if (employee.StateRegistrationId.HasValue)
            {
                await _stateRegistrationRepository.UpdateAsync(employee.StateRegistrationId.Value, stateRegistrationDto);
            }
            else
            {
                var newStateRegistration = _stateRegistrationRepository.Add(stateRegistrationDto);
                employee.SetStateRegistration(newStateRegistration);
            }

            await _domainContext.SaveChangesAsync();

            return(employee.StateRegistration !.Id);
        }
예제 #8
0
        /// <summary>
        /// Выполнить команду Добавить или Обновить государственные регистрацонные данные сотрудника
        /// </summary>
        /// <param name="employeeId">Идентификатор сотрудника</param>
        /// <param name="stateRegistrationDto">Государственные регистрацонные данные</param>
        /// <returns>Идентификатор государственных регистрационных данных</returns>
        public async Task <Guid> AddOrUpdateStateRegistrationAsync(Guid employeeId, StateRegistrationDto stateRegistrationDto)
        {
            Contract.Argument.IsNotEmptyGuid(employeeId, nameof(employeeId));
            Contract.Argument.IsNotNull(stateRegistrationDto, nameof(stateRegistrationDto));

            // плохо
            var employee = await _employeeRepository.GetAsync(employeeId).ConfigureAwait(false);

            if (employee.StateRegistrationId.HasValue)
            {
                await _stateRegistrationRepository.UpdateAsync(employee.StateRegistrationId.Value, stateRegistrationDto).ConfigureAwait(false);
            }
            else
            {
                var newStateRegistration = _stateRegistrationRepository.Create(stateRegistrationDto.Inn, stateRegistrationDto.Ogrnip);
                _employeeService.UpdateStateRegistration(employee, newStateRegistration.Id);
            }

            _domainContext.SaveChanges();

            return(employee.OrganizationId.Value);
        }
예제 #9
0
        public Task <Guid> UpdateAlienStateRegistrationAsync(Guid invitationId, StateRegistrationDto stateRegistrationDto)
        {
            Contract.Argument.IsNotEmptyGuid(invitationId, nameof(invitationId));

            return(_invitationWriteCommand.AddOrUpdateStateRegistrationAsync(invitationId, stateRegistrationDto));
        }
        public Task <Guid> UpdateStateRegistrationAsync(Guid employeeId, StateRegistrationDto stateRegistrationDto)
        {
            Contract.Argument.IsNotEmptyGuid(employeeId, nameof(employeeId));

            return(_employeeWriteCommand.AddOrUpdateStateRegistrationAsync(employeeId, stateRegistrationDto));
        }
예제 #11
0
        /// <summary>
        /// Выполнить команду Добавить или Обновить государственные регистрацонные данные иностранца
        /// </summary>
        /// <param name="invitationId">Идентификатор приглашения</param>
        /// <param name="stateRegistrationDto">Государственные регистрацонные данные</param>
        /// <returns>Идентификатор государственных регистрационных данных</returns>
        public async Task <Guid> AddOrUpdateStateRegistrationAsync(Guid invitationId, StateRegistrationDto stateRegistrationDto)
        {
            Contract.Argument.IsNotEmptyGuid(invitationId, nameof(invitationId));

            var invitation = await _invitationRepository.GetAsync(invitationId);

            var invitedAlienId = invitation.AlienId;

            var alienStateRegistrationId = await _alienWriteCommand.AddOrUpdateStateRegistrationAsync(invitedAlienId, stateRegistrationDto);

            await _domainContext.SaveChangesAsync();

            return(alienStateRegistrationId);
        }