コード例 #1
0
        public Task <AgreementResult> CreateAgreement(IProviderAgencyOwner principal,
                                                      Guid recruitingOrganizationId, RecruitingAgreementInput input)
        {
            _logger.LogInformation(GetLogMessage("Creating agreement as Provider Agency Owner: {0}"), principal.OrganizationId);

            return(CreateAgreement(principal, recruitingOrganizationId));
        }
コード例 #2
0
        public async Task <IActionResult> CreateProviderAgreement([FromRoute] Guid organizationId,
                                                                  [FromRoute] Guid providerOrganizationId,
                                                                  [FromBody] RecruitingAgreementInput input)
        {
            var result =
                await _agreementService.CreateAgreement(_recruitingAgencyOwner, providerOrganizationId, input);

            return(Ok(result));
        }
コード例 #3
0
        public async Task <AgreementResult> CreateAgreement(IRecruitingAgencyOwner principal,
                                                            Guid providerOrganizationId, RecruitingAgreementInput input)
        {
            _logger.LogInformation(GetLogMessage("Agency Owner creating recruiting agreement {@agreement}"), input);

            var retVal = new AgreementResult()
            {
                ProviderOrganizationId   = providerOrganizationId,
                RecruitingOrganizationId = principal.OrganizationId
            };

            var recruiterOrganization = await _recruitingOrganizations.Queryable()
                                        .Where(x => x.Id == principal.OrganizationId)
                                        .FirstOrDefaultAsync();

            if (recruiterOrganization == null)
            {
                retVal.ErrorMessage = "Organization is not configured correctly";

                return(retVal);
            }

            _logger.LogDebug(GetLogMessage("Recruiter Organization Found: {0}"), recruiterOrganization.Id);

            var providerOrganization = await _providerOrganizations.Queryable()
                                       .Where(x => x.Id == providerOrganizationId)
                                       .FirstOrDefaultAsync();

            if (providerOrganization == null)
            {
                throw new ApplicationException("Provider organization was not found");
            }

            _logger.LogDebug(GetLogMessage("Provider Organization Found: {0}"), providerOrganization.Id);

            var agreement = new RecruitingAgreement()
            {
                RecruiterStream          = recruiterOrganization.RecruiterStream,
                RecruiterBonus           = recruiterOrganization.RecruiterBonus,
                RecruitingAgencyBonus    = recruiterOrganization.RecruitingAgencyBonus,
                RecruitingAgencyStream   = recruiterOrganization.RecruitingAgencyStream,
                RecruitingOrganizationId = principal.OrganizationId,
                ProviderOrganizationId   = providerOrganizationId,
                Status              = AgreementStatus.AwaitingApproval,
                ObjectState         = ObjectState.Added,
                InitiatedByProvider = false
            };

            _logger.LogDebug(GetLogMessage("Recruiting Agreement: {@agreement}"), agreement);


            var result = Repository.InsertOrUpdateGraph(agreement, true);

            _logger.LogDebug(GetLogMessage("{0} Records updated in database"), result);


            return(await Task.FromResult(new AgreementResult()
            {
                Succeeded = result > 0,
                ProviderOrganizationId = agreement.ProviderOrganizationId,
                RecruitingOrganizationId = agreement.RecruitingOrganizationId
            }));
        }