public async Task <LeaveCreateResult> Create(LeaveCreateParameters parameters) { var validationResult = await Validate(parameters); if (validationResult != LeaveValidationStatus.Success) { return(new LeaveCreateResult { Status = validationResult }); } var result = await _dbContext.LeavesCategories.AddAsync(new LeaveCategory() { Name = parameters.Name, MaxDuration = parameters.MaxDuration, Balance = parameters.Balance }); await _dbContext.SaveChangesAsync(); var leaves = result.Entity; return(new LeaveCreateResult(LeaveValidationStatus.Success) { Data = new LeaveViewResult { Id = leaves.Id, Name = leaves.Name, MaxDuration = leaves.MaxDuration, Balance = leaves.Balance } }); }
private async Task <LeaveValidationStatus> Validate(LeaveCreateParameters parameters) { var findLeave = await _dbContext.LeavesCategories.AnyAsync(e => e.Name.Equals(parameters.Name)); if (findLeave) { return(LeaveValidationStatus.LeaveNameAlreadyExists); } else { return(LeaveValidationStatus.Success); } }
public async Task <LeaveCreateResult> Post(LeaveCreateParameters parameters) { return(await _leaveService.Create(parameters)); }