public IActionResult Update([FromQuery] RoadMapData request) { try { BaseResponse response = _roadMapsClient.UpdateAsync(request); LogData logData = new() { CallSide = nameof(RoadMapsController), CallerMethodName = nameof(Update), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = response }; _logger.AddLog(logData); return(Ok(response)); } catch (Exception ex) { LogData logData = new() { CallSide = nameof(RoadMapsController), CallerMethodName = nameof(Update), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = ex }; _logger.AddErrorLog(logData); return(InternalServerError()); } }
private static RoadMap FromRpcModel(RoadMapData roadMap) { return(new RoadMap { Id = roadMap.Id, CreatedOn = roadMap.CreatedOn == null ? DateTime.MinValue : roadMap.CreatedOn.ToDateTime(), StaffId = roadMap.StaffId, Status = (RoadMapStatus)System.Enum.Parse(typeof(RoadMapStatus), roadMap.Status.ToString(), true), Tasks = roadMap.Tasks }); }
public void Setup() { InitializeMocks(); InitializeLoggerMock(new RoadMapsController(null, null, null)); _roadMapData = new RoadMapData { CreatedOn = Timestamp.FromDateTime(_dateTimeUtil.GetCurrentDateTime()), Id = 1, StaffId = 1, Status = 1, Tasks = "test" }; _controller = new RoadMapsController(_roadMapsClient, _logger, _dateTimeUtil); }
public void GetByStaffId_should_return_road_map_accociated_with_staff_id() { // Arrange ByStaffRequest request = new() { StaffId = _staff.Id }; RoadMapResponse response = new() { Status = new BaseResponse { Code = Code.Success, ErrorMessage = string.Empty }, Data = new RoadMapData() { Id = _roadMap.Id, StaffId = _roadMap.StaffId, CreatedOn = Timestamp.FromDateTime(_roadMap.CreatedOn), Status = (int)_roadMap.Status, Tasks = _roadMap.Tasks } }; LogData expectedLog = new() { CallSide = nameof(RoadMapsService), CallerMethodName = nameof(_roadMapsService.GetByStaffId), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = response }; // Act RoadMapResponse actual = _roadMapsService.GetByStaffId(request, null).Result; // Assert Assert.AreEqual(response, actual, "Rasponse as expected"); _loggerMock.Verify(m => m.AddLog(expectedLog), Times.Once); _roadMapRepositoryMock.Verify(m => m.GetByStaffId(request.StaffId), Times.Once); } [Test]
public override async Task <BaseResponse> AddAsync(RoadMapData request, ServerCallContext context) { try { RoadMap roadMap = FromRpcModel(request); int result = await _roadMapRepository.AddAsync(roadMap); if (result == 0) { throw new Exception("Road map was not saved"); } BaseResponse response = new() { Code = Code.Success, DataId = roadMap.Id, ErrorMessage = string.Empty }; LogData log = new() { CallSide = nameof(RoadMapsService), CallerMethodName = nameof(AddAsync), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = response }; _logger.AddLog(log); return(response); } catch (ArgumentException aex) { LogData log = new() { CallSide = nameof(RoadMapsService), CallerMethodName = nameof(AddAsync), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = aex }; _logger.AddErrorLog(log); return(new BaseResponse { Code = Code.DataError, ErrorMessage = aex.Message }); } catch (InvalidOperationException ioex) { LogData log = new() { CallSide = nameof(RoadMapsService), CallerMethodName = nameof(AddAsync), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = ioex }; _logger.AddErrorLog(log); return(new BaseResponse { Code = Code.DataError, ErrorMessage = ioex.Message }); } catch (DbUpdateException duex) { LogData log = new() { CallSide = nameof(RoadMapsService), CallerMethodName = nameof(AddAsync), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = duex }; _logger.AddErrorLog(log); return(new BaseResponse { Code = Code.DbError, ErrorMessage = "An error occured while saving road map" }); } catch (Exception ex) { LogData log = new() { CallSide = nameof(RoadMapsService), CallerMethodName = nameof(AddAsync), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = ex }; _logger.AddErrorLog(log); return(new BaseResponse { Code = Code.UnknownError, ErrorMessage = ex.Message }); } }