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