Esempio n. 1
0
        public override async Task <DefaultResponse> SendRegistrationProcess(RegistrationProcessRequest request, ServerCallContext context)
        {
            var result = await AddAsync(request);

            return(new DefaultResponse {
                Status = result
            });
        }
Esempio n. 2
0
        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);
            }
        }