コード例 #1
0
ファイル: LeaveService.cs プロジェクト: Aljawharahmd/HR
        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
                }
            });
        }
コード例 #2
0
ファイル: LeaveService.cs プロジェクト: Aljawharahmd/HR
        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);
            }
        }
コード例 #3
0
ファイル: LeaveController.cs プロジェクト: Aljawharahmd/HR
 public async Task <LeaveCreateResult> Post(LeaveCreateParameters parameters)
 {
     return(await _leaveService.Create(parameters));
 }