public override async Task <DefaultResponse> SendRegistrationProcess(RegistrationProcessRequest request, ServerCallContext context) { var result = await AddAsync(request); return(new DefaultResponse { Status = result }); }
private async Task <bool> AddAsync(RegistrationProcessRequest request) { using var sql = new SqlConnection(_connectionString); await sql.OpenAsync(); using var transaction = sql.BeginTransaction(); SqlCommand command = sql.CreateCommand(); command.Transaction = transaction; var report = new Report { Events = request.Events, ID = Guid.NewGuid(), LevelTypeID = (byte)request.LevelTypeID, ReportDescription = request.ReportDescription, ReportSource = request.ReportSource, Title = request.Title, Details = request.Details }; var registrationProcess = new RegistrationProcess { ReportID = report.ID, CreatedDate = DateTimeOffset.UtcNow, ID = Guid.NewGuid(), EnvironmentTypeID = (byte)request.EnvironmentTypeID, IsActive = true, OwnerID = Guid.Parse(request.OwnerID) }; command = await AddReportAsync(command, report); command = await AddRegistrationProcessAsync(command, registrationProcess); try { await transaction.CommitAsync(); sql.Close(); return(true); } catch (Exception ex) { await transaction.RollbackAsync(); sql.Close(); return(false); } }