public async Task <ActionResult <TeamDto> > CreateTeamAsync([FromBody] TeamDto request)
        {
            var team      = _mapper.Map <Team>(request);
            var createdId = await _teamsRepository.AddAsync(team);

            return(CreatedAtRoute(nameof(GetTeamAsync), new { id = createdId }, createdId));
        }
示例#2
0
        public override async Task <BaseResponse> AddAsync(TeamData request, ServerCallContext context)
        {
            try
            {
                if (request is null)
                {
                    await _teamsRepository.AddAsync(null);
                }
                Team team = new()
                {
                    Name        = request.Name,
                    Description = request.Description,
                };
                int result = await _teamsRepository.AddAsync(team);

                if (result == 0)
                {
                    throw new Exception("Team has not been saved");
                }
                BaseResponse response = new()
                {
                    Code         = Code.Success,
                    ErrorMessage = string.Empty,
                    DataId       = team.Id
                };

                LogData logData = new()
                {
                    CallSide         = nameof(TeamsService),
                    CallerMethodName = nameof(AddAsync),
                    CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                    Request          = request,
                    Response         = response
                };

                _logger.AddLog(logData);

                return(response);
            }
            catch (NullReferenceException nrex)
            {
                LogData logData = new()
                {
                    CallSide         = nameof(TeamsService),
                    CallerMethodName = nameof(AddAsync),
                    CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                    Request          = request,
                    Response         = nrex
                };

                _logger.AddErrorLog(logData);
                return(new BaseResponse
                {
                    Code = Code.DataError,
                    ErrorMessage = nrex.Message
                });
            }
            catch (ArgumentException aex)
            {
                LogData logData = new()
                {
                    CallSide         = nameof(TeamsService),
                    CallerMethodName = nameof(AddAsync),
                    CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                    Request          = request,
                    Response         = aex
                };

                _logger.AddErrorLog(logData);
                return(new BaseResponse
                {
                    Code = Code.DataError,
                    ErrorMessage = aex.Message
                });
            }
            catch (DbUpdateException duex)
            {
                LogData logData = new()
                {
                    CallSide         = nameof(TeamsService),
                    CallerMethodName = nameof(AddAsync),
                    CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                    Request          = request,
                    Response         = duex
                };

                _logger.AddErrorLog(logData);
                return(new BaseResponse
                {
                    Code = Code.DbError,
                    ErrorMessage = "An error occured while saving team"
                });
            }
            catch (Exception ex)
            {
                LogData logData = new()
                {
                    CallSide         = nameof(TeamsService),
                    CallerMethodName = nameof(AddAsync),
                    CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                    Request          = request,
                    Response         = ex
                };

                _logger.AddErrorLog(logData);
                return(new BaseResponse
                {
                    Code = Code.UnknownError,
                    ErrorMessage = ex.Message
                });
            }
        }