Exemple #1
0
        public IActionResult CreateCustomProposal([FromBody] CustomProposalViewModel model)
        {
            var indentity = HttpContext.User.Identity as ClaimsIdentity;
            var userId    = Guid.Parse(indentity.FindFirst("UserId").Value);

            return(Ok(_proposalService.CreateCustomProposal(model, userId)));
        }
        public ProposalResponseModel CreateCustomProposal(CustomProposalViewModel model, Guid initiatorId)
        {
            var proposal = _unitOfWork.Proposals.CreateCustomProposal(model, initiatorId);

            _unitOfWork.Save();

            return(_mapper.Map <Proposals, ProposalResponseModel>(proposal));
        }
Exemple #3
0
        public Proposals CreateCustomProposal(CustomProposalViewModel model, Guid initiatorId)
        {
            Processes process = Db.Processes.Include(p => p.Stages)
                                .ThenInclude(s => s.StageReceivers)
                                .First(p => p.ProcessType == (int)ProcessesTypes.Custom && p.IsPrivate != model.IsPublic);

            var receiversTypes = process.Stages.First().StageReceivers.Select(s => s.ReceiverType);

            var decisionMaker = Db.Users.Include(user => user.UserTypes)
                                .First(u => u.UserTypes.Any(x => receiversTypes.Contains(x.UserType)));

            var proposal = new Proposals(process, initiatorId, model.Description, model.Title);
            var status   = new Statuses(decisionMaker.Id, proposal.Id);

            Db.Proposals.Add(proposal);
            Db.Statuses.Add(status);

            proposal.Initiator = Db.Users.FirstOrDefault(user => user.Id == initiatorId);

            return(proposal);
        }