Beispiel #1
0
 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;
 }
Beispiel #2
0
 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;
 }
Beispiel #4
0
 public DeleteCountryHandler(GymOrganizerContext db, ILoggerFactory loggerFactory, AppSettings settings) : base(loggerFactory)
 {
     this.settings      = settings;
     this.logger        = loggerFactory.CreateLogger <DeleteCountryHandler>();
     this.db            = db;
     this.loggerFactory = loggerFactory;
 }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
 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);
 }
Beispiel #7
0
 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);
 }
Beispiel #8
0
 public UsersController(GymOrganizerContext db, ILogger <UsersController> logger, UserService userService) : base(db)
 {
     this.logger      = logger;
     this.db          = db;
     this.UserService = userService;
 }
Beispiel #9
0
 public IndexModel(GymOrganizerContext db, AppSettings appSettings, IQueueHandler queueHandler)
 {
     this.db           = db;
     this.appSettings  = appSettings;
     this.queueHandler = queueHandler;
 }
Beispiel #10
0
 public AuthController(GymOrganizerContext db)
 {
     this.db = db;
 }
Beispiel #11
0
 public static IQueryable <User> GetUserById(this GymOrganizerContext db, Guid tenantId, Guid userId)
 {
     return(GetAllUsers(db, tenantId).Where(x => x.Id == userId));
 }
Beispiel #12
0
 public static IQueryable <Country> GetCountryById(this GymOrganizerContext db, Guid tenantId, Guid countryId)
 {
     return(GetAllCountries(db, tenantId).Where(x => x.Id == countryId));
 }
Beispiel #13
0
 public UserService(GymOrganizerContext db, ILogger <UserService> logger, IQueueHandler queueHandler)
 {
     this.db           = db;
     this.logger       = logger;
     this.queueHandler = queueHandler;
 }
Beispiel #14
0
 public TermsController(ILogger <TermsController> logger, TermService termService, GymOrganizerContext db) : base(db)
 {
     this.Logger      = logger;
     this.TermService = termService;
 }
Beispiel #15
0
 public static IQueryable <Country> GetAllCountries(this GymOrganizerContext db, Guid tenantId)
 {
     return(db.Countries.Where(x => x.TenantId == tenantId && x.Status != Enums.ExistenceStatus.Deleted));
 }
Beispiel #16
0
 public static IQueryable <City> GetAllCitiesForCountry(this GymOrganizerContext db, Guid tenantId, Guid countryId)
 {
     return(GetAllCities(db, tenantId).Where(x => x.CountryId == countryId));
 }
Beispiel #17
0
 public OfficeService(ILogger <OfficeService> logger, GymOrganizerContext db, IQueueHandler queueHandler)
 {
     this.logger       = logger;
     this.db           = db;
     this.queueHandler = queueHandler;
 }
Beispiel #18
0
 public static IQueryable <City> GetCityById(this GymOrganizerContext db, Guid tenantId, Guid cityId)
 {
     return(GetAllCities(db, tenantId).Where(x => x.Id == cityId));
 }
Beispiel #19
0
        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();
                }
        }
Beispiel #20
0
 public static IQueryable <Office> GetOfficeById(this GymOrganizerContext db, Guid tenantId, Guid officeId)
 {
     return(GetAllOffices(db, tenantId).Where(x => x.Id == officeId));
 }
Beispiel #21
0
 public static IQueueHandler GetQueueHandler(AppSettings settings, GymOrganizerContext db)
 {
     return(new RabbitMQHandler(settings, db));
 }
Beispiel #22
0
 public static IQueryable <Tenant> GetTenantById(this GymOrganizerContext db, Guid tenantId)
 {
     return(GetAllTenants(db).Where(x => x.Id == tenantId));
 }
Beispiel #23
0
        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);
            }
        }
Beispiel #24
0
 public RabbitMQHandler(AppSettings settings, GymOrganizerContext db)
 {
     this._settings = settings;
     this._db       = db;
 }
Beispiel #25
0
 public static IQueryable <Country> GetAllActiveCountries(this GymOrganizerContext db, Guid tenantId)
 {
     return(GetAllCountries(db, tenantId).Where(x => x.Status == Enums.ExistenceStatus.Active));
 }
Beispiel #26
0
 public static IQueryable <Tenant> GetAllActiveTenants(this GymOrganizerContext db)
 {
     return(GetAllTenants(db).Where(x => x.Status == Enums.ExistenceStatus.Active));
 }
Beispiel #27
0
 public TermLogic(GymOrganizerContext db, Dictionary <string, string> additionalData, ILoggerFactory loggerFactory)
 {
     this.db             = db;
     this.additionalData = additionalData;
     this.logger         = loggerFactory.CreateLogger <TermLogic>();
 }
Beispiel #28
0
 public static IQueryable <Tenant> GetAllTenants(this GymOrganizerContext db)
 {
     return(db.Tenants.Where(x => x.Status != Enums.ExistenceStatus.Deleted));
 }
Beispiel #29
0
 public TermService(GymOrganizerContext db, IQueueHandler queueHandler)
 {
     this.db           = db;
     this.queueHandler = queueHandler;
 }
Beispiel #30
0
 public static IQueryable <Office> GetAllOfficesForCity(this GymOrganizerContext db, Guid tenantId, Guid cityId)
 {
     return(GetAllOffices(db, tenantId).Where(x => x.CityId == cityId));
 }