public async Task <IActionResult> Create([FromBody] OfferCreateDTO offerDTO)
        {
            var location = GetControllerActionNames();

            try
            {
                _logger.LogInfo($"{location}: Create Attempted");
                if (offerDTO == null)
                {
                    _logger.LogWarn($"{location}: Empty Request was submitted");
                    return(BadRequest(ModelState));
                }
                if (!ModelState.IsValid)
                {
                    _logger.LogWarn($"{location}: Data was Incomplete");
                    return(BadRequest(ModelState));
                }
                var offer     = _mapper.Map <Offer>(offerDTO);
                var isSuccess = await _offerRepository.Create(offer);

                if (!isSuccess)
                {
                    return(InternalError($"{location}: Creation failed"));
                }
                _logger.LogInfo($"{location}: Creation was successful");
                return(Created("Create", new { offer }));
            }
            catch (Exception e)
            {
                return(InternalError($"{location}: {e.Message} - {e.InnerException}"));
            }
        }
        public async Task <ActionResult <Entities.Offer> > CreateOffer([FromBody] Entities.Offer offer)
        {
            await _repository.Create(offer);

            this.PublishEvent("create", "company.offer", offer: offer);
            this.PublishEvent("create", "customer.offer", offer: offer);
            this.PublishEvent("create", "demand.offer", offer: offer);

            return(CreatedAtAction("GetOffers", new { offer.Id }, offer));
        }
Beispiel #3
0
        public async Task <bool> CreateOffer(Offer offer)
        {
            try
            {
                _offerRepository.Create(offer);
                await _offerRepository.SaveAsync();

                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
        }
        public IActionResult Post([FromBody] Offer offer)
        {
            //var userName = User.Identity.Name;
            //var user = userRepository.ReadByName(username);

            if (ModelState.IsValid)
            {
                if (offer != null)
                {
                    offer.DateOfCreate = DateTime.Now;
                    offer.CustomerId   = 1; //user.Id; исполнитель(создатель - аторизованный пользователь)
                    repository.Create(offer);
                    return(Ok(offer));
                }
            }
            return(BadRequest());
        }
Beispiel #5
0
        public void CreateOffer(CreateOfferParams offerParams)
        {
            var employee = _employeeRepository.FindEmployeeById(offerParams.EmployeeId);

            if (employee == null)
            {
                throw new ObjectNotFoundException($"Employee profile with id={offerParams.EmployeeId} not found");
            }

            var job = _jobRepository.FindJobById(offerParams.JobId);

            if (job == null)
            {
                throw new ObjectNotFoundException($"Job with id={offerParams.JobId} not found");
            }

            if (offerParams.EmployeeId == job.CustomerId)
            {
                throw new ArgumentException("You cannot create offer on youe job");
            }

            var offerForJob = _offerRepository.FindOffer(offerParams.JobId, offerParams.EmployeeId);

            if (offerForJob != null)
            {
                throw new ArgumentException($"At user with id={employee.Id} already have offer to job with id={job.Id}");
            }


            var offer = new Offer()
            {
                Job                = job,
                Employee           = employee,
                Text               = offerParams.Text,
                AddedDate          = DateTime.UtcNow,
                OfferPayment       = offerParams.OfferPayment,
                ImplementationDays = offerParams.ImplementationDays
            };

            _offerRepository.Create(offer);
        }
        public void AddOffer(OfferViewModel model)
        {
            var entity = mapper.Map <OfferViewModel, OfferEntity>(model);

            repository.Create(entity);
        }
Beispiel #7
0
 public Task CreateOffer(Offer offer)
 {
     return(_offerRepository.Create(offer));
 }