public UserLogic(GymOrganizerContext db, Dictionary <string, string> additionalData, ILoggerFactory loggerFactory, AppSettings settings) { this.db = db; this.additionalData = additionalData; this.logger = loggerFactory.CreateLogger <UserLogic>(); this.settings = settings; }
public ExceptionFilter(IHostingEnvironment hostingEnvironment, IModelMetadataProvider modelMetadataProvider, ILogger <ExceptionFilter> logger, GymOrganizerContext db) { this.hostingEnvironment = hostingEnvironment; this.modelMetadataProvider = modelMetadataProvider; this.logger = logger; this.db = db; }
public AddTenantHandler(GymOrganizerContext db, ILoggerFactory loggerFactory, AppSettings settings) : base(loggerFactory) { this.settings = settings; this.logger = loggerFactory.CreateLogger <AddTenantHandler>(); this.db = db; this.loggerFactory = loggerFactory; }
public DeleteCountryHandler(GymOrganizerContext db, ILoggerFactory loggerFactory, AppSettings settings) : base(loggerFactory) { this.settings = settings; this.logger = loggerFactory.CreateLogger <DeleteCountryHandler>(); this.db = db; this.loggerFactory = loggerFactory; }
private async Task DoWork(string message, IModel channel, ulong deliveryTag, GymOrganizerContext db) { if (string.IsNullOrEmpty(message)) { Nack(channel, deliveryTag); return; } ProcessQueueHistory request = null; try { var queueRequestId = Guid.Parse(message); request = await db.ProcessQueuesHistory.Where(x => x.Id == queueRequestId).FirstOrDefaultAsync(); using (GymOrganizerContext processContext = new GymOrganizerContext(this.settings.Data.Model.ConnectionString)) { IHandler handler = HandlerFactory.GetHandler(request.Type, this.loggerFactory, processContext, this.settings); if (handler == null) { this.logger.LogError($"Method DoWork: Error processing request: {message}. Request type is not supported."); Nack(channel, deliveryTag); } QueueResult response = await handler.Handle(request.Data); response.TenantId = request.TenantId; response.UserId = request.AddedById; response.RequestOueueId = request.Id; await NotifyApi(request, response); Ack(channel, deliveryTag); request.FinishedAt = DateTime.UtcNow; request.Status = Data.Enums.ResultStatus.Ok; await db.SaveChangesAsync(); } } catch (Exception ex) { this.logger.LogError($"Method DoWork: Error processing request: {message}. MEESAGE: {ex.Message}"); if (request != null) { request.Status = Data.Enums.ResultStatus.Error; request.FinishedAt = DateTime.UtcNow; request.ErrorMesage = ex.Message; await db.SaveChangesAsync(); } Nack(channel, deliveryTag); } }
public static Guid ExtractUserFromToken(ClaimsPrincipal httpUser, GymOrganizerContext db) { if (httpUser.Identity.IsAuthenticated) { var userId = httpUser.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value; if (!string.IsNullOrEmpty(userId)) { return(Guid.Parse(userId)); } } return(Guid.Empty); }
public static Guid ExtractTenantFromToken(ClaimsPrincipal httpUser, GymOrganizerContext db) { if (httpUser.Identity.IsAuthenticated) { var userId = httpUser.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value; if (!string.IsNullOrEmpty(userId)) { var userIdGuid = Guid.Parse(userId); var user = db.Users.FirstOrDefault(x => x.Id == userIdGuid); if (user != null) { return(user.TenantId); } } } return(Guid.Empty); }
public UsersController(GymOrganizerContext db, ILogger <UsersController> logger, UserService userService) : base(db) { this.logger = logger; this.db = db; this.UserService = userService; }
public IndexModel(GymOrganizerContext db, AppSettings appSettings, IQueueHandler queueHandler) { this.db = db; this.appSettings = appSettings; this.queueHandler = queueHandler; }
public AuthController(GymOrganizerContext db) { this.db = db; }
public static IQueryable <User> GetUserById(this GymOrganizerContext db, Guid tenantId, Guid userId) { return(GetAllUsers(db, tenantId).Where(x => x.Id == userId)); }
public static IQueryable <Country> GetCountryById(this GymOrganizerContext db, Guid tenantId, Guid countryId) { return(GetAllCountries(db, tenantId).Where(x => x.Id == countryId)); }
public UserService(GymOrganizerContext db, ILogger <UserService> logger, IQueueHandler queueHandler) { this.db = db; this.logger = logger; this.queueHandler = queueHandler; }
public TermsController(ILogger <TermsController> logger, TermService termService, GymOrganizerContext db) : base(db) { this.Logger = logger; this.TermService = termService; }
public static IQueryable <Country> GetAllCountries(this GymOrganizerContext db, Guid tenantId) { return(db.Countries.Where(x => x.TenantId == tenantId && x.Status != Enums.ExistenceStatus.Deleted)); }
public static IQueryable <City> GetAllCitiesForCountry(this GymOrganizerContext db, Guid tenantId, Guid countryId) { return(GetAllCities(db, tenantId).Where(x => x.CountryId == countryId)); }
public OfficeService(ILogger <OfficeService> logger, GymOrganizerContext db, IQueueHandler queueHandler) { this.logger = logger; this.db = db; this.queueHandler = queueHandler; }
public static IQueryable <City> GetCityById(this GymOrganizerContext db, Guid tenantId, Guid cityId) { return(GetAllCities(db, tenantId).Where(x => x.Id == cityId)); }
public void Start(string[] args) { this.logger.LogInformation($"RabbitMQ is started with parameter: {(args.Length == 0 ? "Empty" : args[0].ToString())} "); var factory = new ConnectionFactory() { HostName = this.settings.RabbitMQ.Host, UserName = "******", Password = "******" }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { var exchange = this.settings.RabbitMQ.Exchange; channel.ExchangeDeclare(exchange: exchange, type: "topic"); var queueName = ""; #region Args configuration if (args.Length == 0) { queueName = channel .QueueDeclare(this.settings.RabbitMQ.QueueName, true, false, false, null) .QueueName; channel.QueueBind(queue: queueName, exchange: this.settings.RabbitMQ.Exchange, routingKey: "#"); } else if (args.Length == 1) { queueName = channel .QueueDeclare(args[0], true, false, false, null) .QueueName; channel.QueueBind(queue: queueName, exchange: this.settings.RabbitMQ.Exchange, routingKey: $"{args[0]}.#"); } #endregion Console.WriteLine("Waiting for messages..."); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var body = ea.Body; var message = Encoding.UTF8.GetString(body); var routingKey = ea.RoutingKey; Console.WriteLine($"Debug: Received '{routingKey}':'{message}'"); using (GymOrganizerContext db = new GymOrganizerContext(this.settings.Data.Model.ConnectionString)) { DoWork(message, channel, ea.DeliveryTag, db).GetAwaiter().GetResult(); } Console.WriteLine("-------------------------------------------------------------"); }; channel.BasicConsume(queue: queueName, autoAck: false, consumer: consumer); Console.ReadLine(); } }
public static IQueryable <Office> GetOfficeById(this GymOrganizerContext db, Guid tenantId, Guid officeId) { return(GetAllOffices(db, tenantId).Where(x => x.Id == officeId)); }
public static IQueueHandler GetQueueHandler(AppSettings settings, GymOrganizerContext db) { return(new RabbitMQHandler(settings, db)); }
public static IQueryable <Tenant> GetTenantById(this GymOrganizerContext db, Guid tenantId) { return(GetAllTenants(db).Where(x => x.Id == tenantId)); }
public static IHandler GetHandler(ProcessType type, ILoggerFactory loggerFactory, GymOrganizerContext db, AppSettings settings) { switch (type) { case ProcessType.AddOffice: return(new AddOfficeHandler(db, loggerFactory, settings)); case ProcessType.EditOffice: return(new EditOfficeHandler(db, loggerFactory, settings)); case ProcessType.DeleteOffice: return(new DeleteOfficeHandler(db, loggerFactory, settings)); case ProcessType.AddCity: return(new AddCityHandler(db, loggerFactory, settings)); case ProcessType.EditCity: return(new EditCityHandler(db, loggerFactory, settings)); case ProcessType.DeleteCity: return(new DeleteCityHandler(db, loggerFactory, settings)); case ProcessType.AddCountry: return(new AddCountryHandler(db, loggerFactory, settings)); case ProcessType.EditCountry: return(new EditCountryHandler(db, loggerFactory, settings)); case ProcessType.DeleteCountry: return(new DeleteCountryHandler(db, loggerFactory, settings)); case ProcessType.AddTerm: return(new AddTermHandler(db, loggerFactory, settings)); case ProcessType.EditTerm: return(new EditTermHandler(db, loggerFactory, settings)); case ProcessType.DeleteTerm: return(new DeleteTermHandler(db, loggerFactory, settings)); case ProcessType.AddTenant: return(new AddTenantHandler(db, loggerFactory, settings)); case ProcessType.EditTenant: return(new EditTenantHandler(db, loggerFactory, settings)); case ProcessType.AddUser: return(new AddUserHandler(db, loggerFactory, settings)); case ProcessType.EditUser: return(new EditUserHandler(db, loggerFactory, settings)); case ProcessType.DeleteUser: return(new DeleteUserHandler(db, loggerFactory, settings)); case ProcessType.HealthCheck: return(new HealthCheckHandler(db, loggerFactory, settings)); default: return(null); } }
public RabbitMQHandler(AppSettings settings, GymOrganizerContext db) { this._settings = settings; this._db = db; }
public static IQueryable <Country> GetAllActiveCountries(this GymOrganizerContext db, Guid tenantId) { return(GetAllCountries(db, tenantId).Where(x => x.Status == Enums.ExistenceStatus.Active)); }
public static IQueryable <Tenant> GetAllActiveTenants(this GymOrganizerContext db) { return(GetAllTenants(db).Where(x => x.Status == Enums.ExistenceStatus.Active)); }
public TermLogic(GymOrganizerContext db, Dictionary <string, string> additionalData, ILoggerFactory loggerFactory) { this.db = db; this.additionalData = additionalData; this.logger = loggerFactory.CreateLogger <TermLogic>(); }
public static IQueryable <Tenant> GetAllTenants(this GymOrganizerContext db) { return(db.Tenants.Where(x => x.Status != Enums.ExistenceStatus.Deleted)); }
public TermService(GymOrganizerContext db, IQueueHandler queueHandler) { this.db = db; this.queueHandler = queueHandler; }
public static IQueryable <Office> GetAllOfficesForCity(this GymOrganizerContext db, Guid tenantId, Guid cityId) { return(GetAllOffices(db, tenantId).Where(x => x.CityId == cityId)); }