Ejemplo n.º 1
0
        public static ModuleMember BackendApiService(WebApiMetadata api)
        => MODULE(new[] { "src", "services" }, ID(api.ServiceName, "Service"), () => {
            IMPORT.DEFAULT("axios", out var @axios).FROM("axios");

            EXPORT.CLASS(ID(api.ServiceName, "Service"), () => {
                api.ApiMethods.ForEach(apiMethod => {
                    var methodUrl = api.GetMethodUrl(apiMethod);

                    //TODO: separate language-specific parts of fluent code DSL
                    //For instance, 'PUBLIC' and 'PRIVATE' are not defined in JavaScript, and 'IMPORT' is not defined in C#

                    PUBLIC.STATIC.FUNCTION(apiMethod.Name, () => {
                        var arguments = apiMethod.Signature.Parameters.Select((parameter, index) => {
                            PARAMETER(parameter.Name, out var @param);
                            return(@param);
                        }).ToList();

                        FINAL("data", out var @data, INITOBJECT(() => {
                            arguments.ForEach(arg => KEY(arg.Name, arg));
                        }));

                        DO.RETURN(@axios
                                  .DOT("post").INVOKE(ANY(methodUrl), @data)
                                  .DOT("then").INVOKE(LAMBDA(@result =>
                                                             DO.RETURN(@result.DOT("data"))
                                                             ))
                                  .DOT("catch").INVOKE(LAMBDA(@err => {
                            USE("console").DOT("log").INVOKE(@err);
                        }))
                                  );
                    });
        void CreateDatatable()
        {
            dt.Columns.Add("Reservation ID");
            dt.Columns.Add("Amount(DH)");
            dt.Columns.Add("Date of Reservation");
            dt.Columns.Add("Model car Name");
            dt.Columns.Add("Rental days");

            dataGridReservation.DataSource = dt;
            IMPORT.Focus();
        }
Ejemplo n.º 3
0
        private void WriteImports()
        {
            IMPORT.MODULE("babel-polyfill");
            IMPORT.TUPLE("app", out _appVariable, "h", out var @h).FROM("hyperapp");
            IMPORT.TUPLE("Form", out _formVariable).FROM("./components/form");

            foreach (var api in _metadata.BackendApis)
            {
                var suffixedServiceName = api.ServiceName.AppendSuffixFragments("Service");

                IMPORT
                .TUPLE(suffixedServiceName.ToString(CasingStyle.Pascal), out var @service)
                .FROM($"./services/{suffixedServiceName.ToString(CasingStyle.Kebab)}");

                _metaPageExtension.ServiceVarByType.Add(api.InterfaceType, @service);
            }
        }