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)); }
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)); }
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 })); }