コード例 #1
0
        public async Task <IActionResult> GetAsync(int id)
        {
            var result = await _organizerService.GetByIdAsync(id);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }
            var organizerResource = _mapper.Map <Organizer, OrganizerResource>(result.Resource);

            return(Ok(organizerResource));
        }
        public async Task <IActionResult> PostAsync(int organizerId, int musicianId, [FromBody] SaveContractResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var factory = new FlyweightFactory(_contractService.ListByOrganizerIdAsync(organizerId).Result);

            var contract = _mapper.Map <SaveContractResource, Contract>(resource);

            var flyweight = factory.GetFlyweight(new Contract
            {
                OrganizerId     = organizerId,
                ContractStateId = 1
            });

            flyweight.Operation(contract);

            var existingOrganizer = await _organizerService.GetByIdAsync(organizerId);

            if (!existingOrganizer.Success)
            {
                return(BadRequest(existingOrganizer.Message));
            }

            var existingMusician = await _musicianService.GetByIdAsync(musicianId);

            if (!existingMusician.Success)
            {
                return(BadRequest(existingMusician.Message));
            }


            contract.Organizer = existingOrganizer.Resource;
            contract.Musician  = existingMusician.Resource;

            var result = await _contractService.SaveAsync(contract);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var contractResource = _mapper.Map <Contract, BaseContractResourse>(result.Resource);

            return(Ok(contractResource));
        }
コード例 #3
0
        public async Task <IActionResult> PostAsync(int organizerId, int contractId, int musicianId, [FromBody] SaveQualificationResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var existingOrganizer = await _organizerService.GetByIdAsync(organizerId);

            if (!existingOrganizer.Success)
            {
                return(BadRequest(existingOrganizer.Message));
            }

            var existingContract = await _contractService.GetByIdAsync(contractId);

            if (!existingContract.Success)
            {
                return(BadRequest(existingContract.Message));
            }

            var existingMusician = await _musicianService.GetByIdAsync(musicianId);

            if (!existingMusician.Success)
            {
                return(BadRequest(existingMusician.Message));
            }

            var qualification = _mapper.Map <SaveQualificationResource, Qualification>(resource);

            qualification.Organizer = existingOrganizer.Resource;
            qualification.Contract  = existingContract.Resource;
            qualification.Musician  = existingMusician.Resource;

            var result = await _qualificationService.SaveAsync(qualification);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var qualificationResource = _mapper.Map <Qualification, QualificationResource>(result.Resource);

            return(Ok(qualificationResource));
        }