Example #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);
                        }))
                                  );
                    });
Example #2
0
        public override void RunAsync()
        {
            const string EXPORT =
                @"<ADMINISTRATION><PROJECT action=""export"" projectguid=""{0}"" targetpath=""{1}"" emailnotification=""{2}""
editorialserver=""{3}"" includearchive=""{4}"" to=""{5}"" provider="""" subject=""{6}"" 
message=""{7}"" logoutusers=""{8}"" reddotserverguid=""{3}"" includeadmindata=""{9}"" />
</ADMINISTRATION>";
            var query = EXPORT.RQLFormat(Project, SecurityElement.Escape(TargetPath), IsSendingEmailOnCompletion, Server,
                                         IsIncludingArchive, EmailReceipient, SecurityElement.Escape(EmailSubject),
                                         SecurityElement.Escape(EmailMessage), IsLoggingOffActiveUsersInProject,
                                         IsIncludingAdministrationSettings);

            Session.ExecuteRQL(query, RQL.IODataFormat.LogonGuidOnly);
        }
Example #3
0
        public void extract(string extFolder, bool timeoutSkip = false)
        {
            int OFFSET   = 0;
            int INT_SIZE = (int)intf.Length;

            foreach (SectionInfo info in infos)
            {
                long DATA_OFF = info.dataOffset;
                BUFF_OFF = (int)DATA_OFF;
                long SIZE  = getLong(BUFF_OFF);
                long ZSIZE = getLong(BUFF_OFF);
                OFFSET = BUFF_OFF;

                /*hoo boy
                 * the clog
                 * cloggy boy
                 * hmmmmmmmmmmmmmmmm*/
                intf.Seek(DATA_OFF, SeekOrigin.Begin);

                /*byte[] MEMORY_FILE = new byte[ZSIZE];
                 * intf.Read(MEMORY_FILE, 0, (int)ZSIZE);
                 * //COPY THE ENTIRETY MY BOYO*/
                //byte[] MEMORY_FILE = inta; //please help
                byte[] MEMORY_FILE = new byte[ZSIZE];
                //byte[] TEMP_FILE = new byte[ZSIZE];
                //intf.Read(TEMP_FILE, 0, (int)ZSIZE);
                intf.Read(MEMORY_FILE, 0, (int)ZSIZE);
                //Stream TEMP_STREAM = new MemoryStream(TEMP_FILE);
                //TEMP_STREAM = Decompress(TEMP_STREAM);
                //TEMP_STREAM.Read(MEMORY_FILE, 0, (int)SIZE);
                foreach (INTFile file in info.files)
                {
                    OFFSET = (int)file.dataOffset;
                    SIZE   = file.size;
                    string NAME  = file.name;
                    string FNAME = string.Format(@"\{0}\{1}", info.folderName, NAME);
                    //the big EXPORT TIME
                    //Console.WriteLine(extFolder + FNAME);
                    if (!Directory.Exists(extFolder + @"\" + info.folderName))
                    {
                        Directory.CreateDirectory(extFolder + @"\" + info.folderName);
                    }
                    //Console.WriteLine(OFFSET + " " + SIZE);
                    Stream EXPORT;
                    try
                    {
                        EXPORT = File.Open(extFolder + FNAME, FileMode.CreateNew);
                    }
                    catch (IOException)
                    {
                        EXPORT = File.Open(extFolder + FNAME, FileMode.Truncate);
                    };
                    //Console.WriteLine(NAME);
                    byte[] WRITTEN_FILE = new byte[SIZE];
                    EXPORT.Read(WRITTEN_FILE, (int)OFFSET, (int)SIZE);
                    FileInfo fl  = new FileInfo(extFolder + FNAME);
                    int      r   = 0;
                    bool     c   = false;
                    long     osz = 0;
                    if (timeoutSkip)
                    {
                        while (fl.Length != SIZE)
                        {
                            fl.Refresh();
                            r++;
                            if (fl.Length != osz)
                            {
                                r = 0;
                            }

                            if (r > 100000)
                            {
                                //Console.WriteLine(SIZE + " " + OFFSET);
                                c = true;
                                break; //move on, continue to attempt to write in bg
                            }
                        }
                    }
                    if (!c)
                    {
                        EXPORT.Close();
                    }
                }
            }
            ////Console.WriteLine(getLong(skipZeroes()));
        }