Example #1
0
        private static HttpResponse InvokeAction(HttpRequest request, IserviceCollection serviceCollection, Type controllerType, MethodInfo actionMethod)
        {
            var controller = serviceCollection.CreateInstance(controllerType) as Controller;

            controller.Request = request;

            var actionParameterValues = new List <object>();
            var actionParameters      = actionMethod.GetParameters();

            foreach (var parameter in actionParameters)
            {
                var value = Convert.ChangeType(GetValueFromRequest(request, parameter.Name), parameter.ParameterType);
                if (value == null && parameter.ParameterType != typeof(string))
                {
                    var parameterValue = Activator.CreateInstance(parameter.ParameterType);
                    foreach (var property in parameter.ParameterType.GetProperties(BindingFlags.Public | BindingFlags.Instance))
                    {
                        var propertyValue = GetValueFromRequest(request, property.Name);
                        property.SetValue(parameterValue, Convert.ChangeType(propertyValue, property.PropertyType));
                    }

                    actionParameterValues.Add(parameterValue);
                }
                else
                {
                    actionParameterValues.Add(value);
                }
            }

            var response = actionMethod.Invoke(controller, actionParameterValues.ToArray()) as HttpResponse;

            return(response);
        }
Example #2
0
 public void ConfigureServcies(IserviceCollection services)
 {
     services.AddRazorPages();
     services.AddServerSideBlazor();
 }
Example #3
0
 public void ConfigureService(IserviceCollection service)
 {
     services.AddTransient <IBookingService, BookingService>();
     services.MVC
 }
Example #4
0
 public void ConfigureServices(IserviceCollection serviceCollection)
 {
     serviceCollection.Add <IUsersService, UsersService>();
     serviceCollection.Add <ITripService, TripService>();
 }
 public static IserviceCollection AddInfrastructure(this IserviceCollection services, IConfiguration configuration)
 {
     return(services);
 }
Example #6
0
        // /{controller}/{action}/
        private static void AutoRegisterActionRoutes(IList <Route> routeTable, IMvcApplication application, IserviceCollection serviceCollection)
        {
            var controllers = application.GetType().Assembly.GetTypes()
                              .Where(type => type.IsSubclassOf(typeof(Controller)) && !type.IsAbstract);

            foreach (var controller in controllers)
            {
                var actions = controller.GetMethods()
                              .Where(x => !x.IsSpecialName &&
                                     !x.IsConstructor &&
                                     x.IsPublic &&
                                     x.DeclaringType == controller);
                foreach (var action in actions)
                {
                    string url = "/" + controller.Name.Replace("Controller", string.Empty) + "/" + action.Name;

                    var attribute = action.GetCustomAttributes()
                                    .FirstOrDefault(x => x.GetType()
                                                    .IsSubclassOf(typeof(HttpMethodAttribute)))
                                    as HttpMethodAttribute;
                    var httpActionType = HttpMethodType.Get;
                    if (attribute != null)
                    {
                        httpActionType = attribute.Type;
                        if (attribute.Url != null)
                        {
                            url = attribute.Url;
                        }
                    }

                    routeTable.Add(new Route(httpActionType, url, (request) => InvokeAction(request, serviceCollection, controller, action)));
                }
            }
        }
Example #7
0
 public void ConfigureServices(IserviceCollection serviceCollection)
 {
     serviceCollection.Add <IUsersService, UsersService>();
     serviceCollection.Add <IProductService, ProductService>();
 }
Example #8
0
 public void ConfigureServices(IserviceCollection serviceCollection)
 {
     serviceCollection.Add <IUsersService, UsersService>();
     serviceCollection.Add <IProblemsService, ProblemsService>();
     serviceCollection.Add <ISubmissionsService, SubmissionsService>();
 }