public ProposalResponseModel CreateVacationProposal(VacationProposalViewModel model, Guid initiatorId)
        {
            var proposal = _unitOfWork.Proposals.CreateVacationProposal(model, initiatorId);

            _unitOfWork.Save();

            return(_mapper.Map <Proposals, ProposalResponseModel>(proposal));
        }
示例#2
0
 public Vacations(Guid initiatorId, VacationProposalViewModel model, bool isPaidLeave = true)
 {
     Id          = Guid.NewGuid();
     IsApproved  = false;
     IsPaidLeave = isPaidLeave;
     EndDate     = model.VacationData.EndDate;
     StartDate   = model.VacationData.StartDate;
     UserId      = initiatorId;
     Reason      = model.Reason;
     Duration    = (model.VacationData.EndDate - model.VacationData.StartDate).Days;
 }
示例#3
0
        public Proposals CreateVacationProposal(VacationProposalViewModel model, Guid initiatorId)
        {
            Processes process = Db.Processes.Include(p => p.Stages)
                                .First(p => p.ProcessType == (int)ProcessesTypes.Vacation);

            var vacation = new Vacations(initiatorId, model);
            var proposal = new Proposals(process, initiatorId, title: process.Name, isUrgently: model.IsUrgently, vacationId: vacation.Id);
            var status   = new Statuses(model.DecisionMakerId, proposal.Id);

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

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

            return(proposal);
        }