public async Task <ISingleViewModelResponse <ServiceEnvironmentStatusLog> > CreateServiceEnvironmentStatusLogAsync(ServiceEnvironmentStatusLog entity, Int32?serviceEnvironmentID) { Logger?.LogDebug("'{0}' has been invoked", nameof(CreateServiceEnvironmentStatusLogAsync)); var response = new SingleViewModelResponse <ServiceEnvironmentStatusLog>(); using (var transaction = await DbContext.Database.BeginTransactionAsync()) { try { var serviceEnvStatus = await Repository.GetByServiceEnvironmentAsync(new ServiceEnvironment { ServiceEnvironmentID = serviceEnvironmentID }); if (serviceEnvStatus == null) { serviceEnvStatus = new ServiceEnvironmentStatus(); serviceEnvStatus.ServiceEnvironmentID = serviceEnvironmentID; serviceEnvStatus.Success = entity.Success; serviceEnvStatus.WatchCount = 1; serviceEnvStatus.LastWatch = DateTime.Now; await Repository.CreateServiceEnvironmentStatusAsync(serviceEnvStatus); Logger?.LogInformation("The status for service environment was saved successfully"); } else { serviceEnvStatus.Success = entity.Success; serviceEnvStatus.WatchCount += 1; serviceEnvStatus.LastWatch = DateTime.Now; Logger?.LogInformation("The status for service environment was updated successfully"); } entity.ServiceEnvironmentStatusID = serviceEnvStatus.ServiceEnvironmentStatusID; await Repository.CreateServiceEnvironmentStatusLogAsync(entity); Logger?.LogInformation("The status details for service environment was created successfully"); transaction.Commit(); response.Model = entity; } catch (Exception ex) { transaction.Rollback(); response.SetError(Logger, ex); } } return(response); }
public async Task <ISingleViewModelResponse <ServiceEnvironmentStatus> > GetServiceStatusAsync(ServiceEnvironmentStatus entity) { Logger?.LogDebug("'{0}' has been invoked", nameof(GetServiceStatusAsync)); var response = new SingleViewModelResponse <ServiceEnvironmentStatus>(); try { response.Model = await Repository .GetServiceEnvironmentStatusAsync(entity); } catch (Exception ex) { response.SetError(Logger, ex); } return(response); }