Exemple #1
0
 public LocationsController(
     IConfiguration configuration,
     FoodTruckContext foodTruckContext)
 {
     Configuration = configuration;
     Repository    = new LocationRepository(foodTruckContext);
 }
Exemple #2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, FoodTruckContext context)
        {
            // Initialize the DB with dat from the food truck CSV
            //var context = app.ApplicationServices.GetService<FoodTruckDbContext>();
            InitData(context);

            // Enable middleware to serve generated Swagger as a JSON endpoint.
            app.UseSwagger();

            // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
            // specifying the Swagger JSON endpoint.
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Food Trucks Service API");
            });

            app.UseSerilogRequestLogging();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapHealthChecks("/healthz");
            });
        }
 public PaymentController(FoodTruckContext context, AzureSettings azureSettings) : base(context)
 {
     _handler         = new OrderHandler(context, "system");
     _azureSettings   = azureSettings;
     _settingHandler  = new SettingHandler(context);
     _squareLocations = new SquareLocationHandler(context, "system").GetAll();
 }
Exemple #4
0
        public void Setup()
        {
            // Setup DB conmtext and provider
            Mock <ILogger <FoodTruckProvider> > loggerMock = new Mock <ILogger <FoodTruckProvider> >();

            foodTruckProviderLogger = loggerMock.Object;


            var dbOptions = new DbContextOptionsBuilder <FoodTruckContext>()
                            .UseInMemoryDatabase(databaseName: "FoodTrucks")
                            .Options;

            foodTruckContext  = new FoodTruckContext(dbOptions);
            foodTruckProvider = new FoodTruckProvider(foodTruckProviderLogger, foodTruckContext);

            // Seed test data
            CsvParserOptions csvParserOptions = new CsvParserOptions(true, ',');
            var csvParser = new CsvParser <Core.Models.FoodTruck>(csvParserOptions, new CsvFoodTruckMapping());
            var records   = csvParser.ReadFromFile("Resources/Mobile_Food_Facility_Permit.csv", Encoding.UTF8).ToList();

            foreach (var record in records)
            {
                if (record.IsValid)
                {
                    foodTruckContext.FoodTrucks.Add(record.Result);
                }
            }

            foodTruckContext.SaveChanges();
        }
Exemple #5
0
 public Update(FoodTruckContext context, string user, Setting setting) : base(context, user)
 {
     _settings = new List <Setting>()
     {
         setting
     };
     _singleUpdate = true;
 }
Exemple #6
0
 public GetAll(FoodTruckContext context, DateTimeOffset begins, DateTimeOffset?ends = null, bool isDeleted = false, bool isSandbox = false, bool showMade = false) : base(context)
 {
     _isDeleted = isDeleted;
     _isSandbox = isSandbox;
     _showMade  = showMade;
     _begins    = begins;
     _ends      = ends ?? _begins.AddDays(1);
 }
        public ScheduleRepository(FoodTruckContext context)
        {
            _foodTruckContext = context;

            _baseQuery = _foodTruckContext.Schedules
                         .Include(s => s.Location)
                         .Include(s => s.FoodTruck);
        }
        public LocationsControllerTests()
        {
            var optionsBuilder = new DbContextOptionsBuilder <FoodTruckContext>();

            Context = new FoodTruckContext(
                optionsBuilder
                .UseInMemoryDatabase(databaseName: $"{Guid.NewGuid()}")
                .Options);
        }
Exemple #9
0
 public LocationsController(
     IConfiguration configuration,
     FoodTruckContext foodTruckContext,
     IGeocoder geocoder)
 {
     Configuration = configuration;
     Geocoder      = geocoder;
     Repository    = new LocationRepository(foodTruckContext);
 }
Exemple #10
0
        public LocationsControllerCreateTests()
        {
            var optionsBuilder = new DbContextOptionsBuilder <FoodTruckContext>();

            Context = new FoodTruckContext(
                optionsBuilder
                .UseInMemoryDatabase(databaseName: "FoodTruckDemo")
                .Options);
        }
Exemple #11
0
        public static void DoNotification(FoodTruckContext context, AdminAppSettings settings, AzureSettings azureSettings, OrderModel order, OrderHandler orderHandler)
        {
            orderHandler = orderHandler ?? new OrderHandler(context, "system");
            var isTextOn = new SettingHandler(context).Get(new[] { SettingName.IsTextOn }).FirstOrDefault().Value.ToString().ToUpper().Equals("true", StringComparison.OrdinalIgnoreCase);

            Parallel.Invoke(
                () => NotificationEmail(settings, azureSettings, order),
                () => { if (isTextOn)
                        {
                            NotificationText(settings, order);
                        }
                }
                );
            orderHandler.Notify(order.Id);
        }
 public AccountController(
     ApplicationDbContext userContext,
     FoodTruckContext context,
     UserManager <ApplicationUser> userManager,
     SignInManager <ApplicationUser> signInManager,
     IEmailSender emailSender,
     ILogger <AccountController> logger,
     AzureSettings azureSettings) : base(context)
 {
     _userContext   = userContext;
     _userManager   = userManager;
     _signInManager = signInManager;
     _emailSender   = emailSender;
     _logger        = logger;
     _azureSettings = azureSettings;
 }
        public SystemController(FoodTruckContext context, AzureSettings azureSettings) : base(context)
        {
            _azureSettings  = azureSettings;
            _handler        = new SubscriptionHandler(_context);
            _settingHandler = new SettingHandler(_context);

            _settings = new SystemModel(_settingHandler.Get(new[] {
                SettingName.Title,
                SettingName.ContactEmail,
                SettingName.TwilioAuthToken,
                SettingName.TwilioPhoneNumber,
                SettingName.TwilioSid,
                SettingName.OrderNotificationEmails,
                SettingName.Location
            }));
        }
        public LocationsControllerCreateTests()
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                          .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true)
                          .AddEnvironmentVariables();

            Configuration = builder.Build();

            var optionsBuilder = new DbContextOptionsBuilder <FoodTruckContext>();

            Context = new FoodTruckContext(
                optionsBuilder
                .UseInMemoryDatabase(databaseName: "FoodTruckDemo")
                .Options);
        }
Exemple #15
0
        /// <summary>
        /// Parse and store the data records from the food truck CSV
        /// </summary>
        /// <param name="context"></param>
        private void InitData(FoodTruckContext context)
        {
            CsvParserOptions csvParserOptions = new CsvParserOptions(true, ',');
            var csvParser = new CsvParser <Core.Models.FoodTruck>(csvParserOptions, new CsvFoodTruckMapping());
            var records   = csvParser.ReadFromFile("Resources/Mobile_Food_Facility_Permit.csv", Encoding.UTF8).ToList();

            foreach (var record in records)
            {
                if (record.IsValid)
                {
                    context.FoodTrucks.Add(record.Result);
                }
                else
                {
                    Log.Information($"Invalid record: {record.Error}");
                }
            }

            context.SaveChanges();
        }
Exemple #16
0
        public ManageController(
            FoodTruckContext context,
            UserManager <ApplicationUser> userManager,
            SignInManager <ApplicationUser> signInManager,
            IEmailSender emailSender,
            ILogger <ManageController> logger,
            UrlEncoder urlEncoder,
            AzureSettings azureSettings) : base(context)
        {
            _userManager   = userManager;
            _signInManager = signInManager;
            _emailSender   = emailSender;
            _logger        = logger;
            _urlEncoder    = urlEncoder;
            _azureSettings = azureSettings;

            _fromEmail = new Query.Settings.Get(_context,
                                                new List <string>()
            {
                SettingName.ContactEmail
            })
                         .ExecuteAndReturnResults().First().Value;
        }
Exemple #17
0
 public MenuController(FoodTruckContext context) : base(context)
 {
     _handler = new MenuItemHandler(_context, "system");
 }
 public RecipeCreateHandler(FoodTruckContext context, IUserSession userSession)
 {
     _context     = context;
     _userSession = userSession;
 }
 public RecipeCreateHandler(FoodTruckContext context)
     : this(context, new UserSession())
 {
 }
Exemple #20
0
 public PriceController(FoodTruckContext context) : base(context)
 {
 }
Exemple #21
0
        public SettingsModel(AzureSettings azureSettings, IEnumerable <SquareLocationModel> squareLocations, SystemModel system, FoodTruckContext context)
        {
            _system = system;

            TimeZoneOffsetFromUtcInHours = -6;
            Int32.TryParse(system.Settings[SettingName.TimeZoneOffsetFromUtcInHours], out TimeZoneOffsetFromUtcInHours);
            StopOrderingMinutesToClose = 30;
            Int32.TryParse(system.Settings[SettingName.StopOrderingMinutesToClose], out StopOrderingMinutesToClose);

            Square = squareLocations.Select(x => new SquareLocationModel()
            {
                Name = x.Name, ApplicationId = x.ApplicationId, LocationId = x.LocationId
            });

            Title           = system.Settings[SettingName.Title];
            SubTitle        = system.Settings[SettingName.SubTitle];
            TagLine         = system.Settings[SettingName.Tagline];
            Description     = system.Settings[SettingName.Description];
            Author          = system.Settings[SettingName.Author];
            Keywords        = system.Settings[SettingName.Keywords];
            LogoImageUrl    = system.Settings[SettingName.LogoImageUrl];
            BannerImageUrl  = system.Settings[SettingName.BannerImageUrl];
            FaviconImageUrl = system.Settings[SettingName.FaviconImageUrl];
            ContactPhone    = system.Settings[SettingName.ContactPhone];

            if (system != null)
            {
                IsBrickAndMortar = SetBool(SettingName.BrickAndMortarMode, true);
                IsApplyOn        = SetBool(SettingName.IsApplyOn);
                IsOrderingOn     = SetBool(SettingName.IsOrderingOn) && squareLocations.Any();
                IsTextOn         = SetBool(SettingName.IsTextOn);

                GoogleMapsApiKey = _system.Get(SettingName.GoogleMapsApiKey);

                SetLink(SettingName.DoorDashLink, "https://cdn.doordash.com/media/button/209x45_white.png");
                SetLink(SettingName.GrubHubLink, "grubhub.jpg");
                SetLink(SettingName.PostmatesLink, "postmates.png");

                foreach (string s in new[] { SettingName.Facebook, SettingName.Twitter, SettingName.Instagram, SettingName.LinkedIn, SettingName.Pinterest })
                {
                    AddValueToDictionaryIfValid(Social, s);
                }

                foreach (var d in Enumerable.Range(0, 7))
                {
                    var day = ((DayOfWeek)d).ToString();
                    Schedule.Add(day, new Schedule(day, system.Settings));
                }

                IsValidTimeForOnlineOrder = GetIsValidTimeForOnlineOrder();
            }
        }
Exemple #22
0
 public LocationRepository(FoodTruckContext context)
 {
     _foodTruckContext = context;
 }
Exemple #23
0
 public GetAll(FoodTruckContext context, bool?isEmail = null, IEnumerable <string> locations = null, string subscriber = "") : base(context)
 {
     _isEmail    = isEmail;
     _locations  = locations?.Select(x => Subscription.SanitizeLocation(x)).Distinct() ?? null;
     _subscriber = subscriber.ToLower().Trim();
 }
 public AppointmentsController(FoodTruckContext context)
 {
     this.appointmentRepository = new AppointmentsRepository(context);
 }
Exemple #25
0
 public static void DoNotification(FoodTruckContext context, AdminAppSettings settings, AzureSettings azureSettings, int id, OrderHandler orderHandler)
 {
     orderHandler = orderHandler ?? new OrderHandler(context, "system");
     DoNotification(context, settings, azureSettings, orderHandler.Get(id, settings.TimeZoneOffsetFromUtcInHours), orderHandler);
 }
 public EventController(FoodTruckContext context) : base(context)
 {
 }
Exemple #27
0
 public TagRepository(FoodTruckContext context)
 {
     _dataContext = context;
 }
Exemple #28
0
 public GetAll(FoodTruckContext context, bool isDeleted = false) : base(context)
 {
     _isDeleted = isDeleted;
 }
 public EventsController(FoodTruckContext context, AzureSettings azureSettings) : base(context)
 {
     _azureSettings = azureSettings;
     _handler       = new Data.Distribution.Handlers.Events.EventHandler(_context, "system");
 }
 public LocationController(FoodTruckContext context) : base(context)
 {
 }